Skip to content

yewon4540/performance-test-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

performance-test-lab

JMeter์™€ Locust๋ฅผ ์‚ฌ์šฉํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์‹ค์Šตํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตยทํ•ด์„ํ•˜๊ธฐ ์œ„ํ•œ ๋žฉ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

์ด ์ €์žฅ์†Œ๋Š” ๋‹จ์ˆœํžˆ ํˆด ์‹คํ–‰๋ฒ•์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์•„๋ž˜ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • ์–ด๋–ค ์‚ฌ์šฉ์ž ํ๋ฆ„์„ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๊ฐ€?
  • ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ์ฆ๊ฐ€์‹œ์ผฐ๋Š”๊ฐ€?
  • ์–ด๋–ค ์ง€ํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณ‘๋ชฉ์„ ํ•ด์„ํ–ˆ๋Š”๊ฐ€?
  • JMeter์™€ Locust๋Š” ๊ฐ๊ฐ ์–ด๋–ค ์žฅ๋‹จ์ ์ด ์žˆ์—ˆ๋Š”๊ฐ€?

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ˆ˜๊ฐ•์‹ ์ฒญ ์˜ˆ์ œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Œ€์ƒ์œผ๋กœ ๋กœ๊ทธ์ธ ํ›„ ๊ฐ•์˜ ๋ชฉ๋ก๊ณผ ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ํ๋ฆ„์„ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธํ•˜๋Š” ์‹ค์Šต ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‘ ๊ฐ€์ง€ ๊ตฌํ˜„์ฒด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.


2. ํ…Œ์ŠคํŠธ ๋ชฉ์ 

์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋กœ๊ทธ์ธ ๊ธฐ๋ฐ˜ ์›น ์„œ๋น„์Šค์˜ ๋Œ€ํ‘œ ์‚ฌ์šฉ์ž ํ๋ฆ„์„ ๋ถ€ํ•˜ ์ƒํ™ฉ์—์„œ ์žฌํ˜„
  2. ๋™์‹œ ์‚ฌ์šฉ์ž ์ฆ๊ฐ€์— ๋”ฐ๋ฅธ ์‘๋‹ต์‹œ๊ฐ„, ์ฒ˜๋ฆฌ๋Ÿ‰, ์˜ค๋ฅ˜์œจ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐ
  3. JMeter์™€ Locust์˜ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ตฌ์„ฑ ๋ฐฉ์‹ ๋ฐ ๊ฒฐ๊ณผ ์‚ฐ์ถœ ๋ฐฉ์‹ ๋น„๊ต
  4. ๋‹จ์ˆœ ์‹คํ–‰ ๊ฒฐ๊ณผ ๋‚˜์—ด์ด ์•„๋‹ˆ๋ผ โ€œ๋ฌด์—‡์„ ๊ฒ€์ฆํ–ˆ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด์„ํ–ˆ๋Š”์ง€โ€๋ฅผ ์„ค๋ช… ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์ •๋ฆฌ

3. ์‚ฌ์šฉ ๋„๊ตฌ

๊ตฌ๋ถ„ ๋„๊ตฌ ์šฉ๋„
๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ JMeter GUI ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ํ”Œ๋žœ ์ž‘์„ฑ, ๋‹จ๊ณ„์  ์‚ฌ์šฉ์ž ์ฆ๊ฐ€, ๋ฆฌํฌํŠธ ํ™•์ธ
๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ Locust Python ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ํ–‰๋™ ์ •์˜, ํ—ค๋“œ๋ฆฌ์Šค/์›น UI ์‹คํ–‰
๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Flask ๊ฒฝ๋Ÿ‰ ์˜ˆ์ œ ์•ฑ์œผ๋กœ ๋น ๋ฅธ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฒ€์ฆ
๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Spring Boot ๋‹ค๋ฅธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์—์„œ ๋™์ผ ํ๋ฆ„ ํ…Œ์ŠคํŠธ
๋ฐ์ดํ„ฐ CSV ํ…Œ์ŠคํŠธ ๊ณ„์ • ๋ฐ์ดํ„ฐ ๊ณต๊ธ‰
๊ฒฐ๊ณผ ํ›„์ฒ˜๋ฆฌ pandas, matplotlib, seaborn Locust CSV ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”

