당연하게 사용하던 JPA 가 기존의 어떤 문제를 해결하기 위해 등장했고, 실제로 좋은 점은 무엇이였는지 다시 한 번 떠올릴 수 있는 장이였다.
db 와 app 간의 레이어를 하나 더 두어서 dialect 로 직접적인 sql 과의 의존성을 끊어내는 것이 아주 큰 장점이라는 생각이 든다.
물론 단순 CRUD 는 직접 쿼리를 작성하지 않아도 되어서 아주 편한 것도 큰 장점이라는 생각이 든다. ( + 쿼리를 직접 작성할 때 휴먼에러로 발생하는 런타임 에러도 방지할 수 있고.. compiled language 를 사용하면서 런타임에만 문제가 발생하는지 확인할 수 있는건 그냥.. 막연하게 불안함)
난 그렇게 헤비하게 JPA 를 사용하진 않지만.. (연관관계 매핑, 조인 등.. ) 헤비하게 사용할 때 JPA 의 내부 동작 방식을 잘 모르고 사용한다면 크리티컬한 문제를 야기할 수 있다는 것이 제일 단점이라고 생각한다. 이건 JPA 뿐 아니라 Spring 전체에서도 관통되는 이야기라고 생각함. 사용하기 편하게 추상화 해놓을수록 제대로된 이해 없이 사용한다면 위험한 것..
끄적끄적
JPA를 사용함으로써 얻을 수 있는 점
아래는 책에서 나온 JPA를 사용하면서 얻을 수 있는 이점에 대해 정리 + 내 생각을 정리했음.
생산성
유지보수
패러다임 불일치 해결
성능
데이터 접근 추상화와 벤더 독립성
1장 후기