JPA 와 함께 - 느낀점

Java Persistence API(JPA) 김영한님의 JPA 기초편 을 끝까지 수강했다. 작년부터 새벽에 짬내서 들었지만, 아이들의 방해(?)로 6개월 걸렸다. 듣고 많은 내용에 대해서 생각이 들었다. JPA 란? 자바 퍼시스턴스 API 이라 불리는 객체와 관계형 DB 를 관리하는 자바 API다. 2006년 1.0을 발표했으며 현재 2.1버젼까지 발전했다. Mybatis도 좋지만... Mybatis로 Web개발을 하면, 마음 한켠이 찝찝(?)했다. 분명 Mybatis가 직관적으로 SQL을 관리해서 편하다. 하지만 점점 SQL 중심 개발로 진행할 수록, Spring의 역활에 의구심이 들었다. Web 서버, JSON 변환 외 비즈니스 로직은 점점 Mybatis 중심으로 만들어졌다. 그러다 객체설계 책을 접하고, Spring JPA를 알게 되었고, 유료 강의수강를 수강했다. Oracle Forms와 비교 가장 오래한 직업인 Oracle Forms 개발 관점에서 봤을 때, 비슷하면서 더 발전한 API라고 생각한다. 비슷한 점은 Primary Key 기준 CRUD Transaction 자동 실행과 부모-자식 관계 자동 설정이다. 더 발전한 API로 느낀 이유는 특정 DB를 위한 API가 아닌 범용 API라는 점이다. ANSI 표준 SQL과 Dialect로 DB Vendor별 차이를 좁히기도 한다. 그래서 개발자는 SQL보다는 객체에 좀더 집중할 수 있도록 도와준다. 객체지향으로 가는 길. 이제 비즈니스 로직을 객체에 자연스럽게 녹일 수 있다. 비즈니스 로직과 SQL 문장을 만들필요 없이 객체의 로직의 결과가 저장되어야 한다면 JPA를 사용하면 된다. 마치며... 홍보글은 아니지만, 꼭 듣기를 바란다. 이제 DB 없는 프로그램은 상상하기 힘들다. 객체와 DB설계 중 고민 하나를 덜어낼 수 있는 좋은 기회다. (물론 DB를 전혀 신경쓰지 않아도 되는 건 아니다.)