Skip to content

Commit 2eebb1f

Browse files
committed
Update Technology Post "AWS EC2 기반 부하 테스트를 진행하며 시스템 아키텍처 및 성능 개선하기"
1 parent be30c98 commit 2eebb1f

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

_posts/2025-12-30-spring-boot-coupon-system-performance-improvement.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ AWS EC2 기반으로 구축하고 최소 사양부터 시작해서 부하 테스
4343

4444
## 소프트웨어 설계
4545

46-
대규모 트래픽을 처리하기에 앞서, 복잡한 비즈니스 로직을 명확히 정의하고 시스템의 확장성을 확보하기 위해 도메인 주도 설계와 멀티 모듈 아키텍처를 적용했습니다.
46+
대규모 트래픽을 처리하기에 앞서, 복잡한 비즈니스 로직을 명확히 정의하고 시스템의 확장성을 확보하기 위해 도메인 주도 설계와 멀티 모듈 구조를 적용했습니다.
4747

48-
### 전략적 설계를 통한 비즈니스 경계 설정
48+
### 전략적 설계
4949

5050
협업 시 용어의 혼선을 방지하고 비즈니스 로직의 응집도를 높이기 위해 전략적 설계를 진행했습니다.
5151
용어 사전을 통해 도메인 내 개념을 일관되게 정의하고, 시스템이 책임지는 논리적 경계인 바운디드 컨텍스트(Bounded Context)를 다음과 같이 정의했습니다.
@@ -61,7 +61,7 @@ AWS EC2 기반으로 구축하고 최소 사양부터 시작해서 부하 테스
6161

6262
![](/assets/img/technology/kudadak/kudadak-coupon-issue-system-ddd-strategy-design.png)
6363

64-
### 역할과 책임을 분리한 멀티 모듈 아키텍처
64+
### 멀티 모듈 구조
6565

6666
각 모듈의 역할과 책임을 명확히 분리하기 위해 멀티 모듈 구조를 도입했습니다.
6767
특히 애플리케이션의 핵심인 비즈니스 로직(Domain)이 기술적인 세부 구현에 오염되지 않도록 설계하는 데 집중했습니다.
@@ -88,6 +88,8 @@ AWS EC2 기반으로 구축하고 최소 사양부터 시작해서 부하 테스
8888

8989
## 쿠폰 발급 프로세스
9090

91+
이러한 소프트웨어 설계 원칙을 바탕으로, 실제 시스템이 단일 서버 환경에서 어떻게 비동기 분산 아키텍처로 진화하며 선착순 이벤트를 위한 쿠폰 발급 로직을 처리했는지 살펴보겠습니다.
92+
9193
초기 프로젝트는 아래 사진과 같이 단일 서버 내의 API 서버와 MySQL 연동만 하는 상황이었습니다.
9294

9395
![](/assets/img/technology/kudadak/kudadak-process-workflow-0.png)
@@ -143,7 +145,8 @@ AWS EC2의 여러 서버 사양을 확인했을 때 t2 기반으로 사용하기
143145
성능 테스트의 목표는 만 명 정도의 사용자가 쿠폰 발급을 동시에 요청할 때 최대 3초 안에 발급할 수 있도록 서비스를 안정적으로 운영하는 것으로 잡았습니다.
144146
또한, 실시간 처리는 해야하는 상황이고 선착순 이내로 들어오면 순서는 보장하지 않아도 됩니다.
145147

146-
만 명의 사용자가 요청할 때 3초 안에 발급하기 위해서는 적어도 1초당 3.3천명의 사용자에게 응답을 내려줘야 합니다. 즉, 3,300 TPS 가 되어야 합니다.
148+
만 명의 사용자가 요청할 때 3초 안에 모두 응답하기 위해서는 초당 약 3,333건의 요청을 처리할 수 있어야 합니다.
149+
즉, 최소 3,300 TPS 이상의 성능 확보를 목표로 설정했습니다.
147150

148151
이러한 성능을 측정하기 위해서는 부하를 점진적으로 증가시키면서 병목 지점을 파악하고 이를 개선해야 합니다.
149152

306 KB
Loading
1.71 KB
Loading

0 commit comments

Comments
 (0)