Spring/튜토리얼

[DB] ORM과 JPA란

Hamp 2025. 11. 1. 21:23
반응형

🏁 학습할 내용

  • ORM
  • JPA

🙋ORM(Object Relation Mappnig)

 

🤣필요한 이유

 

특별한 도메인을 위한 언어들을 DSL라고 한다.

이 DB를 위한 DSL가 바로 그 SQL(Structured Qurey Langague)문이라는 것

 

현재 스프링 부트를 위한 나의 언어는 코틀린이다.

하지만 불행히도, 나는 SQL을 잘하지 못한다.

 

하지만 ORM을 이용하면, SQL을 직접 작성하지 않아도 DB를 제어할 수 있다.

 

간단히 말하면, 나의 코틀린 코드를 기반으로 SQL문을 대신 작성해주는 대리자라고 생각하면 편할 듯

 

😄장점

 

  • SQL을 작성하지 않고, 개발자는 객체 모델과 비지니스 로직에 집중할 수 있음 (생산성)
  • 객체 지향적인 코드 작성이 가능 (객체 간의 관리)
  • DBMS 종류와 상관 없이 일관적인 코드로 사용할 수 있음 (유지 보수성)
  • 이미 검증된 내용이므로, 개발자의 휴먼에러 발생률이 내려감 (휴먼 에러 감소)

 

😥단점

 

  • 복잡하고 무거운 Query는 아무래도 순수 SQL에 비해, 속도가 떨어질 수 있음
  • 고급 데이터 베이스 기능을 지원하지 않은경우, 직접 SQL을 작성해야할 수 있음

☕JPA(Java Persistence API)

 

🧩역할

 

Java진영에서 ORM 기술 표준으로 사용하는 인터페이스 모음

즉, Java 진영에서 ORM을 쓰고 싶다, 그러면 JPA를 떠올리면 됨

 

Spring에서 사용하는 Spring Data JPA는 JPA를 사용하는 프레임워크지, JPA는 아님,

 

⚠️주의할 점

 

주의할 점은 JPA는 인터페이스의 모음이다.

즉 실제 JPA 인터페이스를 구현한 클래스는 따로 존재한다.

 

 

가장 대표적인게 Hibernate이므로, 추후, Hibernate를 기준으로 학습해보자


출처

https://ultrakain.gitbooks.io/jpa/content/

 

Introduction · jpa

 

ultrakain.gitbooks.io

https://dbjh.tistory.com/77

 

[Spring JPA] JPA 란?

이번 글에서는 JPA(Java Persistence API)가 무엇인지 알아보려고한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제적으로 구현된것이

dbjh.tistory.com

 

 

반응형