쿠폰함 모델 리팩터링 및 DB 설계 결정 (Day 169)

Source

  • Field Notes/ReturnZero/Daily Notes/Day 169. 2021-12-16.md

Summary

쿠폰함 서비스의 페어코딩 과정에서 클라이언트의 문자열 타입 요청을 거부하고, DB 쿼리 효율성과 유지보수성을 위해 CouponPropertiesIssuedCouponProperties를 분리하는 설계 결정을 내렸다. JSON 어노테이션과 마셜러를 분리하여 구현하는 방향으로 합의했다.

Key Points

  • 클라이언트의 ‘type’ 필드 문자열화 요청 거부: 사후 관리 어려움 및 데이터 무결성 문제 우려
  • 모델 분리 결정: 조회용 CouponProperties와 쿼리/DB 저장용 IssuedCouponProperties 분리
  • 구현 전략: CouponProperties는 JSON 어노테이션 활용, IssuedCouponProperties는 별도 마셜러 구현
  • 배경: 기존 구조에서 필드 중복(MembershipEndAt 등)으로 인한 DB 쿼리 복잡성 해소 필요