피드로 돌아가기
The Black Box Nobody Would Touch: Scaling Undocumented Legacy Code as a 3-Year Dev
Dev.toDev.to
Infrastructure

레거시 분석 없이 인프라 확장과 Seam 도입으로 동시 접속자 5,000명 달성

The Black Box Nobody Would Touch: Scaling Undocumented Legacy Code as a 3-Year Dev

naveenreddy devireddy2026년 5월 21일6intermediate

Context

문서화 부재 및 외부 벤더 의존도가 높은 Node.js 단일 서버 기반 레거시 시스템. MySQL과 MongoDB가 혼재된 복잡한 데이터 흐름과 Active Directory에 강결합된 인증 구조로 인해 Multi-tenant SaaS 확장 불가 및 성능 병목 발생.

Technical Solution

  • 코드 분석 대신 로그와 트래픽 관찰을 통한 실제 런타임 동작 기반의 Behavior Mapping 수행
  • Frontend와 Backend 서버를 물리적으로 분리하여 리소스 경합 제거 및 Nginx Reverse Proxy를 통한 Load Balancing 구축
  • Node.js 프로세스의 CPU 병목 해결을 위해 PM2 Cluster Mode를 적용한 서버당 4개의 Worker 배치
  • MySQL 및 MongoDB에 Read Replica를 도입하여 Transactional Write와 Reporting Read 경로를 분리한 데이터 부하 분산
  • hardcoded된 AD 인증 로직을 Adapter Pattern 기반의 Pluggable Auth Provider로 추상화하여 Tenant별 인증 메커니즘 확장성 확보
  • 작은 단위의 점진적 변경과 관찰 가능성 기반의 검증 과정을 통한 시스템 안정성 유지

1. 코드 분석 전 런타임 로그와 DB 쿼리를 통해 실제 동작하는 Behavior Map을 먼저 작성할 것

2. 내부 로직 수정 전 서버 분리, 클러스터링, Read Replica 도입 등 인프라 레벨의 Scaling을 우선 검토할 것

3. 변경 위험이 큰 핵심 로직은 Interface와 Adapter를 통해 기존 코드와 분리하는 Seam을 구축할 것

원문 읽기