JMeter์—์„œ ์‚ฌ์šฉํ•œ ์ฃผ์š” ์š”์†Œ

  • CSV Data Set Config
  • HTTP Request Defaults
  • Stepping Thread Group ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋ฐ˜ ๋‹จ๊ณ„์  ์‚ฌ์šฉ์ž ์ฆ๊ฐ€
  • Weighted Switch Controller ๊ธฐ๋ฐ˜ ์‹œ๋‚˜๋ฆฌ์˜ค ์ œ์–ด

Locust์—์„œ ์‚ฌ์šฉํ•œ ์ฃผ์š” ์š”์†Œ

  • HttpUser
  • on_start() ๊ธฐ๋ฐ˜ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ
  • @task ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ํ–‰๋™ ๊ฐ€์ค‘์น˜ ์„ค์ •
  • ํ—ค๋“œ๋ฆฌ์Šค ์‹คํ–‰ ๋ฐ CSV ๊ฒฐ๊ณผ ์ €์žฅ

4. ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค

ํ˜„์žฌ ์ €์žฅ์†Œ์˜ ํ•ต์‹ฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” โ€œ์ˆ˜๊ฐ•์‹ ์ฒญ ์„œ๋น„์Šค ํƒ์ƒ‰ ํ๋ฆ„โ€์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์—ฌ์ •

  1. ๋กœ๊ทธ์ธ ์š”์ฒญ
  2. ๊ฐ•์˜ ๋ชฉ๋ก ์กฐํšŒ
  3. ๊ฐ•์˜ ์ƒ์„ธ ํŽ˜์ด์ง€ ์กฐํšŒ
  4. ๋กœ๊ทธ์•„์›ƒ

์—”๋“œํฌ์ธํŠธ ๊ธฐ์ค€ ์‹œ๋‚˜๋ฆฌ์˜ค

๋‹จ๊ณ„ ๋ฉ”์„œ๋“œ ๊ฒฝ๋กœ ์„ค๋ช…
1 POST /login ์‚ฌ์šฉ์ž ์ธ์ฆ
2 GET /course ๊ฐ•์˜ ๋ชฉ๋ก ์กฐํšŒ
3 GET /course/1 ~ /course/4 ๊ฐ•์˜ ์ƒ์„ธ ํŽ˜์ด์ง€ ๋ฐ˜๋ณต ์กฐํšŒ
4 GET ๋˜๋Š” POST /logout ์„ธ์…˜ ์ข…๋ฃŒ

๋ถ€ํ•˜ ๋ชจ๋ธ

JMeter

  • CSV ํŒŒ์ผ๋กœ ์‚ฌ์šฉ์ž ๊ณ„์ • ๋กœ๋“œ
  • ๋‹จ๊ณ„์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ํ˜•ํƒœ์˜ ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน ์‚ฌ์šฉ
  • ์ตœ๋Œ€ 100๋ช… ์ˆ˜์ค€๊นŒ์ง€ ์ ์ง„ ์ฆ๊ฐ€ํ•˜๋„๋ก ์„ค์ •
  • ๋Œ€ํ‘œ ์›น ํ๋ฆ„์„ ์—ฐ์† ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ

Locust

  • ์‚ฌ์šฉ์ž ์‹œ์ž‘ ์‹œ ๋กœ๊ทธ์ธ ์ˆ˜ํ–‰
  • view_courses, view_course_details, logout ์ž‘์—…์„ ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ˜๋ณต
  • ํ—ค๋“œ๋ฆฌ์Šค ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” step-load ์˜ต์…˜์œผ๋กœ ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ ์ ์ง„ ์ฆ๊ฐ€

5. ์ธก์ • ์ง€ํ‘œ

์ด ์ €์žฅ์†Œ์—์„œ ํ•ต์‹ฌ์ ์œผ๋กœ ๋ด์•ผ ํ•˜๋Š” ์ง€ํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ง€ํ‘œ ์˜๋ฏธ ํ•ด์„ ํฌ์ธํŠธ
TPS / Throughput / Requests per second ์ดˆ๋‹น ์ฒ˜๋ฆฌ ์š”์ฒญ ์ˆ˜ ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•ด๋„ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ํ™•์ธ
Average Response Time ํ‰๊ท  ์‘๋‹ต์‹œ๊ฐ„ ์ „์ฒด์ ์ธ ์ฒด๊ฐ ์„ฑ๋Šฅ ์ˆ˜์ค€ ํŒŒ์•…
Median Response Time ์ค‘์•™๊ฐ’ ์‘๋‹ต์‹œ๊ฐ„ ์ผ๋ถ€ ์ด์ƒ์น˜๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํŒŒ์•…์— ์œ ๋ฆฌ
P90 / P95 / P99 ์ƒ์œ„ ๋ฐฑ๋ถ„์œ„ ์‘๋‹ต์‹œ๊ฐ„ ๋А๋ฆฐ ์š”์ฒญ์ด ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธ
Failure Rate / Error Count ์˜ค๋ฅ˜์œจ, ์‹คํŒจ ๊ฑด์ˆ˜ ์ž„๊ณ„ ๋ถ€ํ•˜ ๊ตฌ๊ฐ„ ํƒ์ง€
Concurrent Users ๋™์‹œ ์‚ฌ์šฉ์ž ์ˆ˜ ์–ด๋А ์ˆ˜์ค€๋ถ€ํ„ฐ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์‹œ์ž‘๋˜๋Š”์ง€ ํŒ๋‹จ

