본문으로 이동
10년 된 레거시 PHP 모노리스 갈아엎은 후기│인프콘2024
컨퍼런스

10년 된 레거시 PHP 모노리스 갈아엎은 후기│인프콘2024

INFCON 2024 인프런 · YouTube

원문 보기

AI 핵심 요약

10년간 운영한 PHP 모놀리스는 정적 검사와 테스트가 부족해 변경 때마다 전수 QA가 필요했고, 장애 대응과 기능 확장도 어려웠다. 포트원은 AWS·쿠버네티스 기반 인프라를 코드로 관리하고, 코틀린 마이크로서비스를 도입해 사용량이 높은 API부터 기존 동작을 유지하며 점진적으로 교체했다. 서비스에는 계층형 아키텍처와 타입 기반 오류 처리, gRPC·Protobuf를 적용했으며 결제 상태 관리에는 카산드라 기반 이벤트 소싱과 OpenSearch·ClickHouse 읽기 모델을 구성했다. 발표에 따르면 PHP 코드 호출 비중을 2% 미만으로 낮추고 배포 주기를 2주로 정착시켰으며, 레거시를 존중하되 장기적인 병목은 근본적으로 개선해야 한다는 교훈을 얻었다.

  • 운영 중인 모노리스를 한 번에 교체하기보다 사용량이 높은 API부터 기존 인터페이스를 유지하며 단계적으로 전환한다.
  • 코틀린의 sealed 타입과 Arrow의 Either를 활용하면 오류 케이스를 함수 타입에 드러내고 컴파일 타임에 처리를 확인할 수 있다.
  • 도메인·프레젠테이션·인프라 계층을 분리하고, 각 계층의 역할에 맞춰 단위 테스트와 통합 테스트를 구성한다.
  • 서비스 간 API는 gRPC와 Protobuf로 스키마를 관리하고 코드를 생성해, 명세와 구현의 불일치를 줄인다.
  • 이벤트 소싱은 상태 변경 이력을 보존하지만 복잡한 조회에는 별도 읽기 모델이 필요하며, 최신 상태 반영에 지연이 생길 수 있다.

소개

🌱 인프런 에서 인프콘2024 강의 자료 다운로드 받고 복습해보세요. 🩵 강의 자료 다운 받기 : https://u.inf.run/4cLhYyK 🌱 인프런과 함께 배우고, 나누고, 성장하세요. 🩵 10년 된 레거시 PHP 모노리스 갈아엎은 후기 - 장두호 운영 환경에서 오랜 기간 사용되어 온 레거시 시스템에 어떻게 다시금 활력을 불어넣을 수 있을까요? 제품의 안정성과 유지보수 효율을 높이고 기능을 손쉽게 확장할 수 있는 새로운 기반을 마련하기 위해 많은 분들이 함께 고민하고 계신 문제일 것입니다. 이번 발표에서는 포트원이 10년간 운영해 온 PHP 기반 모노리스 시스템을 현재의 마이크로서비스 구조로 전환하는 과정에서 있었던 여러 시행착오와 의사결정들에 대해 소개합니다. 그 결과 PHP 코드 호출 비중을 2% 미만으로 줄이고 신규 기능 배포 주기를 비약적으로 단축할 수 있었는데요. 시시각각 변하는 트렌드 속에서 제품과 사업의 특성에 맞는 새로운 기술스택을 채택하고, ...

비슷한 학습 자료

컨퍼런스 FEConf 2025 A트랙

FEConf 2025 2025.8.23 11:00 ~ 17:40 세종대학교 광개토관 컨벤션센터 TRACK A-6 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년 김종혁 | 플렉스팀 4년에 가까운 시간동안 flex 웹 제품을 지탱해오던 모노레포는 제품과 팀의 규모가 꾸준히 커지며 여러 문제에 맞닥뜨렸습니다. 개발 속도는 느려지고 복잡한 의존관계로 인해 제품 안정성이 위협받았습니다. flex 웹 클라이언트 플랫폼 팀은 제품 개발과 릴리즈를 멈추지 않으면서, 1년간 하나의 레포지토리를 14개의 개별 레포지토리로 분리했습니다. 그 과정에서 안정적이고 빠른 마이그레이션 전략을 만들고, 팀과 제품 규모에 맞는 코드베이스 전략이 무엇인지 깊이 고민했습니다. 모노레포가 어떻게 절망이 되었는지, 그리고 팀이 그것을 극복하기 위해 어떤 기술적·조직적 판단을 내렸는지 공유합니다.

프론트엔드

컨퍼런스 INFCON 2024

🌱 인프런 에서 인프콘2024 강의 자료 다운로드 받고 복습해보세요. 🩵 강의 자료 다운 받기 : https://u.inf.run/4cLhYyK 🌱 인프런과 함께 배우고, 나누고, 성장하세요. 🩵 달리는 기차의 바퀴 갈아끼우기: 인프런 프론트엔드 마이그레이션 여정 - 조성륜 실제 운영되고 있는 서비스의 레거시 코드(Express.js 기반 Vanilla.js)를 모던 리액트 환경으로 마이그레이션을 하기위한 인프런 프론트파트의 여정을 공유합니다. #인프콘 #인프런 #인프콘2024 #인프콘2024다시보기

웹 개발 프론트엔드

