기본 기능 MVP
MVP이후 챌린지 기능
redis cache 적용 - 읽기 성능
인기 상품 랭킹
할인이벤트 시작 알림 기능 3일전, 1일전, 당일 - Pub/Sub Kafka?
할인기간 남은시간 표시 기능
실시간 재고 수량 표시 기능
동시성 문제 해결 - lock or redis?
redis/mysql 분산 서버 구성(샤딩, 레플리케이션)
SNS 연동 공유 기능
Admin - 판매자간의 DM(문의)
생성자 함수 말고 정적 팩토리 매소드+Builder패턴 사용하기 -
코드 한 줄에는 . 하나만 사용( builder pattern에서) -
Execption message enum으로 통일 관리 -
코드 1줄은 120자 이상 피하기 -
entity @Setter 안쓰기 -
class 기능별 lombok annotation 통일 -
어노테이션은 위에서부터 아래로 짧은 순서대로 작성 - 고민해보자
ManyToOne에는 fetch.Lazy걸어주기 -
단순히 조회만 하는 메소드의 경우 Transaction(readOnly = true) 걸어주기 -
중복되는 로직은 하나의 함수로 만들어서 사용 -
@Repository annotation 붙이기 - 명확성을 위해
@Transactional annotation 붙이기 - 코드 수정/추가 시에 실수 방지
Annotation 붙은 class field는 띄어쓰기 - 코드 가독성
@RequestDto에는 @NoArgsConstructor(access = AccessLevel.PROTECTED) 붙이기 - 무분별한 객체 생성 제한
@Validated annotation은 다른 annotation 다음에 추가


