2주간 만들었던 팀 프로젝트를 기반으로 한 프로젝트를 하자!
서비스의 고도화
이것이 현재 프로젝트를 기획하게된 계기입니다. 백둥이인 저는 저번 2주간의 팀프로젝트때 우아한 쿠폰들이라는 서비스(이하 우쿠)를 개발하였습니다. 우쿠를 간단하게 소개하면 배달의 민족의 쿠폰 서비스를 클론 코딩한 프로젝트입니다.
우쿠에는 고객에게 쿠폰을 발급해주는 기능이 있습니다. 해당 기능은 사용되는 시나리오에 따라서 천차만별의 성능을 요구할 수 있습니다. 하나의 예를 들어 보면, 선착순 500명 제한으로 쿠폰을 발급해야 한다면 쿠폰이 풀리는 순간 여러 요청을 한번해 처리해야합니다.
우쿠는 단순히 스프링 프레임워크 내에서 이를 처리하고 있습니다. 그래서 동시성 보장에 어느 정도 한계가 있다고 생각합니다. 그래서 저는 우쿠를 고도화 시키고 싶었습니다. 이번 기획은 우쿠의 도메인 모델을 거의 동일하게 따라갑니다. 그리고 선착순 발급 기능을 핵심으로 가지고 있습니다. 고도화를 어떻게 해야할지는 아직 잘 모르지만, 레디스나 메시지큐를 공부해서 적용해 보려고 합니다.
빠른 시작
유사 도메인(우쿠)를 경험했고 베이스 코드가 있기 때문에 초기 프로젝트 구성 비용을 절감할 수 있어서 빠르게 기능 구현에 집중할 수 있는 게 큰 장점이라고 생각했습니다. (프론트와의 병목 줄이기는 덤)
번외) 오래오래 써주길 바라는 마음
해당 서비스가 현재와 앞으로 있을 데브코스 2기에서도 사용될 수 있도록 하는 마음에 기획하게 되었습니다.
오늘도 열심히 코딩하는 백둥이들을 보며 슾OO는 백둥이들을 위한 깜짝 이벤트를 준비한다. 어떠한 이벤트를 열까 고민하다가 금 나와라 뚝딱(이하 금뚝)을 이용하기로 한다. 금뚝은 여느 쇼핑몰에서 쿠폰을 클릭해 쿠폰을 발급받는 것처럼 특정 홈페이지에서 선물을 클릭해 선물을 받는 서비스이다.
슾OO는 어떤 방식으로 백둥이들에게 선물을 줄지 고민한다. 금뚝에는 크게 두 가지 방식이 있는데, 하나는 한정된 수량의 선물을 선착순으로 가져가게 하는 것이고, 다른 하나는 랜덤하게 선물을 가져가도록 하는 것이다.
랜덤 방식을 선택한 슾OO는 우선 선물 바구니를 생성한다. 그리고 선물 바구니 안에 기프티콘, 격려의 메시지, 꽝 머슦이 이미지 등 백둥이들을 깜짝 놀래켜 줄 만한 선물을 잔뜩 집어넣는다. 선물 바구니를 가득 채운 슾OO는 선물 개봉 가능 시간을 설정하고 링크를 생성한다.
슬랙 공지사항에 한 링크가 올라온다. 슾OO는 백둥이들을 위해 깜짝 선물을 준비했다고 말하며 해당 링크를 타고 들어와서 간단하게 깃허브 계정으로 회원 가입을 하고 화면에 보이는 선물 상자를 클릭하라고 한다.
백둥이들은 슾OO의 말대로 링크를 타고 들어와 깃허브로 회원가입을 한다. 그러자 선물 상자와 타이머가 표시되는 홈페이지를 보게 된다. 이윽고 타이머가 0이 되고 선물 상자가 활성화된다. 백둥이들은 두근두근거리는 마음을 애써 죽이며 선물 상자를 열어보게 되는데..