📌 포인트 마일리지 전환
📌 쿠폰 상품 구매 API
📌 쿠폰 상품 조회 API
팀원과의 회의 이후, 추가 기능중 수익성 측면을 고려하여 포인트 마일리지 제도를 도입하기로 결정하였다.
우리 서비스에서 마일리지 제도란 거래 이후 벌어들인 수입의 5%를 마일리지로 적립시켜주는 대신 5%를 서비스에서 자체적으로 가져가는 제도이다.
소비자 입장에서는 손해보는 것이라 생각할 수도 있겠지만 마일리지를 활용하여 본인의 상품을 상품 조회시 최상단으로 올려 보여주는 상단노출권으로 사용할 수 있기 때문에 소비자 입장에서도 매우 유용한 서비스라 판단하였다.
우선 제일 먼저 해야하는 작업은 기존에 거래가 완료된 이후 포인트로 금액이 들어오던 구조에서 5%를 차감하고 마일리지로 전환하는 작이 필요하여 진행하게 되었다.
아래의 코드를 살펴보면 벌어들인 의뢰비용의 5%를 구한 후, 차감된 금액은 포인트로 업데이트하고 5%금액은 마일리지 칼럼을 사용자 테이블에 추가하여 추가적으로 저장되게 코드를 구성하여 기능을 완성했다.
이제 다음으로 오늘 작업한 내용으로는 사용자가 가지고 있는 마일리지로 구매할 수 있는 최상단노출권을 구매하는 API를 만들었다.
기획상으로는 1일권, 3일권, 7일권 총 3가지 종류의 마일리지 상품을 소비자에서 제공할 것이기 때문에 각각의 상품에 맞춰 코드를 구성하였다.
아래 코드를 살펴보면 프론트에서 API를 요청할 때, 어떤 상품인지 문자열 형태 입력을 받아 해당 문자열에 일치하는 상품을 찾고 로그인한 유저가 해당 상품 가격만큼 마일리지를 보유하고 있는지 확인 한 후, 마일리지가 차감되고 쿠폰 테이블에 해당 유저가 구입한 쿠폰에 대한 정보가 저장되도록 코드를 작성하였다.
이제 생각을 해보면 소비자가 쿠폰을 사용할 때 본인이 보유한 쿠폰에 대해 선택할 수 있도록 해야하기 때문에 본인이 보유한 쿠폰에 대한 정보를 조회해오는 API를 만들었다.
우선, 쿠폰마다 사용했는지 안했는지에 대한 유무를 기록하기 위해 Boolean 값을 활용하여 쿠폰을 사용하지 않으면 false, 사용했다면 true 값을 저장하여 쿠폰별로 사용유무를 확인할 수 있도록 하였으며 해당 정보를 바탕으로 for문을 사용하여 사용하지 않은 쿠폰만 조회하도록 코드를 작성하였다.
오늘은 오랜만에 API를 만들어보는 날이었다. 프로젝트를 진행하며 최근에는 유지보수에 대한 수정만 진행하여 API를 만드는 날이 없었는데 오늘 간만에 API를 생각하고 만드는 날이었다.
항상 API를 만들며 고민이 많은 것 같다. 내가 생각한 방식이 과연 서비스를 생각했을 때, 효율적인 것인가? 보안이 미흡하지는 않은가?와 같은 생각들이 매번 든다.
아직 부족한 것이 많아 완벽하다고는 할 수 없겠지만 그래도 이제는 내가 생각한 기능을 만들 때, 기능이 동작하는데까지 생각하는 것은 어렵지 않았다.
추가적으로 오늘 구현한 기능들의 경우, 사용자가 쿠폰을 적용할 때, 언제 어느 상황에서 적용할지 아직 팀원들과 결정을 하지 못해 내일 회의 때, 확실한 방향으로 결정하고 그에 맞춰 내일은 마일리지 서비스를 구체화할 계획이다.