tech note 2

[Design Doc] 쿠폰 테이블 설계 (6팀, 4주차, 조수현)

TL;DRCouponTemplate과 UserCoupon을 분리하고, isActive(신규 발급 차단)와 isBlocked(기존 쿠폰 전량 차단)를 별도 책임으로 설계했다. CouponStatus는 DB에 저장하지 않고 조회 시점에 계산한다.Introduction & GoalsContext: 쿠폰 정책(할인율, 유효기간)과 발급본(소유자, 사용 여부)을 하나의 테이블로 관리하면 정책 변경 시 발급된 전체 row가 영향을 받는다. 100만 명이 발급받은 쿠폰의 할인율이 잘못됐으면 100만 row를 UPDATE해야 한다.Goals: 정책 변경이 기존 발급 쿠폰에 소급 적용되지 않는 구조. 운영자가 신규 발급만 막거나, 기존 쿠폰 사용까지 막거나, 두 가지를 독립적으로 제어할 수 있을 것.Detailed De..

카테고리 없음 2026.06.12

[Design Doc] 레이어드 아키텍처 설계 — 4개 레이어, 컴포넌트, 실제 구현 (3주차 · 6팀 · 조수현)

TL;DR4개 레이어(interfaces, application, domain, infrastructure)로 구성된 레이어드 아키텍처를 적용했다.의존 방향은 interfaces → application → domain ← infrastructure 단방향으로 강제하고,DIP(의존성 역전 원칙)로 domain이 Spring/JPA/BCrypt 같은 인프라 기술을 모르는 구조를 만들었다.Introduction & Goals커머스 백엔드 API를 설계할 때 두 가지 문제를 피하고 싶었다.기술 의존 전파: Spring Security, JPA 같은 인프라 기술이 비즈니스 로직에 직접 침투하는 것책임 불명확: "이 코드는 어느 레이어에 있어야 하나?"라는 질문에 명확히 답할 수 없는 구조레이어드 아키텍처 + D..

카테고리 없음 2026.05.29