ใ๊ฐ์ ๋ฉด์ ์ฌ๋ก๋ก ๋ฐฐ์ฐ๋ ๋๊ท๋ชจ ์์คํ
์ค๊ณ ๊ธฐ์ดใ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก
๋๊ท๋ชจ ํธ๋ํฝ๊ณผ ๋ถ์ฐ ์์คํ
์ ์ฃผ์ ์ค๊ณ ๋ฌธ์ ๋ฅผ ์ง์ ๊ตฌํํ๊ณ ,
๋ถํ ํ
์คํธ์ ๋ฉํธ๋ฆญ์ ํตํด ์ค๊ณ ์ ํ์ ๊ฒ์ฆํ๋ ํ๋ก์ ํธ ๋ชจ์์
๋๋ค.
๋จ์ํ ์ํคํ
์ฒ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฐ์ ๋๋ด์ง ์๊ณ , ์ด๊ธฐ ๊ตฌ์กฐ์ ๋ณ๋ชฉ์ ์ธก์ ํ ๋ค
์บ์, ๋ฉ์์ง ํ, ๋ฐ์ดํฐ ๋ถํ , ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฑ์ ์ค๊ณ๋ฅผ ์ ์ฉํด ์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํฉ๋๋ค.
- ์์คํ ์๊ตฌ์ฌํญ์ ํธ๋ํฝ๊ณผ ๋ฐ์ดํฐ ๊ท๋ชจ๋ก ๊ตฌ์ฒดํํฉ๋๋ค.
- ์ค๊ณ ์ ํ์ ๊ทผ๊ฑฐ์ ํธ๋ ์ด๋์คํ๋ฅผ ๋ฌธ์๋ก ๊ธฐ๋กํฉ๋๋ค.
- k6 ๋ถํ ํ ์คํธ๋ฅผ ํตํด ์ฑ๋ฅ ๋ณ๋ชฉ์ ์ฌํํฉ๋๋ค.
- Prometheus์ Grafana๋ฅผ ํ์ฉํด ์์คํ ์ํ๋ฅผ ๊ด์ฐฐํฉ๋๋ค.
- ๊ฐ์ ์ ํ์ RPS, p95, p99, ์ค๋ฅ์จ๊ณผ ์์ ์ฌ์ฉ๋์ ๋น๊ตํฉ๋๋ค.
- ๋ฉด์ ์์ ์ค๊ณ ๊ณผ์ ๊ณผ ์์น๋ฅผ ๊ทผ๊ฑฐ๋ก ์ค๋ช ํ ์ ์๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ญ๋๋ค.
| Project | ํต์ฌ ์ฃผ์ | ์ํ | Repository |
|---|---|---|---|
| System Design Template | ๊ณตํต ์คํยท๋ถํ ํ ์คํธยท๋ชจ๋ํฐ๋ง ํ๊ฒฝ | ์๋ฃ | Repository |
| URL Shortener | ID ์์ฑ, ์บ์, ์ฝ๊ธฐ ํ์ฅ, ๋ฐ์ดํฐ ๋ถํ | ์์ | - |
| Notification System | ๋ฉ์์ง ํ, ์ฌ์๋, ๋ฉฑ๋ฑ์ฑ, ์ฅ์ ๋ณต๊ตฌ | ์์ | - |
๋ชจ๋ ํ๋ก์ ํธ๋ ๊ฐ๋ฅํ ํ ๋์ผํ ๊ณผ์ ์ผ๋ก ์งํํฉ๋๋ค.
- ๋ฌธ์ ์ ์๊ตฌ์ฌํญ ์ ์
- ํธ๋ํฝ ๋ฐ ์ ์ฅ ์ฉ๋ ์ฐ์
- API์ ๋ฐ์ดํฐ ๋ชจ๋ธ ์ค๊ณ
- ์ด๊ธฐ ์ํคํ ์ฒ ์ค๊ณ
- Baseline ๊ตฌํ
- k6 ๋ถํ ํ ์คํธ
- Prometheus์ Grafana๋ฅผ ํตํ ๋ณ๋ชฉ ๋ถ์
- ๊ตฌ์กฐ ๊ฐ์
- ๋์ผํ ์กฐ๊ฑด์ผ๋ก ์ฌ์ธก์
- ๊ฒฐ๊ณผ์ ํธ๋ ์ด๋์คํ ์ ๋ฆฌ
| ๊ตฌ๋ถ | ๊ธฐ์ |
|---|---|
| Language | Java 25 |
| Framework | Spring Boot 4 |
| Build | Gradle |
| Container | Docker, Docker Compose |
| Load Test | k6 |
| Metrics | Spring Boot Actuator, Micrometer |
| Monitoring | Prometheus, Grafana |
| Automation | GitHub Actions |
ํ๋ก์ ํธ๋ณ๋ก ํ์ํ ๊ธฐ์ ์ ์ถ๊ฐํฉ๋๋ค.
MySQL
Redis
Kafka
RabbitMQ
Elasticsearch
Spring Batch
๊ฐ ํ๋ก์ ํธ์์๋ ๋ค์ ์งํ๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ์ ํจ๊ณผ๋ฅผ ๋น๊ตํฉ๋๋ค.
- Requests Per Second
- p95 ๋ฐ p99 ์๋ต ์๊ฐ
- HTTP ์ค๋ฅ์จ
- CPU ์ฌ์ฉ๋ฅ
- JVM Heap ์ฌ์ฉ๋
- ํ์ฑ ์ค๋ ๋ ์
- DB Connection Pool ๋๊ธฐ ์๊ฐ
- ์บ์ ์ ์ค๋ฅ
- ๋ฉ์์ง ์ฒ๋ฆฌ๋๊ณผ ์ง์ฐ ์๊ฐ
๊ฐ Repository์๋ ๋ค์ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
docs/
โโโ 01-requirements.md
โโโ 02-capacity-estimation.md
โโโ 03-architecture.md
โโโ 04-experiment.md
โโโ 05-retrospective.md
| ๋ฌธ์ | ๋ด์ฉ |
|---|---|
| Requirements | ๊ธฐ๋ฅยท๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ๊ณผ ํ๋ก์ ํธ ๋ฒ์ |
| Capacity Estimation | ํธ๋ํฝ, ์ ์ฅ๋, ๋คํธ์ํฌ ์ฌ์ฉ๋ ์ฐ์ |
| Architecture | ๊ตฌ์ฑ ์์, ๋ฐ์ดํฐ ํ๋ฆ, ์ค๊ณ ๊ฒฐ์ |
| Experiment | ๊ฐ์ค, ํ ์คํธ ์กฐ๊ฑด, ๊ฐ์ ์ ํ ๊ฒฐ๊ณผ |
| Retrospective | ํ๊ณ, ํธ๋ ์ด๋์คํ, ๋ฉด์ ์์ ์ง๋ฌธ |
- ๊ธฐ์ ์ ๋จผ์ ์ ํํ์ง ์๊ณ ์๊ตฌ์ฌํญ๊ณผ ๋ณ๋ชฉ์ ๊ธฐ์ค์ผ๋ก ์ ํํฉ๋๋ค.
- ๊ฐ์ ์ ํ์๋ ๋์ผํ ๋ถํ ํ ์คํธ ์กฐ๊ฑด์ ์ฌ์ฉํฉ๋๋ค.
- ํ๊ท ์๋ต ์๊ฐ๋ง์ด ์๋๋ผ p95์ p99๋ฅผ ํจ๊ป ํ์ธํฉ๋๋ค.
- ์ฑ๋ฅ ํฅ์๋ฟ ์๋๋ผ ์ ํฉ์ฑ, ์ฅ์ ๋ณต๊ตฌ, ์ด์ ๋ณต์ก๋๋ฅผ ํจ๊ป ๊ณ ๋ คํฉ๋๋ค.
- ๋ก์ปฌ ์คํ ๊ฒฐ๊ณผ์ ์ค์ ์ด์ ํ๊ฒฝ์ ์ฐจ์ด๋ฅผ ๋ช ํํ ๊ธฐ๋กํฉ๋๋ค.