Dayner 프로젝트

개요Part 1 에서는 쿠폰 발급 로직을 전략 패턴을 통해 분리하고 서비스 레이어를 명확히 나누어 유지보수성과 확장성을 향상시킨 내용을 다루었다.  이번 포스팅에서는 쿠폰 발급의 빈도(IssuanceFrequency)와 제한 조건을 전략 패턴을 이용해 보다 유연하고 효율적으로 관리하는 방법을 소개하려고한다. 쿠폰 시스템의 특성을 자세히 생각해본다면 "얼마나, 누구한테, 언제, 쿠폰을 발급할 것인가?" 이다.따라서 발급 빈도와 제한 조건을 명확히 정의해야지, 이벤트 쿠폰이나 회원가입 축하 쿠폰 등 다양한 조건과 상황에 유연하게 대응이 가능해진다.   예를 들어, 최근 클라이언트가 요청한 특정 기간에만 발급되는 신규 가입 이벤트 쿠폰의 경우를 살펴보자.클라이언트 요청은 특정 기간(예: 3월 23일~3월 31..
개요사실 블로깅할 소재가 쌓여있다.. 인턴하면서 국제화 리팩터링 한 건도 그렇고 알림/메일링 서버도,,,  사업보안인증을 위해서 메인서버 취약점을 고쳤던 소재도 남아있는데,, 클라이언트께서 신학기 맞이 이벤트를 준비하시면서 첫회원가입시에 발급하는 쿠폰 옵션 변경 요청이 들어왔는데 나름 유연하게 리팩터링 해놨던 터라 무려 10분도 안되어서 대응을 완료했기 때문에 겸사겸사 작성을 해본다.  실제 운영을 하면서 개발자로서 가장 고민되는 부분은, 클라이언트의 갑작스러운 요청사항에 얼마나 빠르고 효율적으로 대응할 수 있는가이다. 최근 클라이언트로부터 '신학기 맞이 이벤트'를 위한 쿠폰 옵션 변경 요청을 받았다. 다행히도 이전에 쿠폰 발급 전략을 기간별, 이벤트별, 회원별로 유연하게 관리할 수 있도록 설계해둔 덕분..
개요 Dayner에서는 기프트카드와 쿠폰, 앞으로 추가될 포장 주문과 관련된 결제 데이터를 관리하기 위해 구매 이력 관리 방식을 철저히 설계하고 있다. 이러한 설계는 기능적으로는 사용자의 데이터 보호와 개인정보보호법 내부의전자상거래 등에서의 소비자보호에 관한 법률 시행령 ( 약칭: 전자상거래법 시행령 )에 부합하도록 설계를 진행하였다. 비기능적으로는 결제 내역의 보관과 관리 방식은 '원장 테이블'의 개념을 적용하여 데이터의 무결성과 신뢰성을 확보해보고자 하였는데 국가법령정보센터 | 연계정보전자상거래 등에서의 소비자보호에 관한 법률 시행령 [시행 2024. 3. 22.] [대통령령 제34097호, 2024. 1. 2., 일부개정]www.law.go.kr  이번 포스팅에서는 기능적 요구와 원장/거래 데이터를..
목차 개요이전 포스팅에서도 볼수 있다 싶이  영업시간 디자인 변경에 대응한 리팩토링 일지 [1] (feat: 연결된 일정 구현하기)개요Dayner 에는 매달 정기 휴무일을 비롯한 연중 휴일, 급한 일정으로 인한 운영시간 변경등을 등록할수 있는 기능을 가지고 있다. 최초의 디자인인 경우에는 대부분 매주 월요일에 있는 정기nstgic3.tistory.com 디자인 변화에 따른 회의를 통한 여러 아이디어들의 비교와 선정을 하였는데 이번 포스팅에서는 이를 적용하고 나름 어떻게 효율적으로 코드를 작성했나(?) 를 중점적으로 포스팅 해보려합니다.또한 따로 개발 서버를 두고 있지 않고있기 때문에 api의 버전명시를 통해서 현재 운영 서버에 새로운 프레젠테이션 구조를 가진 api 를 같이 배포를 하고 이에 대한 캐시 ..
개요Dayner 에는 매달 정기 휴무일을 비롯한 연중 휴일, 급한 일정으로 인한 운영시간 변경등을 등록할수 있는 기능을 가지고 있다. 최초의 디자인인 경우에는 대부분 매주 월요일에 있는 정기 휴무만 표시를 하고 있었기에 영업시간변경/휴일 을 표시하는 type, date, description 이 존재하고 있었다. 이를 ~/yyyyMM 형식으로 표현된 엔드포인트를 이용해 api 요청을 하면 영업일정(id,type, date, description) 로 된 db에 between 첫일~ 말일 쿼리를 이용해 제공을 해주고 있었다.  문제는 디자인이 바뀌면서 프론트 단에서 우측 사진의 24~25일에 그려져있는 연속된 일정의 컴포넌트를 만들기 위해 프론트에서 과도한 자원 사용이 이루어지는 것 같다는 의견이 제시되면..
개요 및 프로젝트 특징(조건)작년 이맘때에 샀던 도메인의 만료로 인해 갱신도 했으니 가운영 반년, 실제 운영 1년이 넘어가는 시점이다.    약 22회의 기능 추가/수정 으로 인한 Deploy, 와 30번 이상의 hotfix, 그리고 두번의 대규모 리팩터링을 거친 나름 내가 진행해본 프로젝트 중에서 가장 공을 많이 들이고 여러 기술도 적용시켜보며 지속적으로 신경쓴 프로젝트라고 할수 있을것같다. 특징으로는 1. 최소 비용이 목표라 aws 의 프리티어 ec2를 사용중2. 특성상 카페 이용 시간대만 사용자가 몰리고, 트래픽이 증가되는 시간대가 정해져있다. 따라서 AutoScale 을 도입.3. 테스트 상으로 5명의 유저가 분당 150 내외의 GET 요청까지는 무리없이 커버한다. 스프링을 통해 서버를 구축해놓았..