안녕하세요.
담당 매니저 김수민입니다.
기간제(상주) 프로젝트 희망 근무 시작일을
등록해 주시면, 파트너님의 일정에 맞는
적합한 프로젝트를 추천해 드려요.
플러스
영풍문고 레거시 시스템을 MSA 및 쿠버네티스 환경으로 전면 리빌딩
개발
기타(IT 서비스 구축), 자사몰 구축, 커머스 이전ㆍ확장
프로젝트 배경
1) 문제점
- 모놀리식 구조의 한계: 거대한 Legacy Monolith 시스템으로 인해 코드 수정 시 영향 범위 파악이 어렵고, 배포 시간이 오래 걸려 빠른 대응이 불가능
- 확장성 및 유연성 부족: 신간 출시나 이벤트 시 트래픽이 폭주하면 서버가 다운되거나 속도가 현저히 느려지는 등 유연한 스케일링이 어려움
- 시스템 노후화 및 수동 운영: Java/JSP 기반의 오래된 기술 스택과 수동 배포(Manual Deployment) 방식으로 인해 운영 효율성이 낮고 휴먼 에러 발생 빈도가 높음

2) 프로젝트 목표
- MSA로의 전환: 거대한 모놀리식 시스템을 도메인 단위(주문, 전시, 회원 등)의 마이크로서비스로 분리하여 독립적인 배포와 확장성을 확보
- 현대적인 쇼핑 경험 제공: Vue3 기반의 반응형 웹과 앱을 구축하고, 복잡했던 매장 픽업(나우드림) 프로세스를 간소화 및 자동화하여 사용자 편의성과 운영 효율성 동시 증대
- 운영 안정성 및 자동화: Kubernetes와 CI/CD 파이프라인을 도입하여 무중단 배포를 실현하고, Auto-Scaling을 통해 트래픽 급증에도 안정적인 서비스를 유지

3) 주안점
- 대용량 트래픽 안정성: Spring Batch + Quartz 전환 및 쿼리 튜닝을 통해 대규모 주문/정산 데이터를 빠르고 안정적으로 처리하는 데 집중
- DevOps 파이프라인 구축: On-Premise 환경에 GitLab-CI/Harbor/ArgoCD를 연동한 K8s 자동화 배포 파이프라인을 구축하여 배포 속도와 운영 안정성을 획기적으로 개선
- 데이터 정합성 보장: 분산 환경(MSA)에서도 배치 프로세스의 일관성을 유지하기 위해 정교한 트랜잭션 관리와 동기화 메커니즘 설계 적용
프로젝트 성과
Legacy Monolith → MSA 전환
기존 Jenkins 기반의 단일 앱 수동 배포 환경을 K8s 기반의 멀티 모듈 파이프라인으로 100% 자동화하여 안정성 확보 및 무중단 배포를 실현했습니다.
Spring Batch + Quartz 기반의 안정적인 배치 시스템 구축
기존 @Scheduled로 동작하여 장애 추적이 어렵던 배치를 Spring Batch와 Quartz 조합으로 재설계하여, 주문/정산 등 배치 처리의 원자성(Atomicity)과 장애 복원력을 확보했습니다.
이기종 DB 간 대규모 데이터 마이그레이션 및 정합성 확보
회원, 상품, 베스트셀러 등 핵심 테이블의 수백만 건 데이터를 Spring Batch, Quartz를 활용해 신규 DB로 안전하게 이관하고, 전수 검증을 통해 데이터 유실 없는 성공적인 리뉴얼을 달성했습니다.
핵심 기능
O2O 나우드림 서비스
소비자가 온라인 주문 후 오프라인 매장에서 수령하는 '나우드림' 프로세스 로직과, 매장 관리자가 실시간으로 주문을 접수/인계 처리할 수 있는 통합 관리자 페이지를 개발했습니다.
외부 기프티콘 연동 및 복합 결제 시스템
11번가 POS API와 실시간으로 연동하여 외부 기프티콘의 유효성을 검증 및 소진 처리하고, 포인트, 상품권, 신용카드 등 다양한 결제 수단을 복합적으로 사용하는 결제 프로세스를 구현했습니다.
Kubernetes CI/CD 자동화 파이프라인
Gitlab CI, Harbor, ArgoCD를 통해 커밋부터 배포까지 전 과정을 자동화하고, Helm Chart를 통해 환경별(Dev/QA/Prod) 인프라 리소스를 효율적으로 관리하는 시스템을 구축했습니다.
베스트셀러 및 테마 큐레이션
주간/월간 판매 데이터를 집계하여 실시간 베스트셀러 랭킹을 산출하는 배치를 구축하고, 복잡한 통계 쿼리를 최적화하여 대용량 트래픽 상황에서도 지연 없는 메인 진열 서비스를 제공했습니다.
검색 엔진 연동
와이즈넛(WiseNut) 전문 검색 엔진을 도입하여, 수십만 권의 도서 데이터베이스 내에서 정확도 높은 키워드 검색, 작가별 검색, 카테고리 필터링이 가능한 고도화된 검색 시스템을 개발했습니다.
프로젝트 상세
1) 포트폴리오 소개
- 서비스 카테고리: 온/오프라인 통합 도서 커머스 (O2O Commerce Platform)
- 메인 타깃: 전 연령층의 도서 독자 및 오프라인 매장 방문 고객
- 소개: 국내 대표 서점 '영풍문고'의 노후화된 레거시 시스템을 Cloud Native MSA 환경으로 전면 리뉴얼하여, 대규모 트래픽에도 유연하게 대응하고 매장 픽업(나우드림) 등 온/오프라인을 잇는 현대적인 쇼핑 경험을 제공하는 대규모 구축 프로젝트

