jpa

오민석·2022년 10월 2일
0

엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고 조회하는 등 엔티티와 관련된 모든 일을 처리한다. 또한 영속성 컨텍스트를 통해 데이터의 상태 변화를 감지하고 필요한 쿼리를 자동으로 수행한다.

JPA를 이해하는 데 가장 중요한 용어는 영속성 컨텍스트다. 엔티티를 영구 저장하는 환경이라고 생각하면 된다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.

이렇게 하위 엔티티들을 첫 쿼리 실행시 한번에 가져오지 않고, Lazy Loading으로 필요한 곳에서 사용되어 쿼리가 실행될때 발생하는 문제가 N+1 쿼리 문제입니다.

fetch join, batch


restapi가 오버/언더페칭 문제 같은 데이터 너무 많이 전달이나 적게 전달해서 불필요한 데이터 전송. endpoint관리
GraphQL은 클라이언트가 API에 필요한 데이터를 정확하게 지정해서 요구해서 필요한 데이터만 받을 수 있습니다. 단 하나의 endpoint.

런타임이 아닌 컴파일타임에 타입관련 에러를 사전에 방지할 수 있고
자유도를 제한하여 협업할 시에 유리할 수 있다

런타임은 프로그래밍 언어가 구동되는 환경이다. 즉 어떤 프로그램이 동작할 때, 프로그램이 동작하는 장소이다

method : static 변수, 함수
heap : 객체
stack : 변수
data : 전역변수

0개의 댓글