부제: MyBatis Chill 하게 사용해보기
Metsakuur에서 방학 기간동안 새로운 프로젝트를 진행하게 되었는데, 기존에 존재하던 얼굴 인증 서비스 관리자 어드민 웹앱을 재개발하는 프로젝트였다.
주어진 레거시 프로젝트의 모습을 살펴보니, Spring 4 기반에 IBatis를 사용하고 있었고, 유지보수하기 난해한 코드로 보여졌다.

기존 관리자 프로젝트의 프론트엔드 레이아웃
나는 요구사항을 받은 뒤 기술스택과 기본적인 아키텍처를 결정하기 시작하였고, 그 결과 내가 평소에 자주 사용하던 기술 스택인 React + Spring Boot + JPA 기술 스택으로 가는것으로 일단락되는것처럼 보였다.
기존 프로젝트에는 기본적인 테이블 설계 문서와 화면 설계 문서만 존재하고, ERD나 유스케이스 다이어그램같은것은 존재하지도 않았기 때문에 열악한 환경 속에서 일문 일답을 통해 요구사항을 스스로 깨우쳐야 했고, 결국 나는 프로그램을 도메인 단위로 나누어 UI 레이아웃을 먼저 설계하며 페이지단위로 프로토타이핑 하여 클라이언트와 대화하며 요구사항을 적립하여 나갈 수 밖에 없었다.
문제는 JPA였다. 처음 리뉴얼이라고 듣고 들어간 프로젝트는 사실 데이터베이스 설계를 제외한 프로젝트의 재설계였다.
나는 데이터베이스의 형태를 유지한 채로 프로젝트를 다시 만들어
를 꾀해야 했다.
SPA형태의 3-tier-architecture 로 제작하는것을 결정한 뒤였기 때문에 React를 사용하는 것에 대해서는 거리낄 것이 없었고, 클라이언트와 함께 UI 리뉴얼 작업을 진행하여 다음과 같은 UI를 구현할 수 있었다.


화면에 표시되는 데이터는 모두 더미데이터이다.