티스토리 뷰

728x90
반응형

팀원들이랑 같이 기업과제를 풀고있는데...

생각이 많이 필요한 문제라고 생각했고, 오늘 세션에서 멘토님도 난이도가 높은 문제라고 하셨다.

그 난이도 높은문제를 3일이란 기간을 주고, 단기간에 해결을 요구하시니....

이게 실제 기업문제이고 3일이라는 기간을 준다면, 미완성을 할거같다. (이틀밤 꼬박세우면 되려나..?)

아무튼 저번주와 다르게 이번주 기업과제에서

설계가 까다롭다... 설계만 이틀정도 투자한거같다.

이 과제를 나혼자서 풀었다면 설계에서 숨이 막혔을거고,, 푼다하더라도 3일 이상의 시간이 걸릴거 같다.

 

나는 쿠폰을 담당하게됐고, erd다이어그램이랑 프로젝트에서 세팅시킨 엔티티정의와 비교하면서

궁금한점이 생겨서 팀원들에게 물어봤다. 다들 잠자는 늦은 시각에 질문했는데도 답변을 해줬다.

 

쿠폰 erd 다이어그램

 

고민인점은

"쿠폰(Coupon)"과 "사용자 보유 쿠폰(OwnedCoupon)"이 있는데

"쿠폰" 엔티티의 "만료일자" 와

"사용자 보유 쿠폰" 엔티티의 "쿠폰 유효날짜" 가 중복되는 거 같았다. 

 

그러면 이런 생각이 들었다.

쿠폰을 등록할 수 있는 주체는 '운영자' 이다.

 

[예시]

'운영자'가 '2022년 11월 2일'에 '일주일 기간'의 배송비 무료 쿠폰을 등록했다고 가정 하자.
등록한 쿠폰의 만료일자는 2022년 11월 9일 로 되어있을거다.

<쿠폰> 
쿠폰 아이디
(Number)
쿠폰명
(String)
쿠폰 타입
(배송비/할인/정액제 중 택 1)
유효 기간(일)
(Number)
쿠폰 발급 날짜 만료 일자
1 배송비 무료쿠폰 배송비 7 2022-11-02 2022-11-09



다음날 '2022년 11월 3일'에 '유저1'이 운영자가 등록한 쿠폰을 알게되어, 쿠폰을 사용하기위해, 쿠폰을 추가했다.

<사용자 보유쿠폰>
보유 쿠폰 아이디(Number) 쿠폰 아이디 주문 아이디 배송비용 아이디 쿠폰발급 날짜 쿠푠유효 날짜
1 1 1 1 2022-11-03 2022-11-10

그러면 쿠폰을 사용할 수 있는 날짜가 몇일인지...?
만료일자인 2022-11-09 일까? 아니면 쿠폰유효날짜인 2022-11-10 인가?

 

 

 

다들 늦은 새벽에도 기업과제를 해결하기 위해 고민하고 있고 움직이고 있다. 

늦은 새벽에도 열심히 고민하고, 토크했다 ㅎㅎㅎ

뭔가 같이 문제를 풀다보니 든든했다. 그리고 바로바로 답변해주는 용범님과 성태님이 고마웠다!

(같은 팀원인 진희님, 영남님도 낮에 같이 활동할때 적극적으로 의견을 내주고 잘 이끌어줘서 당연히 고맙다!)

 

 

이렇게 뒤늦은 시각에 티키타카하면서 얘기를 나눈결과

위의 문제에 대한 해결방안은 다음과 같다.

 

[성태님의 해결방안]
+ 용범님도 동의한 내용

문화상품권처럼 사용자가 쿠폰을 등록한 시점으로부터 발급날짜가 결정되는거고
쿠폰 만료일자는 쿠폰발급날짜 + 유효기간 의 값으로 결정되는 프로세스가 아닌
사용자는 운영자가 등록한 쿠폰을 사용하는 걸 의미한다.

예를 들어, 운영자가 2022-11-02에  유효기간이 7일인 쿠폰을 발행했다면
쿠폰 만료기간은 2022-11-09 이다.

즉, 사용자는 운영자가 등록한 쿠폰을 그대로 사용하는 것 이다.
사용자는 2022-11-02 ~ 2022-11-09 기간동안만 쿠폰을 사용할 수 있는 거다.
사용가능한 기간 내에 쿠폰을 사용했다면, "사용일자"에 사용한 날짜가 기재가 되는거다.

<사용자 보유쿠폰>
-"쿠폰 발급날짜", "쿠폰 유효날짜" 를 제거
- "사용일자" (usedDate) 필드 추가

<쿠폰>
- "쿠폰 발급날짜", "쿠폰 만료날짜" 

 

 

처음에는 이해가 안되서 성태님의 방안을 채택했다가

지금 블로그로 다시 정리를 해보니

용범님이 <사용자 보유쿠폰>에 '쿠폰발급날짜', '쿠폰유효날짜' 를 넣었고

<쿠폰>에도 '쿠폰 발급날짜', '유효기간', '만료일자' 를 넣었는지 이해했다.

헷갈렸던게 해결되기도 했다.

 

[나의 두번째 생각...] 

카카오톡 기프티콘을 생각하면 된다.
위의 [예시] 로 다시 돌아가면

사용자는 2022-11-03 ~ 2022-11-10 까지 쿠폰을 사용할 수 있다.
"쿠폰유효날짜"는 "사용자가 쿠폰을 발급한 시점" + "쿠폰 유효기간" 값이다.

그런데 유저1이 발급한 쿠폰의 "쿠폰 유효날짜은" 2022-11-10 이다.
운영자가 등록한 쿠폰의 "만료일자"은 2022-11-09 이다.


여기서 해결방안은 2가지가 있다.

# 첫번째는 - "쿠폰 유효기간"은 "만료일자"를 넘지 않는다.
쿠폰 무료증정 이벤트를 생각해보자.
쿠폰이 유효한 기간은 이벤트가 진행되는 기간동안일거다.
우리는 그 기간내에 쿠폰을 등록 해서 사용할 수 있다.

이와 마찬가지로
유저는 쿠폰의 "만료일자" 이내에 쿠폰을 발급/사용 할 수 있다.

<사용자 보유쿠폰> 의 "쿠폰 유효날짜"가 <쿠폰>의 "쿠폰만료일자"를 넘지않도록 설정해야한다.

그러면 어떻게 해야할까?

(1) "쿠폰 발급날짜" + "유효기간" 이  "만료날짜" 를 넘지 않거나 같은경우
"쿠폰 유효날짜" = "쿠폰 발급날짜" + "유효기간"

(2) "쿠폰 발급날짜" + "유효기간" 이 "만료날짜" 를 넘는 경우
"쿠폰 유효날짜" = "만료날짜"


# 두번째는 - <쿠폰> 테이블의 "발급날짜"와 "만료일자"를 없애자
운영자가 쿠폰을 생성한 시점의 "발급날짜", "만료일자" 가 필요없다. "유효기간"만 필요하다!
유저는 쿠폰을 등록하면,  쿠폰만료날짜는 자연스럽게 "등록한 시점 + 기간" 으로 설정할 수 있다.

 

다들 꿈나라에 계시기에... 미리 메모장을 붙이긴했다... 일단 내가 생각한 결론은 이렇다..ㅎ

두분의 의견은 어떤지, 또 다른분들의 의견을 어떤지 몇시간뒤에 결정해봐야겠지만 ^_^;

 

 

고도화가 필요한 사항

api 문서에는 기재되지 않았지만

'쿠폰 만료기간'이 지나면 사용할 수 없지만

 

아직 만료기간이 아닌, 사용할 수 있는 쿠폰이라면

딱 한번 쿠폰의 유효기간을 2주 로 늘리기로 했다.

 

이 api가 성공적으로 실행된다면

<사용자 보유쿠폰>의 '쿠폰 유효날짜' 값은

쿠폰 유효기간 연장 요청 시점 + 2주(14일) 으로 변경된다.


우리의 조용하면서 카리스마있는 팀장 진희님이  의견모아서 팀노션에 꼼꼼히 정리해놓은 요구사항 분석이다.

(진희님 너무 고생많으셨어요!!! 😻)

+ 이미지를 크게 하고 싶은데, 블로그에서는 폭을 늘릴 수가 없어서, 아래 사진사이즈가 최대입니다.


쿠폰 API 문서

기획 문서 같죠...? 아뇨 API 문서인데요...

머리 나쁜 제가 이해하기 위해서 디테일하게 적으려고

상세설명을 기획문서처럼 썼네요...ㅎㅎ;  (상세설명 에 영혼을 갈았다 🤣)

 

 

728x90
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함