리뷰 별점 렌더링 불일치 해소와 구매 확정 후 작성 정책 구현
목차
feat: 주문, 리뷰 및 쿠폰 관련 주요 기능 추가
리뷰/별점 기능 구현 작업임. SVG 별점 렌더링이 생각보다 신경 쓸 게 많았음.
SVG 별점 통일
다양한 아이콘 세트에서 가져온 별 아이콘들의 viewBox가 제각각이어서 크기가 맞지 않았음. 24x24로 통일하고 width/height로만 크기 조절함.
.star-icon {
width: 20px;
height: 20px;
viewBox: 0 0 24 24; // 통일
fill: currentColor;
}
리뷰 데이터 구조
| 컬럼 | 타입 | 설명 |
|---|---|---|
| review_sn | BIGINT | PK |
| member_sn | BIGINT | 작성자 |
| product_sn | BIGINT | 대상 상품 |
| order_sn | BIGINT | 구매 이력 (구매 확인용) |
| rating | INT | 1-5 |
| content | TEXT | 리뷰 내용 |
리뷰 정책
- 구매 확정 후만 작성 가능 (order_sn 검증)
- 1 주문당 1 리뷰
- 수정은 작성 후 7일 이내
별점 집계는 SELECT AVG(rating)로 실시간 계산함. 트래픽 증가 시 캐싱 검토 필요.
개발 원칙 정리
이 작업을 진행하면서 재확인한 원칙들:
작은 커밋: 변경 단위를 작게 유지해서 코드 리뷰와 롤백이 쉽게.
테스트 먼저: 변경 전 현재 동작을 파악하고, 변경 후 동일하게 동작하는지 확인.
문서 동기화: 코드가 바뀌면 관련 주석과 문서도 같이 업데이트.
| 원칙 | 이유 |
|---|---|
| 단일 책임 | 하나의 함수/클래스는 하나의 역할만 |
| 명시적 코드 | 영리한 코드보다 읽기 쉬운 코드 |
| 실패 우선 처리 | happy path보다 에러 케이스 먼저 설계 |
끝
댓글 0
첫 댓글 달아줘.