1. MSA로 전환한 계기
프로젝트는 모놀리식 아키텍처 방식으로 개발하고 전반적인 흐름이 진행되고 있었습니다.
하지만 모놀리식 구조에서는 하나의 애플리케이션에서 모든 도메인 로직이 포함되어 있어서 다른 도메인과의 의존성으로 인해 개발 과정에서 제약이 있었고 하나의 비즈니스 로직에서 오류가 발생하면 모든 애플리케이션에 영향을 주었습니다.
또한 특정 도메인에서 변경 사항이 있을 경우 전체 서비스를 배포하고 빌드를 해야하는 등의 문제도 있어서 MSA로의 전환을 하게 되었습니다.
2. 설계 방향성과 기준
마이크로서비스 아키텍처(MSA)로 전환하면서 확장성을 확보하고 종속성을 줄이는 것에 중점을 두었습니다.
바운디드 컨텍스트에 대한 기준을 세운 후, 수업 스케쥴, 사용자와 같은 핵심 도메인과 서브 도메인을 이에 맞춰서 각각 독립된 서비스로 설계하였습니다.
그 결과 서비스간 의존성을 관리하고 명확한 경계를 설정하여 유지보수성을 높일 수 있었습니다.