JPA 를 사용한다면 꼭 한번 들어볼 강의입니다. 저는 스프링 데이터를 통해 처음 JPA를 접했는데 추상화된 몇 계층 위에서 JPA를 다루다 보면 가끔은 왜 이렇게 동작하는지, 반대로 왜 이렇게는 동작하지 않는지 이해가 안 될 때도 있었습니다. stackoverflow.com의 공동 창업자 Joel Spolsky는 “The Law of Leaky Abstractions”라는 글에서 추상화라는 것은 우리에게 드러나서 일어나는 일 아래에서 훨씬 더 복잡하게 일어나고 있는 것들에 대한 단순화라고 했습니다. 하지만 추상화 아래 숨겨진 복잡함이 완벽히 감춰질 수는 없다고도 했는데요. 예컨대, JPA가 드러내고 있는 인터페이스 아래에 많은 것들을 감추고 있지만, 실무에서 다양하게 응용하다 보면 의도하지 않은 동작에 결국, 추상화의 몇 단계 아래를 들여다볼 수 밖에 없었습니다. 그 때, 강사분의 저서 “JPA 프로그래밍”에서 많은 도움을 받았고 이번 강의 역시 훌륭했습니다. 특히 프록시와 영속성 컨텍스트 챕터를 재미있게 들었고 강사님의 풍부한 실무 경험을 바탕으로 한 연관 관계 매핑에 관한 조언들도 값으로 매길 수 없는 귀중한 내용이었습니다.
규진님 고맙습니다. 추상화 비유가 정말 멋지네요! 저는 영속성 컨텍스트와 프록시가 JPA의 핵심이라 생각합니다. 그래서 명확하게 이해하지 못한 상태로 실무 프로젝트를 진행하면, 문제가 발생했을 때, 근본적인 문제를 해결하기 매우 어렵다고 생각합니다. 연관관계 매핑은 설계 부분이라 너무 중요합니다. 저도 처음 JPA를 사용할 때, 이 부분에서 고생을 해서, 누군가 이런 설계 노하우를 정리해주었으면 참 좋았을 텐데 생각했습니다. 결국 아쉬운 사람이 우물을 판다고, 제가 정리하게 되었네요 ㅎㅎ 멋진 리뷰 감사합니다! 궁금한 내용은 언제든지 편하게 질문주세요^^