2) 작업 범위
- Back-end: Spring Boot 기반 MSA 마이크로서비스(상품, 주문/결제, 어드민 등) 설계 및 구현
- Front-end: Vue3/Vite 기반의 사용자 웹 쇼핑몰 및 관리자 백오피스 개발
- DevOps: Kubernetes 클러스터 구축, Helm Chart 작성, Gitlab CI + Harbor + ArgoCD 기반 배포 파이프라인 구성
- Migration: 기존 Oracle → MariaDB 로 전체 데이터 이관 배치 프로세스 개발

3) 주요 업무
- O2O 나우드림 서비스: 온라인 결제 후 오프라인 매장에서 즉시 수령하는 '나우드림' 프로세스 및 실시간 재고 연동 로직 구현
- 배치 프로세스 고도화: 기존의 단일 애플리케이션의 @Scheduled 기반 불안정한 배치를 Spring Batch + Quartz 조합으로 전면 재설계하여 대용량 트랜잭션 처리 안정성 확보
- 복합 결제 시스템: KCP, 카카오페이, 페이코 등 다수 PG사 연동하여 복합 결제 로직 개발에 기여
- 기프티콘 플랫폼 연동: 외부 채널(11번가) 기프티콘 기능 통합을 위해 POS와 실시간으로 통신하여 유효성 검증 및 소진 처리하는 API 개발
- 기존 영풍문고의 도서, 유저 등 전체 데이터 마이그레이션
- 기존의 Jenkins 기반 배포 방식에서 K8s, Docker, Helm, Harbor, Gitlab CI, ArgoCD로 전환에 기여
- 주간/월간 베스트셀러 개발
- 주문/결제 건 조회 및 주문 취소 개발
- 상품, 베스트셀러 등 다수의 쿼리 속도 개선
- 마이페이지 개발
- Critical, Major 이슈 약 1,600개 버그 픽스 기여

4) 주안점
- Monolith → MSA 아키텍처 전환: On-Premise 환경에 Kubernetes를 도입하여, 트래픽 급증 시에도 서비스 중단 없이 유연하게 확장(Auto-scaling) 가능한 고가용성 환경 구축
- 배포 운영 자동화: 기존 수동 배포 방식의 비효율을 해결하기 위해 GitLab CI → Harbor → ArgoCD로 이어지는 GitOps 파이프라인을 구축하여 배포 속도 단축 및 안정성 극대화
- 데이터 정합성 및 성능 최적화: MSA 분산 환경에서의 데이터 일관성을 위해 MyBatis CursorItemReader와 동기화 래퍼를 적용하고, 쿼리 튜닝을 통해 대량의 주문/정산 데이터 처리 속도를 획기적으로 개선
메인 대시보드 - 1
메인 대시보드 - 2
메인 대시보드 - 3
베스트셀러
기프티콘 전자 머니
기프티콘 상품권
기프티콘 어드민
나우드림 어드민
나우드림 감열지 - 1
나우드림 감열지 - 2

비슷한 프로젝트를 준비 중이라면?
위시켓 매니저와 상담하세요.

참여 개발사와 미팅 연결

프로젝트 1:1 컨설팅 제공

무료로 프로젝트 등록하기

작업한 파트너 프로필 보기

ch******
개발 · 개인

프로젝트 정보

참여 기간
2023.05. ~ 2023.11.
참여율
참여율이 100%인 프로젝트는 해당 파트너님이 온전히 작업한 결과물입니다.
외부 공동 작업의 경우 기여도에 따라 참여율이 달라지며 역할, 프로젝트 설명을 통해 업무 분야 및 참여 범위를 확인할 수 있습니다.
100%
관련 기술
MariaDB
gitlab-ci
gitlab
TypeScript
MyBatis
Spring Boot
Vite
Java
Helm
harbor
spring batch
grafana
Spring Quartz
Docker
Apache
Redis
argocd
Kubernetes
loki
docker-compose
Vue.js
Jenkins