항해 실전 프로젝트 Day 02 - S.A문서 완성

박서윤·2023년 12월 3일

기획서

유기농 식품몰

기본 기능 MVP

  1. 회원가입, 로그인
  2. 백오피스
  3. 기본상품 Read, Order
  4. 장바구니 CRUD
  5. 주문테이블 CRUD

MVP이후 챌린지 기능
redis cache 적용 - 읽기 성능
인기 상품 랭킹
할인이벤트 시작 알림 기능 3일전, 1일전, 당일 - Pub/Sub Kafka?
할인기간 남은시간 표시 기능
실시간 재고 수량 표시 기능
동시성 문제 해결 - lock or redis?
redis/mysql 분산 서버 구성(샤딩, 레플리케이션)
SNS 연동 공유 기능
Admin - 판매자간의 DM(문의)

Code Convention

생성자 함수 말고 정적 팩토리 매소드+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 다음에 추가

Git Convention

Userflow

ERD

0개의 댓글