피드로 돌아가기
마켓컬리에서의 PHP 이야기
컬리 기술블로그컬리 기술블로그
Backend

마켓컬리에서의 PHP 이야기

마켓컬리가 PHP 레거시 코드를 Laravel 기반 Modern PHP로 마이그레이션하고 Spring Cloud Netflix + Spring Cloud Sidecar를 통해 MSA에 통합

2020년 4월 30일10intermediate

Context

마켓컬리는 PHP로 구축된 레거시 쇼핑몰 솔루션을 운영 중이었으나, 개발 언어로서의 PHP에 대한 부정적 평가와 20년 이상 축적된 저품질 PHP 코드의 영향으로 인해 개발 및 유지보수 효율성 문제에 직면했습니다. 빠른 성장세에 대응하면서도 코드 품질을 개선해야 하는 필요성이 대두되었습니다.

Technical Solution

  • 새로운 서비스 개발을 Laravel Full Stack Framework로 전환: 기존 PHP 레거시는 단계적으로 새로운 Laravel 코드로 교체
  • Testing, CI(Continuous Integration), CD(Continuous Deploy) 파이프라인 구축: 코드 품질 및 배포 안정성 강화
  • Docker 활용 극대화: 개발과 배포 환경의 일관성 확보
  • Kubernetes 기술 검토 진행: 컨테이너 오케스트레이션 도입 검토
  • Spring Cloud Netflix + Spring Cloud Sidecar 조합으로 MSA 아키텍처 통합: Java 기반 MSA 프레임워크에 PHP 서비스 참여
  • phystrix 라이브러리 도입: Spring Cloud Netflix의 Circuit Breaker 패턴을 PHP에서 구현
  • OpenZipkin + Kafka를 통한 분산 트레이싱 구축: 트랜잭션 데이터 수집 및 모니터링
  • Spring Cloud Security(OAuth2) 호환 라이브러리 자체 개발: 보안 표준화

Key Takeaway

PHP 같은 평가절하된 언어도 PSR, Composer, PHP 7 같은 표준과 도구, 그리고 Modern PHP 패러다임(Laravel, 테스트, CI/CD)을 도입하면 엔터프라이즈급 서비스 운영이 가능하며, 기존 기술 스택(Java MSA)과의 통합도 Spring Cloud Sidecar 같은 적응층을 통해 실현 가능합니다.


PHP로 구성된 레거시 서비스를 운영하는 조직에서 Laravel + Testing + CI/CD + Docker + 분산 트레이싱(OpenZipkin)을 단계적으로 도입하면 기존 시스템의 안정성을 유지하면서 점진적으로 코드 품질을 개선할 수 있으며, Spring Cloud Sidecar를 활용하면 Java 기반 MSA 아키텍처와의 상호운용성도 확보할 수 있습니다.

원문 읽기