안녕하세요, 스진초 여러분!ㅎㅎ
송아지할때송아 김송아입니다.
간단하고 빠르게 JPA에 대해 1분만에 알아볼게요!
그럼, 시작합니다!
✔️JPA (Java Persistance API)
자바 응용 프로그램에서 관계형 데이터베이스의 관리를 할 수 있도록 하는 자바 API(=구현체 필요)
즉, 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있는 인터페이스
인터페이스라면 구현체가 필요하다고 생각이 되시죠?
맞아요! 그치만, 우리가 구현하는 게 아니라
스프링 JPA는 하이버네이트라는 구현체를 포함해서 제공하고 있습니다.
즉, 우리는 JPA 인터페이스 뒤에 있는 하이버네이트를 사용하게 되는 거겠죠?
// 참고. EJB의 Entity Bean을 대체하는 기술
🌟아마 JPA와 하이버네이트의 관계가 가장 헷갈리셨을거라, 다시 한번 짚고 갈게요🌟 JPA가 인터페이스이기 때문에, 구현체가 필요한거죠. 그 구현체를 손수 짤 수도 있겠지만! 구현체로 사용할 수 있는 프레임워크를 사용할 수도 있습니다. * 대표적인 JPA 구현체 : 하이버네이트(Hibernate) - 자바 응용 프로그램에서 관계형 데이터와 객체를 매핑을 할 수 있게 제공하는 프레임워크 - JPA의 구현체 (ver 3.2 부터) |
✔️ JPA 구성요소
1) javax.persistance 패키지로 정의된 API
2) JPQL(Java Persistance Query Language)
- 관계형 데이터베이스에 저장된 Entity에 대한 쿼리들을 작성할 수 있는 언어
- 쿼리들은 구문에서 SQL 쿼리와 유사하지만, 데이터베이스 테이블에 직접적으로 처리되는 것이 아니라 Entity 개체에 처리된다.
3) 객체/관계 메타데이터
✔️ Entity란?
관계형 데이터베이스의 테이블에서 개개의 행에 해당하는 자바 클래스
어노테이션을 사용하여 엔티티 클래스 파일을 직접 명시하거나 별도 속성 파일(XML)에서 지정
👀 참고해주세요.
DDD 설계의 객체를 구현하는 방법으로 Entity를 사용하고 있습니다.
엄연히 말하면 DDD 설계의 Domain/객체/모델/엔티티 와 JPA의 Entity는 다른 거에요!!!!
둘은 정말 비슷하지만! 같은 단어가 아닙니다!!
이건 마치 박완규님과 강형욱님 같은 느낌이랄까요?
그럼, 조금이나마 도움이 되셨길 바라며!
감사합니다 :)
Reference
https://ko.wikipedia.org/wiki/자바_퍼시스턴스_API
https://livenow14.tistory.com/70
'Programming' 카테고리의 다른 글
[맥북/맥 Mac] 도커(Docker)로 MariaDB 설치하기 (0) | 2022.09.10 |
---|---|
[맥북/맥 Mac] 도커(Docker) 설치 :: 송코딩 (0) | 2022.09.10 |
코드컨벤션이란 code convention :: 송코딩 (1) | 2022.09.08 |
[C언어] Visual Studio 설치 :: 송코딩 (0) | 2022.08.02 |
[C언어] 맥북 Mac 개발 툴 (Visual Studio Code) 설치 (15) | 2022.07.18 |