Date (일시): Location (장소): ZEP Recorder (작성자): 권지원 Attendees (참석자): 권지원, 박소영, 김예은, 정민교, 신현민
- 튜터님 피드백
- 플로우차트
비즈니스 상 이상거래는 따로 탐지하는게 좋음 (ex) 결제 금액이 다른 경우는 환불 해주긴 하겠지만 결제 상태에는 실패로 처리하기
주문 생성 후 일정 시간이 지나면 Pending 처리 대신 다른 상태값으로 변경해주는 로직 추가
포인트 처리할 때도 동시성 문제 처리하기 (동시에 포인트를 사용하는 경우)
PortOne 등 외부에서 오류가 발생했을 때는 포인트 복구를 어떻게 할 지에 대해서 고민해보기
환불 파트도 위에서 집었던 부분에 대해 다시 생각해보기
상품 조회 후 금액 한 번 더 검증하는 로직 추가 (주문 생성할 때 총액 vs 상품 총액)
webhook 이 들어오는 sequence 도 짜기
portone 으로 요청이 들어가는 경우를 잘 분리해주기
- ERD
주문과 결제는 선택 관계가 아님 (1:1) 주문이 생성되면 결제도 바로 생성되도록 함 (pending 상태로 )
portone 에는 결제 생성시 만들어진 ID 를 보내기
point 의 주문 ID 는 nullable 로 설정하기! (이후 생일용 포인트 등 확장성을 위해서)
전액환불 구조니까 환불 테이블에 환불금액 컬럼은 정규화 위반
멤버십 등급 테이블로 설계하기, DB 에 정책 설계를 해주기 편하니까!
- 정민교: 개인 사정으로 외출
- 권지원: api 명세서 작성하기 어려워요... -> 열심히 하세요
- 신현민:
- 박소영:
- 김예은:
- 기초 API 명세 작성 - 각자 도메인 분리하고 API 명세서를 작성했습니다.
- 초기 코드 업로드 - yml 파일, 프로젝트 생성, 의존성 추가, 공통응답, 공통 에러 포맷, DB 연결설정
- 코딩 각자 맡은 부분 (domain) 해야할 일 나눠서 작성하기
- git convention
브랜치 이름 -> feat/이슈번호-도메인-기능 이슈 등록하고 작성하기 - String id 에 관한 질문
프론트에서 id 를 Long 이나 number, int 타입이 아닌 String 타입으로 받는데 이 때
String type 의 식별자를 따로 만들어서 보내야할지 아니면 그냥 Long ID 를 String 타입으로 변환하여 반환할지에 대한 고민
-> 지금같은 상황에서는 주문을 제외하고는 string id 를 secquence 로 만들어진 id 값으로 넘기는게 좋을 것 같다 주문같은 경우는 사용자에게 보여줄 수 있는 간단한 번호가 있는게 좋지만 다른 도메인에 대해서는 MSA 환경이 아니고, 데이터 개수를 노출시키는 것에 대해서 걱정할 필요가 따로 X 라고 말씀해주셨습니다!! 현재는 성능을 최우선으로 한다고 발표 때 작성하면 될 듯 해요
- 정민교: 주문
- 권지원: 인증인가, 사용자, 상품 도메인
- 신현민: 결제
- 박소영: 결제
- 김예은: 포인트