Skip to content

hellokitty-coding-club/newsocks-goods-reservation-spring-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

글로벌 아이돌 뉴삭스의 신상 굿즈 예약 플랫폼

개요

image

최근 전세계의 유행을 휩쓸고 있는 아이돌그룹 뉴삭스에서는 빌보트 차트 top10 진입을 기념하여 신상 굿즈 “빌보드 10 삭스” 양말을 출시하려고 한다.

해당 스페셜 양말은 매우 까다로운 제조 공정을 거치기 때문에 대량 생산이 불가능하고, 한정 수량만을 발매하여 선착순 예약을 받기로 한다.

기획사의 상품개발팀에서는 이전 굿즈를 출시하는 과정에서 트래픽 폭증으로 인한 주문내역 중복 이슈를 겪은 적이 있기 때문에 정확히 판매수량만큼 예약이 가능한 예약 시스템을 요구했다.

기획사의 요구를 받은 백엔드 개발자가 되어 문제를 해결해보자

요구사항

  • 이전 굿즈 판매 시스템에서의 문제 발생 원인과, 개선 방향을 조사하여 보고서를 제출해 주세요.
    • 동시성 문제(공유자원, 임계영역)의 발생 원인과 해결방안
    • Redis를 이용한 분산 락 처리방법
  • Redis를 개발환경에 세팅하고, 프로젝트와 연동해 주세요.
  • Redis 분산 락 처리를 이용해 CouponDecreaseService.couponDecrease 를 수정해주세요.
    • 테스트코드와 그외 클래스,패키지는 자유롭게 추가/수정해도 좋습니다.
    • 하지만, NewsocksApplicationTests 내의 테스트코드는 수정하지 말아주세요

미션 상세설명

미션을 통해 이런 것을 배울 수 있어요

  • 대용량 트래픽 상황에서 빈번하게 발생하는 동시성 문제 에 대해 알아보고, 이를 해결하는 경험을 할 수 있어요.
  • 레디스의 분산 락을 활용하는 경험을 할 수 있어요.

이런 사람에게 추천해요

  • 분산 서버 시스템을 고려한 설계를 경험해보고 싶은 개발자
  • 레디스에 관심이 있어 제대로 활용해보고 싶은 개발자

선행되어야 할 지식

  • 해당 프로젝트는 JAVA 17 / Spring 3.0 버전으로 작성되어 있어요.
  • JAVA / Spring 프레임워크에 대한 기본적인 지식이 필요해요

기능명세서

테스트 출력 예시

미션 수행 전

예약 신청이 완료되었습니다 / 수령 코드 : fkqehctgqn  /  (잔여 수량 : 96개)
예약 신청이 완료되었습니다 / 수령 코드 : glqfztmaam  /  (잔여 수량 : 96개)
예약 신청이 완료되었습니다 / 수령 코드 : yrrzajwjdu  /  (잔여 수량 : 96개)
예약 신청이 완료되었습니다 / 수령 코드 : tltqeqpugq  /  (잔여 수량 : 93개)
예약 신청이 완료되었습니다 / 수령 코드 : rfwyhterwm  /  (잔여 수량 : 92개)
...
예약 신청이 완료되었습니다 / 수령 코드 : mcgfekcrmk  /  (잔여 수량 : 2개)
예약 신청이 완료되었습니다 / 수령 코드 : gyepxabett  /  (잔여 수량 : 1개)
예약 신청이 완료되었습니다 / 수령 코드 : ryqzpbqfub  /  (잔여 수량 : 0개)
굿즈 구매 예약이 모두 마감되었습니다.
굿즈 구매 예약이 모두 마감되었습니다.
굿즈 구매 예약이 모두 마감되었습니다.

미션 수행 후

예약 신청이 완료되었습니다 / 수령 코드 : httgwmccjh  /  (잔여 수량 : 99개)
예약 신청이 완료되었습니다 / 수령 코드 : keklnkxnik  /  (잔여 수량 : 98개)
예약 신청이 완료되었습니다 / 수령 코드 : wcvveepcev  /  (잔여 수량 : 97개)
예약 신청이 완료되었습니다 / 수령 코드 : leeeaaipok  /  (잔여 수량 : 96개)
...
예약 신청이 완료되었습니다 / 수령 코드 : mcgfekcrmk  /  (잔여 수량 : 2개)
예약 신청이 완료되었습니다 / 수령 코드 : gyepxabett  /  (잔여 수량 : 1개)
예약 신청이 완료되었습니다 / 수령 코드 : ryqzpbqfub  /  (잔여 수량 : 0개)
굿즈 구매 예약이 모두 마감되었습니다.
굿즈 구매 예약이 모두 마감되었습니다.
굿즈 구매 예약이 모두 마감되었습니다.

미션 제출 방법

About

LGTM 미션 : 글로벌 아이돌 뉴삭스의 신상 굿즈 예약 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages