마켓컬리의 전체 서비스 구조를 이커머스, 물류, 데이터, DevOps 네 영역으로 나눠 개발자 관점에서 소개하는 글이다. 각 영역의 기술 스택과 마이크로서비스 이관 방향, 데이터 기반 서비스를 개괄한다.
핵심 포인트- 이커머스는 iOS(Swift)와 Android(Kotlin)를 MVP/MVVM으로, 웹은 Vue.js와 Netlify로, 백엔드는 Legacy PHP와 PHP/Laravel, Java/Spring Boot의 하이브리드로 구성한다.
- 전체 이커머스를 Spring Cloud Netflix 기반 마이크로서비스로 이관하며 AWS 클라우드 이전을 마무리하는 중이다.
- 물류는 SCM/WMS/TMS 3축이며 모두 Java/Spring 기반, WMS를 MSA로 재개발하면서 AWS MQ, JPA, GraphQL을 도입한다.
- 데이터 플랫폼은 ELK 로그 수집과 AWS Glue/Athena 분석으로 구성하고, Keras 딥러닝으로 후기 사진을 자동 분류하며 수요 예측으로 상품 폐기율을 1% 미만으로 유지한다.
- DevOps는 Jenkins, SonarQube, Clair, ngrinder, Docker, Terraform으로 CI/CD와 IaC를 지향한다.
상세 정리- 이커머스 백엔드 분담: 회원/상품/주문/결제는 Legacy PHP, 앱용 API는 PHP/Laravel, 검색과 데이터 기반 서비스는 Java/Spring Boot가 맡는다.
- MSA 이관: Legacy 포함 전체를 Spring Cloud Netflix 기반 마이크로서비스로 구조화해 개발부터 배포까지 시간을 단축하려는 목표다.
- 물류 흐름: 결제가 완료되면 AWS Aurora에 주문이 생성되고, SCM/WMS/TMS가 물류 센터의 생산 작업과 배송에 사용한다.
- 물류 스택: React.js/Vue.js 프런트, Java/Spring Boot에 JPA와 GraphQL, Oracle과 Aurora(MySQL), AWS MQ를 쓰며 IDC에서 AWS로 이관을 마쳤다.
- 데이터 서비스: ELK 기반 로그 수집/검색에 AWS Glue와 Athena로 분석하고, Keras 딥러닝으로 사용자 후기 사진을 자동 분류해 수기 운영을 개선했다.
- ML 활용: 신선식품 유통기한 특성을 반영한 예측 기반 발주 관리로 상품 폐기율 1% 미만을 달성했고, 상품 추천과 신선도 분석도 진행한다.
- DevOps/SRE: 배포는 Jenkins, 품질은 SonarQube와 dependency-tracker, 컨테이너 보안은 Clair, 성능은 stage 환경 ngrinder를 쓰며, 컨테이너 오케스트레이션 도입과 IaC(Terraform)를 검토한다.
왜 읽나대형 커머스가 Legacy PHP에서 Spring 기반 MSA와 AWS로 이관하며 이커머스/물류/데이터/DevOps 스택을 어떻게 구성하는지 개괄을 보고 싶은 개발자에게.