Skip to content

Commit

Permalink
Release v1.2.3-release1
Browse files Browse the repository at this point in the history
commit c2d2e95
Author: min9805 <[email protected]>
Date:   Mon Aug 26 10:30:27 2024 +0900

    feat: Update README.md (#221)

commit bf5ce92
Author: min9805 <[email protected]>
Date:   Mon Aug 26 10:22:07 2024 +0900

    feat: Update README.md (#221)

commit 58b606b
Author: min9805 <[email protected]>
Date:   Mon Aug 26 10:11:47 2024 +0900

    feat: Update README.md (#221)

commit fba2fce
Author: min9805 <[email protected]>
Date:   Mon Aug 26 10:11:14 2024 +0900

    feat: Update README.md (#221)

commit 38b57c7
Author: min9805 <[email protected]>
Date:   Mon Aug 26 06:00:38 2024 +0900

    feat: Update README.md (#221)

commit 5f4b9f2
Author: min9805 <[email protected]>
Date:   Mon Aug 26 05:41:37 2024 +0900

    feat: Update README.md

commit 61ab5c1
Author: min9805 <[email protected]>
Date:   Mon Aug 26 05:36:28 2024 +0900

    feat: Update README.md (#221)

commit 325a96e
Author: mjmj <[email protected]>
Date:   Mon Aug 26 03:30:52 2024 +0900

    fix: 미리보기 api 화이트리스트 추가
  • Loading branch information
min9805 committed Aug 26, 2024
1 parent e087cac commit d8f0318
Show file tree
Hide file tree
Showing 2 changed files with 149 additions and 6 deletions.
154 changes: 148 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,151 @@
### ERD 설계
[ERD 설계](https://www.erdcloud.com/d/6oFrcFZcDJg3ohgD2)
# :strawberry: Team1-Strawberry-BE

<div align="center">

### 딸기 탕후루 백엔드 팀원
| 김민준 | 김민규 |
|------------------------------------------------------------------------------------------------------------------------|---|
| [<img src="https://avatars.githubusercontent.com/u/108040422?v=4" height=150 width=150>](https://github.com/violet-mj) | [<img src="https://avatars.githubusercontent.com/u/56664567?v=4" height=150 width=150>](https://github.com/min9805) <br />
| [violet-mj](https://github.com/violet-mj) | [min9805](https://github.com/min9805)

| 김민준 | 김민규 |
|---|---|
| [<img src="https://avatars.githubusercontent.com/u/108040422?v=4" height=150 width=150>](https://github.com/violet-mj) <br /> @violet-mj | [<img src="https://avatars.githubusercontent.com/u/56664567?v=4" height=150 width=150>](https://github.com/min9805) <br /> @min9805
</div>

# 🌐 배포 URL
[Service URL](https://front.softeer1.site/)

# ✨ 기능 소개
[기능 및 시연 영상](https://www.youtube.com/watch?v=TuaAZ3bZ9uA)

## 1. 랜딩 페이지

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

## 2. 신차 소개 페이지

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

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

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

## 4. 드로잉 이벤트 페이지

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

## 5. 기대평 페이지

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

## 6. 어드민 페이지

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

# 🛠️ 개발환경

- `Java 17`
- `Spring Boot 3.3.2`
- `MySQL 8.0``JPA``Redis`
- `Github Actions` , `AWS CodeDeploy`, `AWS S3`, `AWS EC2`
- `Swagger 3.0.0`
- `Locust`

# 📄 [그라운드 룰](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%5B%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C-%EB%A3%B0%5D)

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

# 🤝 협업 방식

## 1. 슬랙을 이용하여 협업

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

<img width="912" alt="image" src="https://github.com/user-attachments/assets/dd2d5808-21bb-42a6-9abf-c5efddd9e353">


## 2. [git flow를 이용하여 협업](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%5B%EC%BB%A8%EB%B2%A4%EC%85%98%5D)

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

<img width="1128" alt="image" src="https://github.com/user-attachments/assets/03963aec-8a2f-4b3a-b4a0-21930e964073">

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

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

<img width="1431" alt="image" src="https://github.com/user-attachments/assets/77dc734b-3eb4-413f-ae75-1a465fde1390">
<img width="1427" alt="image" src="https://github.com/user-attachments/assets/1bf04d00-0d8a-4019-8e6f-62bea1754b4d">

## 4. 코드 리뷰

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

<img width="868" alt="image" src="https://github.com/user-attachments/assets/76c84c34-f86a-45d4-92fc-32f85d74bee2">


# 📊 아키텍쳐

## 서비스 아키텍쳐

<img width="860" alt="image" src="https://github.com/user-attachments/assets/00f26f9e-18ed-4f47-973e-180ad27cb796">

## 부하 테스트 아키텍처

<img width="849" alt="image" src="https://github.com/user-attachments/assets/44f91095-a3e2-4008-a00f-0269e3ea54d3">

## CICD 아키텍처

![image](https://github.com/user-attachments/assets/98218bc1-c169-46ee-b655-9b046e70941a)

# ⚙️ ERD 설계
![image](https://github.com/user-attachments/assets/0a883cc1-9834-4390-85df-997a3f31ba12)

# 📖 이슈 정리

## [CI/CD 환경 구축 - by min9805](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/CI-CD-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95)

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

## [랭킹 시스템 정리 - by min9805](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8-%E2%80%90-%EB%9E%AD%ED%82%B9-JWT-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EC%A0%81%EC%9A%A9-(%EC%B5%9C%EC%A2%85))

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

## [대기열 도입 - by min9805](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%EB%8C%80%EA%B8%B0%EC%97%B4-%EB%8F%84%EC%9E%85)

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

## [N명 추첨 - by min9805](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/N%EB%AA%85-%EC%B6%94%EC%B2%A8)

이벤트 N명 추첨 방식

## [선착순 동시성 문제 - by violet-mj](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%EC%84%A0%EC%B0%A9%EC%88%9C-%E2%80%90-%EB%8F%99%EC%8B%9C%EC%84%B1-%EB%AC%B8%EC%A0%9C)

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

## [선착순 구현별 성능 차이 - by violet-mj](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%EC%84%A0%EC%B0%A9%EC%88%9C-%E2%80%90-%EA%B5%AC%ED%98%84%EC%97%90-%EB%94%B0%EB%A5%B8-%EC%84%B1%EB%8A%A5-%EB%B6%84%EC%84%9D)

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

## [스레드 풀 조정 - by violet-mj](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%EC%84%A0%EC%B0%A9%EC%88%9C-%E2%80%90-%EC%8A%A4%EB%A0%88%EB%93%9C-%ED%92%80-%EB%B3%80%EA%B2%BD%EC%97%90-%EB%94%B0%EB%A5%B8-%EC%84%B1%EB%8A%A5-%EC%B0%A8%EC%9D%B4)

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

# 📝 [[회고]](https://github.com/softeerbootcamp4th/Team1-Strawberry-BE/wiki/%5B%ED%9A%8C%EA%B3%A0%5D)
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class JwtAuthorizationFilter implements Filter {
"/api/v1/firstcome/quiz/land",
"/api/v1/lottery/drawing/land",
"/api/v1/lottery/drawing/rank",
"/api/v1/lottery/drawing/preview",
"/api/v1/land"
};

Expand Down

0 comments on commit d8f0318

Please sign in to comment.