기획전 서비스 개발

1. 프로젝트 개요

  • 개발 기간: 2023. 01 ~ 2023. 03 (3개월)
  • 개발 인원: 2명 (백엔드 1명, 프론트엔드 1명)
  • 담당 역할: 백엔드 설계 및 개발, 프로젝트 매니징
  • 기술 스택: Java 17, Spring Boot 2.7, Redis, MySQL 8.0, Kafka, IntelliJ

2. 배경 및 필요성

  • 이슈: 기존에는 기획전 페이지가 하드코딩 되어 있어 새로운 기획전이 열릴 때마다 개발자가 매번 개입해야 하는 비효율이 발생했습니다.
  • 목표: 기획자가 직접 다양한 모듈을 조합하여 자유롭게 기획전 페이지를 생성하고 운영할 수 있는 관리자 시스템(Back-office) 구축을 목표로 하였습니다.

3. 전체 아키텍처

  • 구조: 기획전 정보를 서빙하는 display-gateway와 정보를 관리하는 plan-service로 구성되었습니다.
  • 성능 최적화: display-gatewayRedis를 활용해 데이터를 캐싱하여 빠른 응답 속도를 보장합니다.
  • 데이터 동기화: 기획전 정보 변경 시 Kafka를 통해 이벤트를 발행하고, display-gateway가 이를 구독하여 실시간으로 Redis 캐시를 갱신하는 구조입니다.

4. 테이블 설계

주요 테이블 구조는 다음과 같습니다:

  • Exhibition: 기획전의 기본 정보 (제목, 기간, 활성화 여부 등)
  • Module: 기획전에 포함되는 각 모듈 정보 (타입, 순서 등)
  • Products: 각 모듈에 매칭되는 상품 리스트
  • History: 기획전 수정 및 상태 변경 이력 관리

5. 주요 설계 포인트: 유연한 모듈 시스템

  • 이미지형, 상품 리스트형, 텍스트형 등 다양한 형태의 모듈을 지원하기 위해 전략 패턴(Strategy Pattern)을 도입했습니다.
  • 모듈 타입에 따라 서로 다른 데이터 처리 로직을 분리하여 시스템의 확장성을 확보했습니다.

6. 효과적인 커뮤니케이션

  • 프론트엔드: API 스펙 설계 단계부터 긴밀하게 논의하여 복잡한 모듈 데이터를 효율적으로 전달할 수 있는 구조를 확립했습니다.
  • 비즈니스 부서: 개발 중간 단계에서 수시로 데모를 진행하여 기획 의도와 부합하는지 확인하고 피드백을 즉각 반영했습니다.

7. 프로젝트 매니징 및 일정 관리

  • 리스크 관리: 매주 진행 상황을 Follow-up 하여 잠재적 리스크(휴가, 기술적 난관 등)를 상시 점검했습니다.
  • 유연한 대응: 개발 막바지 프론트엔드 구현 난이도로 인해 일정 지연 가능성을 조기에 파악하고, 이해관계자들과 협의하여 성공적으로 일정을 조정해 프로젝트를 성공적으로 마무리했습니다.


(원문 출처: https://kdohyeon.tistory.com/102 [대니기록:티스토리])