ํŠนํžˆ ์•„๋ž˜ ์„ธ ๊ฐ€์ง€ ์ง€ํ‘œ๋ฅผ ํ•จ๊ป˜ ๋ณด๋ฉด ํ•ด์„์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ˆ˜ ๋Œ€๋น„ TPS
  • ์‚ฌ์šฉ์ž ์ˆ˜ ๋Œ€๋น„ P95 ์‘๋‹ต์‹œ๊ฐ„
  • ์‚ฌ์šฉ์ž ์ˆ˜ ๋Œ€๋น„ ์˜ค๋ฅ˜์œจ

6. ์‹คํ–‰ ๋ฐฉ๋ฒ•

6-1. Flask ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

cd Course_registration_flask
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.py

๊ธฐ๋ณธ ํฌํŠธ๋Š” 5001์ž…๋‹ˆ๋‹ค.

6-2. Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

cd Course_registration_java
mvn spring-boot:run

๊ธฐ๋ณธ ํฌํŠธ๋Š” 8082์ž…๋‹ˆ๋‹ค.

6-3. JMeter ์‹คํ–‰

GUI ์‹คํ–‰

  1. JMeter ์„ค์น˜
  2. jmeter/scenario/overload.jmx ๋กœ๋“œ
  3. base_url, port, CSV ๊ฒฝ๋กœ ๋“ฑ ๋ณ€์ˆ˜ ๊ฐ’์„ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ˆ˜์ •
  4. ์‹คํ–‰ ํ›„ Summary Report ๋˜๋Š” ๊ฒฐ๊ณผ ๋ฆฌ์Šค๋„ˆ ํ™•์ธ

CLI ์‹คํ–‰ ์˜ˆ์‹œ

cd jmeter
jmeter -n -t scenario/overload.jmx -l result/result.jtl -e -o result/report

์ฐธ๊ณ : ํ˜„์žฌ JMeter ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์˜์กด ์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ Custom Thread Groups, bzm - Weighted Switch Controller ๊ณ„์—ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6-4. Locust ์‹คํ–‰

cd locust
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

ํ—ค๋“œ๋ฆฌ์Šค ์‹คํ–‰

cd locust
locust -f scenario/locustfile.py \
  --headless \
  --host=http://localhost:5001 \
  -u 20 -r 5 -t 1m \
  --csv=result/test

์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

cd locust
bash locust.sh

UI ๋ชจ๋“œ ์‹คํ–‰

cd locust
bash UI_mode_locust.sh

์‹คํ–‰ ํ›„ ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8089๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


7. ๊ฒฐ๊ณผ ํ•ด์„ ๋ฐฉ๋ฒ•

๊ฒฐ๊ณผ๋Š” โ€œ์ˆ˜์น˜๊ฐ€ ๋‚ฎ๋‹ค/๋†’๋‹คโ€๋ณด๋‹ค โ€œ๋ถ€ํ•˜ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์–ด๋–ค ํŒจํ„ด์ด ๋‚˜ํƒ€๋‚˜๋Š”๊ฐ€โ€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•ด์„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ํ•ด์„ ๊ธฐ์ค€

