국내 이커머스 서비스를 벤치마킹하여 구현하고,
주문/결제 기능의 안정성 확보와 성능 개선까지 함께 진행한 팀 프로젝트입니다.
- 프로젝트명: BeGroom
- 주제: 이커머스 서비스 구현
- 형태: 팀 프로젝트
- 인원: 4명 (프론트엔드 1명, 백엔드 3명)
- 기간: 2025.12 ~ 2026.02 (이후 개인 프로젝트로 성능 개선 진행중)
- 개요: 국내 이커머스 서비스를 벤치마킹하여 구현하고, 안정적인 주문/결제 처리와 성능 개선까지 함께 고민한 프로젝트
|
|
- 주문/결제 기능 구현
- 주문/결제 안정화
- 성능 최적화
*(파란 글씨 클릭하여 상세 내용 확인 가능)
- VUs 400 동시 요청에서 worker_connections 한도로 연결이 포화되어 Nginx가 close()/shutdown()로 일부 연결을 강제 종료 → ‘EOF/connection reset’로 약 20% 실패 발생
- worker_connections와 프로세스 FD limit을 함께 상향 조정해 강제 종료를 제거하고, VUs 400+에서도 요청 실패율 0%로 안정화
- IDENTITY 전략으로 INSERT가 즉시 실행되며 S Lock이 먼저 걸려 X Lock 승격이 충돌
- FOR UPDATE로 주문 레코드 X Lock 선점 → 동일 주문 결제 로직 직렬화로 데드락 제거
- OrderService가 도메인 데이터를 직접 판단·연산하며 흐름을 중앙에서 통제(변경 영향 확산)
- RDD로 책임을 도메인에 이동 → 객체 협력으로 주문 흐름 구성 → 변경, 테스트 용이성 개선
- Ubuntu/Linux(12core·16GB) 단일 서버에 Nginx/Application/DB를 Docker Compose로 컨테이너화해 운영 환경을 표준화
- DuckDNS로 도메인–공용 IP를 연결하고, Nginx에서 HTTPS(TLS) 종료 및 Path 기반 라우팅으로 서비스 요청을 분기
- 단위/통합 테스트를 구축해 핵심 흐름을 자동화하고, 다양한 엣지 케이스를 테스트에 반영해 안정성을 확보