본문으로 이동
OMS의 최적화된 마이크로서비스 아키텍처 디자인
문서

OMS의 최적화된 마이크로서비스 아키텍처 디자인

이준환 · 컬리 · 컬리 기술 블로그

원본 보기

소개

판매몰과 컬리 풀필먼트의 게이트웨이의 역할로써 OMS의 아키텍처 디자인의 변화 과정을 소개합니다.

AI 핵심 요약

OMS는 판매처 주문을 풀필먼트가 처리할 수 있는 정보로 변환하고, 배송 계획 정보를 판매처에 제공하는 게이트웨이 역할을 합니다. 특정 판매처에 종속되지 않도록 기능·역할과 관리 비용을 기준으로 마이크로서비스를 구성하고, 여러 서비스가 자주 쓰는 데이터는 소유 서비스가 쓰고 나머지는 읽는 shared cache로 제공해 내부 호출 트래픽을 줄였습니다. 캐시 장애 때 트래픽이 서비스로 쏠리는 위험에는 보수적인 오토스케일링과 데이터 특성에 따른 캐시 클러스터 분리로 대응하며, 서비스별 독립성을 활용해 기능을 병렬 개발하고 작은 단위로 상시 배포합니다. 다만 이 방식이 효율적으로 작동하려면 모든 엔지니어가 전체 서비스와 데이터 흐름을 이해하고, 설계 단계에서 인터페이스와 데이터 소유권을 함께 정해야 합니다.

  • 마이크로서비스는 기능과 역할뿐 아니라 관리 비용을 기준으로 나누고, 복잡도가 커질 때 분리를 검토할 수 있습니다.
  • 공유 캐시는 데이터 소유 서비스만 쓰고 다른 서비스는 읽기만 하도록 해 소유권을 명확히 하세요.
  • 캐시 장애 시 요청이 각 서비스로 몰릴 수 있으므로 오토스케일링 여유와 캐시 클러스터 분리, TTL·메모리 사용량을 함께 점검해야 합니다.
  • 서비스별 티켓을 작게 나누면 병렬 개발과 잦은 배포가 가능하지만, 팀원 모두가 전체 서비스의 맥락을 공유해야 합니다.