[초코레터 프로젝트 고도화 - 0] 고도화 계기 및 기존 프로젝트 상황
발렌타인데이 시즈널 서비스 초코레터 프로젝트를 고도화하게 된 계기와 기존 아키텍처를 소개합니다. 익명 편지, 영상통화, 채팅 기능의 기존 구현과 쿠버네티스 마이그레이션, Kafka에서 Redis 전환 등 개선 방향을 설명합니다.
![[초코레터 프로젝트 고도화 - 0] 고도화 계기 및 기존 프로젝트 상황](/img/Project/chocoletter1.gif)
발렌타인데이 시즈널 서비스 초코레터 프로젝트를 고도화하게 된 계기와 기존 아키텍처를 소개합니다. 익명 편지, 영상통화, 채팅 기능의 기존 구현과 쿠버네티스 마이그레이션, Kafka에서 Redis 전환 등 개선 방향을 설명합니다.
![[초코레터 프로젝트 고도화 - 1] 쿠버네티스 환경으로 마이그레이션](/img/Project/choco-legacy.png)
단일 컨테이너 기반 아키텍처에서 쿠버네티스 환경으로 마이그레이션한 과정을 설명합니다. Self-healing, HPA 자동 스케일링, ArgoCD GitOps 배포, Gateway API를 통한 트래픽 관리 등 클라우드 네이티브 아키텍처의 이점을 구현한 방법을 다룹니다.
![[초코레터 프로젝트 고도화 - 2] Kafka에서 Redis Streams로 마이그레이션](/img/Project/focus-chat.png)
채팅 기능의 메시지 큐를 Kafka에서 Redis Streams로 마이그레이션한 과정입니다. 실시간성, 멀티 인스턴스 동기화, 메시지 저장 등 핵심 요구사항 분석과 함께 Producer, Consumer 코드 변경 내용을 설명합니다.
![[초코레터 프로젝트 고도화 - 3] 잘못된 편지 내용 암호화 기능 수정](/img/Project/encrypt1.png)
프론트엔드에 하드코딩된 대칭키로 인한 보안 취약점을 분석하고 서버 사이드 AES-GCM 암호화로 개선한 과정입니다. AWS Secret Manager와 External Secret 오퍼레이터를 활용한 안전한 키 관리 방법도 설명합니다.
![[초코레터 프로젝트 고도화 -4] 영상통화 기능 삭제](/img/Project/calender.jpeg)
사용률이 낮은 영상통화 기능을 삭제한 리팩토링 과정입니다. Openvidu 호스팅 비용, 복잡한 부가 기능(일정 관리, 알림, 스케줄링) 등 유지보수 부담을 줄이기 위한 프론트엔드/백엔드 코드 정리 내용을 설명합니다.
![[초코레터 프로젝트 고도화 -5] DB 설계 변경 & 데이터 Backfill](/img/Project/erd.png)
Gift와 Letter 테이블을 GiftLetter로 통합하며 발생한 DB 설계 변경과 무중단 데이터 마이그레이션 과정을 다룹니다. 이중쓰기 전략, Spring Batch를 활용한 데이터 Backfill, 쿼리 최적화(2N+1 → 1) 등 실무에서 적용 가능한 마이그레이션 기법을 설명합니다.
![[초코레터 프로젝트 고도화 -6] Spring Event로 결합도 낮추기](/img/Project/springevent1.png)
서비스 계층의 다른 도메인 레포지토리 의존성을 Spring Event로 분리하여 결합도를 낮춘 리팩토링 과정입니다. ApplicationEventPublisher를 활용한 이벤트 기반 아키텍처 구현과 도메인 간 의존성 제거 방법을 설명합니다.