1) TPS๋Š” ์ฆ๊ฐ€ํ•˜์ง€๋งŒ P95 ์‘๋‹ต์‹œ๊ฐ„๋„ ํ•จ๊ป˜ ๊ธ‰์ฆํ•˜๋Š” ๊ฒฝ์šฐ

  • ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ ๋Š” ์žˆ์ง€๋งŒ ์ฒ˜๋ฆฌ ์ง€์—ฐ์ด ๋ˆ„์ ๋˜๋Š” ์ƒํƒœ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง, ์„ธ์…˜ ์ฒ˜๋ฆฌ, ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง, DB I/O ๋ณ‘๋ชฉ์„ ์˜์‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2) ์‚ฌ์šฉ์ž ์ˆ˜ ์ฆ๊ฐ€ ๊ตฌ๊ฐ„์—์„œ ์˜ค๋ฅ˜์œจ์ด ๊ธ‰๊ฒฉํžˆ ์ƒ์Šนํ•˜๋Š” ๊ฒฝ์šฐ

  • ์„œ๋ฒ„ ์ž์› ํ•œ๊ณ„, ์„ธ์…˜ ์ฒ˜๋ฆฌ ๋ฌธ์ œ, ํƒ€์ž„์•„์›ƒ ์„ค์ • ๋ถ€์กฑ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœ ํ‰๊ท  ์‘๋‹ต์‹œ๊ฐ„๋ณด๋‹ค ๋จผ์ € ์˜ค๋ฅ˜์œจ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3) ํ‰๊ท  ์‘๋‹ต์‹œ๊ฐ„์€ ์•ˆ์ •์ ์ด์ง€๋งŒ P95/P99๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ

  • ์ผ๋ถ€ ์š”์ฒญ๋งŒ ๋น„์ •์ƒ์ ์œผ๋กœ ๋А๋ฆฐ tail latency ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ‰๊ท ๊ฐ’๋ณด๋‹ค ๋ฐฑ๋ถ„์œ„ ์ง€ํ‘œ๋ฅผ ํ•จ๊ป˜ ๋ณด๋Š” ํŽธ์ด ์‹ค์ œ ์ง€์—ฐ ๊ตฌ๊ฐ„์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

4) ์—”๋“œํฌ์ธํŠธ๋ณ„ ํŽธ์ฐจ๊ฐ€ ํฐ ๊ฒฝ์šฐ

  • /course๋ณด๋‹ค /course/{id}๊ฐ€ ๋А๋ฆฌ๋‹ค๋ฉด ์ƒ์„ธ ์กฐํšŒ ๋กœ์ง ๋˜๋Š” ํ…œํ”Œ๋ฆฟ/๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋น„์šฉ์ด ๋” ํฌ๋‹ค๋Š” ์˜๋ฏธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • URL๋ณ„ ๋น„๊ตํ‘œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณ‘๋ชฉ ํ›„๋ณด๋ฅผ ์ œ์‹œํ•˜๋ฉด ๋ฌธ์„œ ์™„์„ฑ๋„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

8. ๊ฒฐ๊ณผ ์‚ฐ์ถœ๋ฌผ

ํ˜„์žฌ ์ €์žฅ์†Œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ ํŒŒ์ผ ์˜ˆ์‹œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉด ๋น„๊ต์™€ ํ•ด์„์ด ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

์กฐ๊ฑด ์ตœ๋Œ€ ๋™์‹œ ์‚ฌ์šฉ์ž TPS Avg ์‘๋‹ต์‹œ๊ฐ„ P95 ์˜ค๋ฅ˜์œจ ํ•ด์„
Baseline 10 - - - - ๊ธฐ์ค€ ์„ฑ๋Šฅ
Load 50 - - - - ์•ˆ์ • ๊ตฌ๊ฐ„ ์—ฌ๋ถ€ ํ™•์ธ
Stress 100 - - - - ํ•œ๊ณ„ ๊ตฌ๊ฐ„ ํƒ์ƒ‰

9. ํ•œ๊ณ„์  ๋ฐ ๊ฐœ์„  ๋ฐฉํ–ฅ

