본문 바로가기

Proxy

(2)
Transaction 동작 원리, JDBC 기본에 충실한 과정(JPA, Hibernate, Spring's @Transactional) JDBC 트랜잭션에 대한 이해 Transaction 기본 동작 원리를 익히기 위해서 점진적인 접근을 할 것입니다. (두괄식X 미괄식O) 궁극적으로는 @Transactional 이 어떻게 돌아가는지를 알아볼 것이지만, 우선은 그것보다도 중요한 JDBC에서 트랜잭션을 사용하는 방법에 대해서 이해하고 넘어갈 것입니다. Spring의 @Transactional 애노테이션을 쓰거나, JPA(Hibernate), JOOQ 등을 쓰면 사실 라이브러리내에서 관리되므로 아래와 같은 문제는 일어날 일이 없습니다. 앞서 언급한대로 원활한 이해를 위해 아래 JDBC가 트랜잭션을 다루는 코드를 설명하겠습니다. import java.sql.Connection; Connection connection = dataSource.get..
JPA 프록시와 연관 관계 정리, 영속성 전이, 언제 사용하는 것이 좋고 어떻게 사용할까? (지연로딩 vs 즉시로딩) "도서 (자바 ORM 표준 JPA 프로그래밍 - 김영한 지음)"를 공부하고 정리한 내용임을 사전에 알려드립니다. 프록시와 연관관계 정리 - 프록시 JPA는 객체지향언어와 관계형 데이터베이스의 패러다임 불일치를 해결하는 기술이다. 프록시가 이 문제에 도움을 주는데 어떤 부분에서 도움을 주는지 정리한다. 객체는 team1.getMembers().get(0); 이런식으로 연관된 객체들을 탐색할 수 있는 반면 RDB의 경우 참조하는 외래키를 이용해서 테이블간의 조인 쿼리를 작성해서 탐색해야한다. 그러다보니 연관된 객체를 쓰일지 안 쓰일지도 모르는 체 전부다 가져와야하는 문제가 있다. 이 문제를 프록시라는 기술로 해결한다. 프록시는 실제 연관된 객체를 즉시 join을 통해 DB로부터 가져오는 것이 아니라 앞서 프..