Skip to content

softeerbootcamp4th/Team1-Strawberry-BE

Repository files navigation

🍓 Team1-Strawberry-BE

김민준 김민규

violet-mj min9805

🌐 배포 URL

Service URL

✨ 기능 소개

기능 및 시연 영상

1. 랜딩 페이지

  • 신차에 대한 간략한 소개와 진행하는 이벤트의 설명을 확인할 수 있습니다.

2. 신차 소개 페이지

  • 신차에 대한 상세한 설명을 볼 수 있는 페이지입니다.

3. 선착순 퀴즈 이벤트 페이지

  • 선착순으로 퀴즈를 맞추는 이벤트를 진행하는 페이지입니다.
  • 소개 페이지와 진행 페이지로 나뉩니다.
  • 이벤트 진행 페이지에서 퀴즈를 진행한 후 바로 결과를 확인할 수 있습니다.
  • Redis 를 사용해 높은 성능으로 동시성 제어가 가능합니다.

4. 드로잉 이벤트 페이지

  • 신차의 주요 특징을 드로잉 게임을 통해 고객에게 알릴 수 있는 페이지입니다.
  • 소개 페이지, 진행 페이지, 결과 페이지로 나뉩니다.
  • 소개 페이지에서 점수 랭킹과 자신의 점수를 확인할 수 있습니다.
  • 게임 진행 후 일정한 알고리즘에 따라 점수를 산출해냅니다.
  • 사용자는 게임 진행 후 결과를 확인하고 이를 링크 공유할 수 있습니다.

5. 기대평 페이지

  • 신차에 대한 기대평을 작성할 수 있는 페이지입니다.
  • 고객은 기대평을 작성하거나 타인의 댓글을 확인할 수 있습니다.

6. 어드민 페이지

  • 어드민은 전체 이벤트 참여자와 실제 차량 구매자(가상)을 관리할 수 있습니다.
  • 이벤트의 시작 종료 일자를 변경할 수 있습니다.
  • 상세 이벤트에서 내용을 변경할 수 있습니다.
  • 상세 이벤트의 당첨자 선정과 조회가 가능합니다.
  • 각 상세 이벤트의 참여자들을 조회할 수 있습니다.
  • 대시보드를 통해 각 이벤트 별 참여자와 실제 구매자(가상)의 비율을 확인할 수 있습니다.

🛠️ 개발환경

  • Java 17
  • Spring Boot 3.3.2
  • MySQL 8.0JPARedis
  • Github Actions , AWS CodeDeploy, AWS S3, AWS EC2
  • Swagger 3.0.0
  • Locust
  1. 퇴근 전 회고
  2. PR 시 코드 리뷰
  3. 칭찬 무조건 2가지 이상 ( 코드 외 가능)
  4. 아쉬운 점 무조건 2가지 이상 (코드 외 가능)
  5. 월요일마다 주간 리뷰
  6. 막히는 부분 있으면 페어프로그래밍 하기
  7. 이슈 (궁금한 점, 모르는 것 등등) 발생 시 위키 기록 후 정리 및 공유

🤝 협업 방식

1. 슬랙을 이용하여 협업

슬랙을 통해 프론트엔드와의 협업을 기록하고 빠르게 대응합니다.

image

git-flow 사용해 feature, fix 단위 작업과 release, hotfix 를 통한 배포를 진행합니다.

image

3. swagger를 이용하여 프론트 협업

Swagger 문서를 최대한 자세히 작성해 프론트엔드와의 협업을 용이하게 합니다. Swagger 에는 각 API 의 설명, 요청 및 모든 응답의 예시가 포함됩니다.

image image

4. 코드 리뷰

그라운드 룰에 따라 최대한 자세하고 사소한 코드리뷰를 진행하고자 노력했습니다.

image

📊 아키텍쳐

서비스 아키텍쳐

image

부하 테스트 아키텍처

image

CICD 아키텍처

image

⚙️ ERD 설계

image

📖 이슈 정리

Github Action, AWS S3, AWS CodeDeploy 를 활용한 CI/CD 환경 구축

DB 기반, Redis 기반 랭킹 시스템 성능 테스트 및 결론

Redis 기반 대기열 도입으로 트래픽 처리

이벤트 N명 추첨 방식

선착순 부하 시 동시성 문제 분석 및 결과

mysql, redis, batch 작업에 따른 성능 차이를 비교

스레드 풀 개수에 따른 동시 처리 능력 분석