/////
Search
Duplicate

24년 1월 15일 월요일

날짜
2024/01/15

할인율과 할인가 계산처리 시, 예외케이스 처리

문제

할인 계산처리 시, 예외케이스를 어떻게 해야할까?
할인율이 퍼센터지를 넘어가거나
고정할인가가 지불가격보다 큰 경우

해결방안

위 두 가지 케이스에 대해 예외처리를 하기로 함!

도메인에 따른 레이어를 어떻게 나눌까 ?

문제

현재 Service라는 이름으로 서로 다른 역할을 처리하고 있음
1.
Data에 대한 CRUD
2.
유스케이스 따른 흐름제어 << 다른 도메인 서비스 의존
아래와 같은 흐름으로 로직을 처리하고 있음
컨트롤러 → 다른 도메인에 의존하여 흐름처리를 하는 유스케이스Data 에 대한 데이터 조회 / 가공
그렇다면 우리는 어떻게 레이어를 나눌 수 있을까?

해결방안

아래와 같은 아키텍쳐로 분리하기로 함
Provider
다른 도메인 서비스를 주입
유스케이스 제어
Service
Repository에 접근하여 데이터 조회 / 데이터 가공

남은 요구사항에 대한 컨트롤러와 Provider ?

문제

아래와 같은 요구사항들이 남았음
쿠폰포인트에 대한 도메인을 어떻게 나누어야 할까?
남은 API에 대해서 ControllerProvider들을 어떻게 규명지을까?

해결방안

도메인을 아래와 같이 분리
API 당 Controller가 1:1이면 Overhead가 너무 큼
도메인에 따른 비슷한 역할의 처리를 하나의 Controller로 묶자
Controller를 나누는 기준은 QueryCommand로!
GETQuery
POST,PATCH,PUT,DELETECommand
Buy 와 BuyBid 네이밍이 너무 헷갈림
현재 Buy 자체가 BuyBid 를 함축적으로 사용하고 있으므로 Buy로 통일
ControllerProvider는 아래와 같이 규명하기로 함 !

포인트 증감 시나리오 ?

문제

포인트 증감 시나리오가 어떻게 될까??

해결방안

아래와 같은 로직으로 처리하기로 함

호스트와 도메인의 주인이 다를 때 연결하는 방법

문제

서버를 여는 AWS 계정도메인의 주인이 다를 경우 접속이 어려운 점이 있었음

해결방안

쿠폰 상태에 따른 쿠폰 사용 가능 / 불가능 기능 상실

문제

쿠폰의 상태에 따른 쿠폰을 사용 가능한지 불가능한지 여부를 알 수 있어야 하는데 현재 그 기능이 존재하지 않음

해결방안

1월 16일 리팩토링을 거쳐 새로 기능을 구축하기로 함

시세 차트 표기 시, 일일 시세 계산 방법

문제

상품 상세 페이지시세 차트를 표기 시, 하루 동안의 여러 체결 거래가 있음에도 단일가로 표기를 하고 있어서, 우리 서비스 에서도 표기법을 정해야 했음

해결방안

하루동안의 평균 가격을 일일 시세로 표기하기로 함.