์ด ์ €์žฅ์†Œ๋Š” ํ•™์Šต ๋ฐ ๋น„๊ต ๋ชฉ์ ์˜ ๋žฉ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ, ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ ์„ฑ๋Šฅ ๊ฒ€์ฆ์œผ๋กœ ๋ฐ”๋กœ ์ผ๋ฐ˜ํ™”ํ•˜๊ธฐ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ•œ๊ณ„

  • ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹จ์ˆœ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง ์ค‘์‹ฌ์ด๋ผ ์‹ค์ œ ์„œ๋น„์Šค ๋ณ‘๋ชฉ์„ ์ถฉ๋ถ„ํžˆ ์žฌํ˜„ํ•˜์ง€ ๋ชปํ•จ
  • ๋ฐ์ดํ„ฐ์…‹์ด ์ž‘๊ณ  ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ์ œํ•œ์ ์ด์–ด์„œ ์บ์‹œ/์„ธ์…˜ ๊ฒฝํ•ฉ ์ƒํ™ฉ ์žฌํ˜„์ด ์•ฝํ•จ
  • ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค(CPU, ๋ฉ”๋ชจ๋ฆฌ, GC, DB ์—ฐ๊ฒฐ ์ˆ˜)์™€์˜ ์ƒ๊ด€๋ถ„์„์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Œ
  • ๊ฒฐ๊ณผ ์š”์•ฝ์ด ํˆด ๊ธฐ๋ณธ ์ถœ๋ ฅ ์ค‘์‹ฌ์ด๋ผ ์˜์‚ฌ๊ฒฐ์ •์šฉ ๋น„๊ต ์ž๋ฃŒ๋กœ๋Š” ๋ถ€์กฑํ•จ

๊ฐœ์„  ๋ฐฉํ–ฅ

  1. ์‹œ๋‚˜๋ฆฌ์˜ค ๊ณ ๋„ํ™”

    • ๋กœ๊ทธ์ธ ์„ฑ๊ณต/์‹คํŒจ ๋ถ„๋ฆฌ
    • ํŠน์ • ํŽ˜์ด์ง€ ์ง‘์ค‘ ์กฐํšŒ ์‹œ๋‚˜๋ฆฌ์˜ค
    • ์ฝ๊ธฐ/์“ฐ๊ธฐ ํ˜ผํ•ฉ ์‹œ๋‚˜๋ฆฌ์˜ค ์ถ”๊ฐ€
  2. ๊ด€์ธก์„ฑ ๊ฐ•ํ™”

    • ์„œ๋ฒ„ CPU, ๋ฉ”๋ชจ๋ฆฌ, GC, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ์™€ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ํ•จ๊ป˜ ์ˆ˜์ง‘
    • ์‘๋‹ต์‹œ๊ฐ„ ๊ธ‰์ฆ ์‹œ์ ๊ณผ ์ธํ”„๋ผ ์ง€ํ‘œ๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ถ„์„
  3. ๊ฒฐ๊ณผ ๋น„๊ต ์ฒด๊ณ„ํ™”

    • JMeter vs Locust ๋น„๊ตํ‘œ ์ž‘์„ฑ
    • Flask vs Spring Boot ๋น„๊ต ์‹คํ–‰
    • ๋ถ€ํ•˜ ๋‹จ๊ณ„๋ณ„ Baseline / Load / Stress ๊ฒฐ๊ณผ ํ‘œ์ค€ํ™”
  4. ์žฌํ˜„์„ฑ ๊ฐœ์„ 

    • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ธฐ๋ฐ˜ ์„ค์ • ํ†ต์ผ
    • ๊ฒฐ๊ณผ ํŒŒ์ผ ๋„ค์ด๋ฐ ๊ทœ์น™ ์ •๋ฆฌ
    • ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ „์ œ์กฐ๊ฑด๊ณผ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชฉ๋ก ๋ช…๋ฌธํ™”

10. ์ €์žฅ์†Œ ๊ตฌ์กฐ

.
โ”œโ”€โ”€ Course_registration_flask/   # Flask ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ์•ฑ
โ”œโ”€โ”€ Course_registration_java/    # Spring Boot ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ์•ฑ
โ”œโ”€โ”€ jmeter/                      # JMeter ์‹œ๋‚˜๋ฆฌ์˜ค, ๋ฐ์ดํ„ฐ์…‹, ๊ฒฐ๊ณผ
โ”œโ”€โ”€ locust/                      # Locust ์‹œ๋‚˜๋ฆฌ์˜ค, ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ, ๊ฒฐ๊ณผ
โ”œโ”€โ”€ git_upload/                  # README ์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค
โ””โ”€โ”€ README.md

๊ตฌ์กฐ ํ•ด์„ค

  • Course_registration_flask/: ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ
  • Course_registration_java/: ๋‹ค๋ฅธ ๋Ÿฐํƒ€์ž„์—์„œ ๋™์ผ ํ๋ฆ„ ๊ฒ€์ฆ์šฉ ๋Œ€์ƒ
  • jmeter/: GUI ์ค‘์‹ฌ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ์ž์‚ฐ
  • locust/: ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ์ž์‚ฐ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors