본문 바로가기

학습 기록 (Learning Logs)/CS Study

JPA-default

 

 


공통 질문

JPA란 무엇이며, 왜 사용하는지 설명해보세요.
ORM(Object-Relational Mapping)이란 무엇인가요? 장단점을 설명해주세요.
JPA와 Hibernate의 차이점은 무엇인가요?
Entity란 무엇이며, 어떤 경우에 사용하는지 설명해주세요.
JPA에서 영속성 컨텍스트(Persistence Context)의 역할은 무엇인가요?

 

JPA 무엇이며, 사용하는지 설명해보세요.

 

JPA

java persistence api

자바 영속(끈기,고집)

자바 진영의 ORM 기술 표준

인터페이스 모음

 

 

개발자 == SQL mapper

그래서 그 중간에서 해석을 개발자가 해주는데, 개발자가 하지 않고

 

객체 -> SQL 변환 -> SQL -> RDB

object 방식으로 programming을 하면 db명령어를 만들어주는 api ==> jpa이다

 

왜 사용해야하는가?

- sql 중심 개발 --> 객체 중심 개발

- 패러다임 불일치 해결

- 데이터 접근 추상화, 벤더 독립성

- sql을 직접 작성하지 않아도 된다, 객체 중심으로 데이터를 처리할 수 있다

- db의 종속성을 줄일 수 있다

- 표준화: hibernate가 mysql, oracle 처럼 서로 다른 sql 방언을 interface로 관리해준다

 

패러다임 불일치

1) 객체 지향 programming

- 추상화

- 캡슐화

- 정보은닉

- 상속

- 다형성

 

2) 관계형 database

 

 

차이점

- 상속

- 연관관계

- 데이터 타입

- 데이터 식별 방법

 

 

 

 


 

ORM(Object-Relational Mapping)이란 무엇인가요? 장단점을 설명해주세요.

 

ORM?

mapper라고 생각해라

object relational mapping 객체 관계 매핑

- 객체는 객체대로 설계

- rdb는 rdb대로 설계

- orm 프래임워크가 중간에서 mapping

 

relation db를 사용중인데

app은 객체를, db는 rdb를 사용하는데 이는, 서로 대화하는 방법이 다르다.

 


JPA Hibernate 차이점은 무엇인가요?

 

jpa

java에서 orm을 표준화 하기 위해 정의된 인터페이스

data 접근 로직을 추상화, 구체에 의존하지 않는다

 

hibernate

jpa 구현체 중 하나

원래 open source였음

 

 

 

 


Entity 무엇이며, 어떤 경우에 사용하는지 설명해주세요.

객체

jpa에서 db table과 매핑되는 java class

@Entity 어노테이션이 선언된 클래스

 

- 반드시 기본 생성자

- primary key 필요

- jpa는 @Entity 를 통해 data를 관리

 


JPA에서 영속성 컨텍스트(Persistence Context) 역할은 무엇인가요?

jpa의 객체인 entity를 관리함

- entity와 db 를 연결

- 1차: cache에 저장

- 2차: commit시 db에 반영

 

역할

- entity 관리: 객체의 동일성 보장

- dirty check: entity 상태가 변경되면 **자동** 으로 transaction -> commit 시 반영

- 지연로딩: 조회하고자 하는 테이블을 다 불러오지 않고, 실제로 사용하는 시점에 db 조회함

- 동일성 보장: 같은 persistence context에서는 동일 객체를 반환함

 

 

 

'학습 기록 (Learning Logs) > CS Study' 카테고리의 다른 글

JPA-features  (0) 2024.12.12
JPA-mapping  (0) 2024.12.12
database  (0) 2024.12.09
C, C++, C# 차이  (0) 2024.12.07
운영체제  (0) 2024.12.02