본문 바로가기

경험/[{업무를 행복하게}]

<업무를 행복하게 ☺️> JPA 적용!!

유지보수를 맡고 있는 프로젝트를 리뉴얼? 리팩토링?하는 작업을 맡게 되었다.

해당 프로젝트는

  • 간단한 CRUD 작업이 많다.
  • 솔루션 형식으로 여러 곳에 설치하는 형식이다. 이때, 다른 데이터베이스를 사용해야 할 수도 있다.
  • 리뉴얼 시 데이터베이스를 크게 변경해선 안된다.

위 특징을 갖고 있다.

 

세 가지 특징을 제목 삼아 JPA를 적용할 때의 장점 및 과정 후기를 남겨보겠다.

 

간단한 CRUD 작업이 많다.

JPA를 사용해야 하는 1순위 이유였다. MyBatis를 사용한다면

  1. 쿼리 만들기
  2. xml 만들기
  3. VO, DTO 만들기
  4. ...

등의 과정들을 수행해야 했겠지만, JPA를 사용한다면

  1. 엔티티 만들기
  2. 레파지토리 만들기

가 끝이다. 이렇게 보면 별로 차이나 보이지 않는데..? 

실제로는 매우 큰 차이가 있는 걸 알아주길..

 

다른 데이터베이스를 사용해야 할 수도 있다.

 NVL(), IFNULL(), DECODE() 등 특정 DBMS에서만 쓸 수 있는 함수라던가

INSERT INTO ~~ ON DUPLICATE UPDATE / MERGE INTO ~처럼 문법이 완전히 다른 경우가 있다.

 

 기존에는 설치 작업이 시작될 때마다 쿼리를 바꾸고, 배포하고, 빼놓은 게 있으면 문의 들어와서 핫픽스 하고..의 과정을 거쳤다.

이제는 설정할 때 DBMS에 종속적으로 하지만 않는다면 수정이 줄어들 것이다~!

 

리뉴얼 시 데이터베이스를 크게 변경해선 안된다.

ddl-auto: validate

위 설정만 지정해주면 JPA가 스키마를 변경할 일이 전혀 없다!

우리 프로젝트에 아주 알맞은 설정값이다 하하~~

(다른 설정값으로는 create, create-drop, update 등이 있다.)

 

마무리

러닝 커브가 살짝 있어서 힘들었지만, 앞으로의 업무가 편해질 생각을 하니 행복하다~!!