본문으로 이동
문서

DDD와 MSA 기반으로 좋은 서비스 개발하기

조문옥 · 컬리 · 컬리 기술 블로그

원본 보기

소개

컬리의 서비스 개발 원칙

AI 핵심 요약

컬리의 커머스 플랫폼을 MSA로 전환하는 과정에서 좋은 서비스 개발의 출발점은 비즈니스 문제를 반영해 도메인을 올바르게 나누는 것이라고 설명합니다. DDD의 느슨한 결합과 높은 응집 원칙에 따라 도메인 내부 서비스는 동기 API 호출이나 데이터 공유를 허용하고, 도메인 간에는 비동기 메시지 통신과 데이터베이스 분리를 적용할 수 있습니다. 이런 경계는 변경 범위를 명확히 하고 독립 배포를 돕는 한편, 도메인별 기술 선택의 자율성도 높입니다. 다만 도메인을 지나치게 잘게 나누거나 기술을 과도하게 다양화하면 복잡성이 커지므로, 응집도와 조직의 성숙도를 함께 고려해야 합니다.

  • 도메인은 비즈니스 문제를 기준으로 나누고, 분리뿐 아니라 관련 기능을 함께 묶는 응집도도 고려하세요.
  • 도메인 내부 서비스는 동기 API 호출이나 데이터 공유가 가능하지만, 도메인 간에는 비동기 메시지 통신과 데이터베이스 분리를 지향합니다.
  • 명확한 서비스 경계는 변경 범위를 줄이고 독립 배포를 가능하게 하는 기반입니다.
  • 기술 다양성은 서비스별 문제 해결에 유리하지만, 조직의 성숙도와 연동 인터페이스의 복잡성을 함께 고려해야 합니다.