컨퍼런스 INFCON 2024

🌱 인프런 에서 인프콘2024 강의 자료 다운로드 받고 복습해보세요. 🩵 강의 자료 다운 받기 : https://u.inf.run/4cLhYyK 🌱 인프런과 함께 배우고, 나누고, 성장하세요. 🩵 10년 동안의 실패 이야기: 실패를 의미있는 일로 탈바꿈하는 가장 쉬운 방법 - 강영화 그동안 겪은 실패 이야기를 나눠요. 성공에 대해서는 많은 사람들이 말하지만, 실패에 대해서는 잘 말하지 않죠. 10년 넘는 기간 동안 커리어를 이어가면서 크고 작은 실패들을 경험했어요. 사용자 피드백 없이 제품을 만들기도 하고, 디자이너에서 PM/PO로 전향하려 했던 시도들이 좌절되기도 했으며, 자기관리 실패로 크고 작은 번아웃도 겪었죠. 괴롭고 힘들었지만, 정말 많은 것들을 배우게 되었어요. 제 커리어의 다양한 이야기를 들려드릴게요. 실패를 어떻게 의미 있는 일로 바꿀지에 대한 아이디어도 얻어가실 수 있을 거예요. 이런 이야기를 들으실 수 있어요. - 유저 리서치, 디자인, 커뮤니케...

컨퍼런스 INFCON 2024

🌱 인프런 에서 인프콘2024 강의 자료 다운로드 받고 복습해보세요. 🩵 강의 자료 다운 받기 : https://u.inf.run/4cLhYyK 🌱 인프런과 함께 배우고, 나누고, 성장하세요. 🩵 인프런 아키텍처 2024 ~ 2025 - 이동욱 작년 발표 이후 1년간 인프런 아키텍처가 어떤 변화가 어떤 이유로 진행되었는지 소개 합니다. 새로운 구조나 아키텍처로 개편하는 과정에 대한 이야기들은 많지만 그런 개편 이후 1년, 2년이 지나서 어떤 결과가 만들어지는지에 대한 소개는 많이 없습니다. 인프런에서는 2022년부터 지속적으로 아키텍처를 점진적으로 개선하고 있으며, 2년전의 결정이 지금은 어떻게 되었는지 등 결과도 함께 경험하고 있습니다. 최근 1년간은 비용절감, Next.js 기반의 SSR, CSR, SPA 환경과 기존 Express SSR 과의 공존, 글로벌 플랫폼을 가기 위한 기반 작업 등등 여러 관심사를 해결하기 위한 노력들을 해왔습니다. 인프런 서비스가 ...

프론트엔드 백엔드

컨퍼런스 INFCON 2024

🌱 인프런 에서 인프콘2024 강의 자료 다운로드 받고 복습해보세요. 🩵 강의 자료 다운 받기 : https://u.inf.run/4cLhYyK 🌱 인프런과 함께 배우고, 나누고, 성장하세요. 🩵 하루 1억 건 이상을 처리하는 견고한 포인트 시스템 구축하기 - 서주은 버즈빌의 리워드 광고 서비스를 통해 유저는 하루에도 수십 번 이상 광고를 보고 포인트를 적립받습니다. 이렇게 쌓이는 포인트는 일 1억 건 이상이며 이를 안정적으로 처리하는 것은 매우 도전적인 과제입니다. 또한, 포인트 데이터는 돈과 관련된 중요한 데이터이기에 한 치의 오차도 없이 정확하게 관리되어야 합니다. 이러한 요구사항을 충족시키기 위해 학교에서 배운 낙관적 락을 어떻게 활용했는지 살펴보고, 초기 설계부터 최종 설계까지의 고민 과정을 공유합니다. 또한, MySQL과 AWS의 관리형 NoSQL 데이터베이스인 DynamoDB를 이용해 구현하는 방법도 소개합니다. #인프콘 #인프런 #인프콘2024 #인프...

백엔드 데이터베이스

컨퍼런스 INFCON 2024

🌱 인프런 에서 인프콘2024 강의 자료 다운로드 받고 복습해보세요. 🩵 강의 자료 다운 받기 : https://inf.run/ifwWL 🌱 인프런과 함께 배우고, 나누고, 성장하세요. 🩵 주목받지 못한 서비스를 되살리기까지! - 안도영 여기어때에서는 사용자에게 다양한 여행 관련 서비스를 제공하고 있습니다. 이 다양한 기능들은 앱으로 활용이 가능하며 수많은 기능이 추가되고 있습니다. 또한 유저 친화적인 서비스를 위해 많은 노력들을 하고 있습니다. 하지만 웹은 옛날 모습을 간직한 채 아무런 업데이트 없이 산소 호흡기만 달고 유지될 뿐 거의 버려진 서비스였습니다. UX 및 UI, 프로젝트조차 레거시가 돼버린 상태에서 작년 한 해 동안 리뉴얼 작업을 거쳐 새로운 서비스로 탈바꿈하였습니다. 웹 서비스를 재 탄생시키면서 어떠한 부분을 중점적으로 고려하였는지, 프로젝트를 진행함에 있어서 필요한 부분은 무엇인지 그 사이에 얻어진 경험들을 공유하려고 합니다. 여행 서비스에 관심이...

웹 개발 UI/UX