이번에 댕댕어디가 서비스를 MSA 아키텍처로 전환해보고자 합니다.
1. 댕댕어디가 서비스란 ?
반려동물 동반 가능 장소 추천 서비스로, 반려동물 동반 가능한 장소를 검색할 수 있고 맞춤 추천 및 땅따먹기 기능을 통해 반려동물과의 새로운 재미를 즐길 수 있는 서비스입니다.
LG 유플러스 부트캠프 과정에서 최종 프로젝트로 진행하게 되었고, 저는 팀장 및 백엔드 개발을 담당하게 되었습니다.
2. 기존의 아키텍처
기존의 아키텍처는 모놀리식으로 구성되어있고, 별도로 알림 서버가 구성되어 있습니다.
알림서버만 따로 분리한 이유는 알림 생성에만 집중하고 FCM과 같은 외부 API로 인한 장애가 주요 기능에 미치지 못하게하기 위함입니다.
3. MSA 아키텍처로 전환하는 이유
프로젝트를 진행하며 MSA 아키텍처의 필요성을 느꼈고, 전환을 결정하게 된 주요 이유는 다음과 같습니다.
1) 특정 서비스만 독립적으로 배포할 수 있다.
프로젝트를 진행하며, 하나의 서비스를 배포하기 위해 모든 서비스를 재배포해야 하는 상황이 반복되었고, 서비스 규모가 커질수록 배포 시간이 점점 늘어나는 문제가 있었습니다.
2) 필요한 서비스만 선택적으로 확장할 수 있다.
장소 검색 서비스를 개발하면서 검색 기능에 많은 요청이 집중될 것이 예상되었고, 이 기능만 별도로 확장할 수 있다는 점이 큰 장점이었습니다.
3) 서비스별로 독립적인 관리가 가능하다.
'댕댕어디가'는 여러 도메인으로 서비스가 나뉠 수 있는데, 어떤 기능을 수정하거나 작업이 필요할 때 다른 서비스 부분의 개발 상황도 고려해서 작업해야한다는 점이 불편했습니다.
또한 이번 기회로 모놀리식 아키텍처와 MSA 아키텍처의 장단점을 명확히 경험해보고 싶었습니다.
MSA 아키텍처는 정의만 알고, 실제로 어떻게 통신이 되는지 어떤 문제점이 있는지 알지 못했기 때문에, 이번 경험으로 많은 것을 배울 수 있는 기회가 될 것 같습니다.
'댕댕어디가 프로젝트 > MSA' 카테고리의 다른 글
[댕댕어디가] MSA 아키텍처 전환기(6) - 서비스간 동기 통신(Spring Cloud Open Feign) (0) | 2025.01.12 |
---|---|
[댕댕어디가] MSA 아키텍처 전환기(5) - 서비스간 비동기 통신 (kafka 연결) (0) | 2025.01.11 |
[댕댕어디가] MSA 아키텍처 전환기(4) - 서비스간 비동기 통신하기 (0) | 2025.01.08 |
[댕댕어디가] MSA 아키텍처 전환기(3) - API Gateway 구현 (0) | 2025.01.07 |
[댕댕어디가] MSA 아키텍처 전환기(2) - Service Discovery 패턴/ 서비스 분리 (0) | 2025.01.07 |