프로젝트 개편(2023)
블로그에서 기술 포스트가 아닌 경험을 소개하는 건 처음이라 경어체로 작성해보기로 했습니다. 헤헷
참고로 필자는 SI 기업에서 3년간 경험을 쌓고, 이직에 성공하여 HR 시스템 개발을 담당하고 있습니다.
기존 프로젝트를 개편할 기회가 생겼습니다. 레거시한 프로젝트를 나름(?) MSA 구조로 탈바꿈하고 비효율적인 DB 설계를 개선해야 하기 때문에 긴 여정이 될 것 같아 기록하고자 경험담에 공유해봅니다.
개요
기존 프로젝트를 이하 A 프로젝트라고 언급하겠습니다. A 프로젝트의 UI 개편과 신규 기능 도입이 지속적으로 요청되어 왔습니다.
신규 프로젝트 생성 이유
A 프로젝트는 레거시 소스가 많고 DB 설계가 데이터 중심적이며 프로시저로 구현된 로직이 많은 상태입니다. A 프로젝트의 백 오피스 또한 현재 사내에서 사용중인 레거시한 HR 프로젝트 내에 종속되어 있어 신규 기능을 충족할 기술이 부족합니다. 서비스 영역이 나눠져있는 A 프로젝트의 경우 효율적인 데이터 통신을 위해 1개의 서버에서 분리된 2개의 클라이언트와 통신하고자 합니다. 따라서 리팩토링이 아닌 신규 프로젝트로 개편 작업을 결정하게 되었습니다.
개발 스펙 선택
클라이언트는 단일 페이지 내 액팅이 많고, 페이지 전환이 적은 UI를 구현하기 위해 React, 서버는 팀 내에서 사용하는 언어(Java)로 유지보수가 가능하고 REST API 구현에 용이한 Spring Boot, 복잡한 DB 구조로 소스단에서 엔티티 파악에 용이한 객체 지향 인터페이스 JPA를 선택하였습니다.
도입할 목표 기술
- JWT
- 사내 SSO
- OAuth 인증서버 - Why?
- 본인인증 모듈
- GTM(Google Tag Manager)
사전 준비
기획부터 배포와 테스트까지 프로세스는 어마무시하겠지만, 개발 단계에서 사전에 준비할 수 있는 작업을 미리 리스트업 해보았습니다. 💪
- 서버 구축
- React 프로젝트 세팅
- Spring Boot 프로젝트 세팅 + JPA 연동
- 현 시스템 기능/배치 전수조사 🚀 “어떤 방식으로 할지가 관건”
- A프로젝트, HR프로젝트 API 인터페이스 정리
- 화면 기획이 나오면 클라이언트 붙이기 😋?
- DB 설계 및 서버 구현 변경 지점 파악 🔨
- 기능 별 개편 방향 설계 및 1:1 매칭 🛒 “누락되지 않아야 함”