본문 바로가기

Project/gorakulist

프로젝트 멀티 모듈로 분해(1)

프로젝트를 완성을 위한 핵심적인 데이터베이스 구축을 끝마쳐가는 시점. 기존 시스템에선 관리자에게 문의를 넣어 관시스템 관리자가 정보를 수정하거나 등록할 수 있도록 설계했다. 하지만, 아무리 생각해봐도 사장님이 직접 등록하거나 수정해야하는 서비스도 필요할 것 같았고. 역시나 추가적으로 개발하게 되었다.

 

이 시점에서 찾아오는 문제가 하나 있었는데, 기존 백엔드 서비스는 정말 순수한 api 방식만을 쓰자! 라는 일종의 컨벤션을 가지고(물론 레이어 격리 설계 등..여러가지가 포함되지만) 있었다.

 

하지만 사장님 관리자 페이지 또한 이 방식을 그대로 이어나갈 것인가? 라는 질문에는 '글쎄?' 라는 생각이 들었다. 왜냐하면 Gorakulist 프로젝트의 경우 관리자 페이지에 필요한 서비스가 그다지 많지 않았고 SPA 를 고집할 필요도 없었으며 멀티플랫폼이 타겟이 아니었기 때문이다.

 

그래서 최종적으론 OK! 관리자페이지는 온전히 SSR 로 진행하자! 라는 결정을 내렸다. 그렇게 모듈의 분리가 시작되었다.

 

우선 모놀리틱하게 작성되어있던 프로젝트에서 api모듈, 도메인 모듈, 어드민 모듈로 발라내었다. 소스 베이스가 아직 많이 커지지 않았고 기존에 소스를 도메인 계층을 최대한 의존성 없이 가져가려 했었기 때문에 쉽게 발라낼 수 있었다.

 

도메인 모듈은 현재 공통으로 분리되고 있는데 우아한 형제들의 기술 블로그에서 나오는 공통의 저주에 걸리지 않도록 신경 써야겠다.