아키텍처
왜 팔도감은 마이크로서비스에서모놀리스로 전환했을까?
두줄요약
팔도감은 작은 조직 규모와 운영 복잡도를 고려해 MSA 대신 모듈리스 구조로 전환했습니다. Git Submodule, Gradle Composite Build, 코드 리팩터링 도구로 마이크로서비스 코드를 통합했습니다.
문제 상황
- 팔도감과 퀸잇이 커머스 공통 기반을 공유했지만, 상품군·정책·조직·배포 방식 차이로 코드베이스 격차가 확대
- 인력이 적은 팔도감 입장에서 MSA는 레포·서버 분리, API 스펙 관리, 배포·트러블슈팅 복잡도 증가로 부담이 큼
원인 분석
- 팔도감 조직 규모와 운영 현실상 서비스 분리 이점보다 운영 비용과 협업 비용이 더 크게 작용
- 퀸잇의 멀티 레포 MSA 코드를 그대로 쓰면 패키지·버전·Bean 이름 충돌 등 통합 문제가 발생
해결 방법
- Git Submodule로 분리된 코드베이스를 하나의 저장소로 통합
- Gradle Composite Build로 독립 빌드들을 함께 묶고, Java·라이브러리 버전 호환성 문제를 조정
- OpenRewrite와 커스텀 BeanNameGenerator로 FQCN·Bean 충돌을 해소
