Search
Duplicate

๋ถ€ํ•˜ํ…Œ์ŠคํŠธ(feat. Ngrinder)

์ž์—ฐ์Šค๋Ÿฝ๊ฒŒย ๊ณ ๊ฐ€์šฉ์„ฑ์˜ ์ •์˜๋Š”ย ๊ฑฐ์˜ ํ•ญ์ƒ ์„œ๋น„์Šค๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋œปํ•œ๋‹ค๊ณ  ๋ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”. ์„œ๋น„์Šค ์šด์˜์—์„œย ๊ณ ๊ฐ€์šฉ์„ฑ์˜ ์ค‘์š”์„ฑ์ด ๊ณ„์†ํ•ด์„œ ๊ฐ•์กฐ๋˜๋‹ค ๋ณด๋‹ˆ ๋†’์€ ๊ฐ€์šฉ์„ฑ์„ ๊ฐ€์ง„ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์ด ๋งŽ์€ ๊ธ€, ์˜์ƒ์—์„œ ์†Œ๊ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๋‘ ๊ฐ€์ง€ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฒฝํ—˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์ด์ œ ๋ง‰ ์ฒซ ๊ฑธ์Œ์„ ๋–ผ๋Š” ์„œ๋น„์Šค๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๊ทธ๋ฆฌ ๋งŽ์ง€ ์•Š์•„ ์‹œ์Šคํ…œ ํ™•์žฅ์„ ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ ์ž์ฒด๊ฐ€ ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ทธ๋Ÿฐ ์ƒํ™ฉ์ด ์˜ค์ง€ ์•Š์œผ๋‹ˆ ๋‚ด ์„œ๋ฒ„๊ฐ€ ์–ด๋Š ์‹œ์ ์— ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋Š ์ •๋„์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฒฌ๋””๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์–ด๋ ค์›€ ๋•Œ๋ฌธ์—ย ๊ณ ๊ฐ€์šฉ์„ฑย ์„œ๋น„์Šค ์šด์˜์„ ์œ„ํ•œ ๋Œ€๋น„๊ฐ€ ์ „ํ˜€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด์ฃ .
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ดย ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.ย ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋Š” ๊ฐ€์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ ๋†’์€ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ์ด์ฃ .
๋ถ€ํ•˜ํ…Œ์ŠคํŠธ์˜ ๋ชฉ์ ์€ ์‹œ์Šคํ…œ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ (์–ด๋Š ์ •๋„์˜ ๋ถ€ํ•˜๋ฅผ ๊ฒฌ๋””๋Š”์ง€)์„ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ€์šฉ์„ฑ์„ ๋†’์ด๊ณ , ์„œ๋น„์Šค์˜ ์žฅ์• ์ƒํ™ฉ์— ๋Œ€๋น„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด WS, WAS, DB ์‹œ์Šคํ…œ์˜ ์‘๋‹ต ์„ฑ๋Šฅ์„ ์˜ˆ์ธกํ•ด๋ณด๊ณ  ์›ํ•˜๋Š” ์„ฑ๋Šฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„๋ฅผ ํ™•์žฅํ•œ๋‹ค๊ฑฐ๋‚˜, ์–ธ์–ด ์ฐจ์›์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๊ณ . ํ˜น์€ ์žฅ์•  ์ƒํ™ฉ์— ๋น ๋ฅด๊ฒŒ ๋Œ€์ฒ˜ํ•˜๋Š” ์•ˆ์ •์ ์ธ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์–ด๋–ค ์ง€์ ์„ ๋” ๊ฐœ์„ ํ•ด์•ผํ•˜๋Š”์ง€ ๊ณ ๋ฏผํ•˜๊ณ  ์‹ค์ œ๋กœ ๊ฐœ์„ ํ•˜์—ฌ ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์šด์˜์„ ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ .
0. ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ์˜ ์ข…๋ฅ˜
1. ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ๋„๊ตฌ ์„ ์ •

2. ๋ฌด์—‡์„ ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ธ๊ฐ€?

๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ์— ์•ž์„œย ๋ฌด์—‡์„ ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ธ์ง€ย ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์„œ๋ฒ„์—์„œ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์ž˜ ์„œ๋น™ํ•ด์ฃผ๋Š”์ง€?
์™ธ๋ถ€์˜ ์˜ํ–ฅ ์ „ํ˜€ ์—†์ด ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ, ์„œ๋น„์Šค ํ™˜๊ฒฝ ์ž์ฒด์— ๋Œ€ํ•œ ๊ฒ€์ฆ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ๋กœ์ปฌํ˜ธ์ŠคํŠธ์—์„œ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์›ํ•˜๋Š” ๊ธฐ๋Œ€์น˜๋งŒํผ์˜ ์„ฑ๋Šฅ์œผ๋กœ ์ž˜ ๋ฐ˜ํ™˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜น์€ "Hello World" ์ •๋„๋ฅผ ์ฐ์–ด๋ณด๊ณ  ๊ฒ€์ฆ์„ ํ•ด๋ณผ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
โ€ข
DB ์—ฐ๊ฒฐ + ์กฐํšŒ์— ๋Œ€ํ•œ ๊ฒ€์ฆ (DB ์‚ฌ์šฉ, ๋„คํŠธ์›Œํฌ ์š”์ฒญ or ๋กœ์ปฌํ˜ธ์ŠคํŠธ)
DB์— ์—ฐ๊ฒฐํ•˜๊ณ  ์กฐํšŒ์— ๋Œ€ํ•œ ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ณ  ๊ฒ€์ฆ์„ ํ•˜๋ ค๋ฉด ์šด์˜ ํ™˜๊ฒฝ๋งŒํผ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„๋‘๊ณ  ๋ฐ˜๋ณต์ ์œผ๋กœ ์กฐํšŒ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ…Œ์ŠคํŠธ์ธ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋งŒ์„ ์‚ฌ์šฉํ•  ๋•Œ์™€๋Š” ์–ผ๋งˆ๋‚˜ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ง€, ๊ทธ ๊ฒฐ๊ณผ์˜ ์ฐจ์ด๊ฐ€ ์œ ์˜๋ฏธํ•˜๊ฒŒ ํฌ๋‹ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•ด๋ณด๊ฑฐ๋‚˜ DB ์ปค๋„ฅ์…˜ ํ’€์„ ์กฐ์ •ํ•ด ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜น์€ query๋ฅผ ์ˆ˜์ •ํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ๋ณด๋‹ค ์กฐํšŒ๊ฐ€ ํ›จ์”ฌ ๋งŽ์€ ์„œ๋น„์Šค๋ผ๋ฉด ์บ์‹œ ์ ์šฉ๊นŒ์ง€ ๊ณ ๋ คํ•˜์—ฌ ์กฐํšŒ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ๊ธฐ๋Œ€ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
DB ์—ฐ๊ฒฐ + CUD์— ๋Œ€ํ•œ ๊ฒ€์ฆ
์•ž์„  ํ…Œ์ŠคํŠธ์™€ ์œ ์‚ฌํ•˜๊ฒŒ DB์— ์—ฐ๊ฒฐํ•˜๊ณ  CUD ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ์ž‘์—…์ด ๊ฑฐ์˜ ์—†๋Š” ์„œ๋น„์Šค๋ณด๋‹ค, ์“ฐ๊ธฐ ์ž‘์—…์ด ๋งค์šฐ ๋งŽ๊ฑฐ๋‚˜ ์ข…์ข… ์“ฐ๊ธฐ์— ๋Œ€ํ•œ ๋ถ€ํ•˜๊ฐ€ ๋ชฐ๋ฆฌ๋Š” ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ํ…Œ์ŠคํŠธ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ํ–‰๋™์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋””์Šคํฌ I/O ๋ณ‘๋ชฉ์„ ์ž˜ ์‚ดํ”ผ๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๊ฐฑ์‹ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ์–ด๋Š์ •๋„ ์„ฑ๋Šฅ / ์•ˆ์ •์„ฑ์„ ๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
์™ธ๋ถ€์„œ๋น„์Šค ์—ฐ๋™
์™ธ๋ถ€์„œ๋น„์Šค๋ฅผ ์—ฐ๋™ (Oauth, ๊ฒฐ์ œ ๋“ฑ)์„ ํ…Œ์ŠคํŠธ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์‹ค์ œ ์š”์ฒญ ์‹œ๊ฐ„๊ณผ ๊ฐ€๊น๊ฒŒ ์‹คํ–‰๋˜๋Š” ์ž„์˜์˜ ๊ฐ€์งœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋„์›Œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ / ์‘๋‹ต์„ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋” ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Keep-Alive๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ํ…Œ์ŠคํŠธ์—์„œ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ํ•˜์ง€ ์•Š๊ฒŒ๋” ์„ค์ •ํ•˜๊ณ , ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํƒœ์šฐ๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค
์•ž์„  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋ณ‘๋ชฉ์ง€์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ผ๋ถ€ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜์—ˆ๋‹ค๋ฉด ์ด์ œ ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ 1ํšŒ ์ ‘์†๋‹น ์–ด๋–ค ์š”์ฒญ๋“ค์„ ๋ณด๋‚ด๋Š”์ง€ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ณ , ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค๋Œ€๋กœ ์‹œ์Šคํ…œ์— ๋ถ€ํ•˜๋ฅผ ๊ฑธ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ๋•Œ ์„ฑ๋Šฅ์ด ์ž˜ ๋‚˜์˜ค๊ณ  ์•ˆ์ •์ ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ธ๊ฐ€

๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์— ์ง„ํ–‰ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์ž์ฒด๊ฐ€ ์ตœ๋Œ€ ๋ถ€ํ•˜์ง€์  ํ˜น์€ ๋ชฉํ‘œ ์„ฑ๋Šฅ ์œ ์ง€ ๋“ฑ์„ ์ ๊ฒ€ํ•˜๋ฉด์„œ ์„œ๋น„์Šค์— ๋งŽ์€ ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์˜ ์„œ๋น„์Šค ์ด์šฉ์— ํฐ ๋ถˆํŽธํ•จ์„ ์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ, ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ์œ„ํ•ด ์šด์˜ํ™˜๊ฒฝ๊ณผย ๋™์ผํ•œย ์ธํ”„๋ผ์—ย ๋™์ผํ•œย ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ ย ๋™์ผํ•œย ์™ธ๋ถ€ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์„œ๋น„์Šค๋ฅผ ํ†ต์งธ๋กœ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹ค์ œ ์šด์˜ํ™˜๊ฒฝ๋งŒํผ ๋„์›Œ์„œ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ๊ทธ ๋น„์šฉ์ด ์–ด๋งˆ์–ด๋งˆํ•˜๊ฒŒ ์ฑ…์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ถ€๋ถ„์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์•Œ์•„๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ

โ€ข
์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ
โ€ข
์ตœ๋Œ€ ์ด๋ฒคํŠธ ์ˆ˜
โ€ข
์„œ๋น„์Šค๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ์ง€(Time),
โ€ข
์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์–ผ๋งˆ๋‚˜ ๋งŽ์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€(TPS),
โ€ข
๊ทธ๋ฆฌ๊ณ  ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€(Users)์— ๋Œ€ํ•ด

ํ…Œ์ŠคํŠธ ํ•  ๋ชฉ๋ก

๋‚ด๊ฐ€ ๋งŒ๋“  ์ด ์‹œ์Šคํ…œ์€ ์‹ค์ œ ์žฅ๋น„์—์„œ
โ€ข
์–ด๋Š ์ •๋„์˜ย ๋ถ€ํ•˜ย ๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
โ€ข
์‹œ์Šคํ…œ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์„œ๋ฒ„), ์ž์›(cpu, disk, memory ๋“ฑ)์—์„œย ๋ณ‘๋ชฉย ์ด ์ƒ๊ธฐ์ง„ ์•Š๋Š”๊ฐ€?
โ€ข
์ž์›์„ย ํšจ์œจ์ ย ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?
โ€ข
๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜, ์˜ค๋ฅ˜, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐย ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๊ฐ€?
โ€ข
์ตœ์•…์˜ ์ƒํ™ฉย ์—์„  ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋Š”๊ฐ€? (์˜ˆ์ธกํ•˜๊ณ  ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ)
โ€ข
์žฅ์•  ์กฐ์น˜์™€ ๋ณต๊ตฌย ๊ฐ€ ์ž˜ ๋™์ž‘์„ ํ•˜๋Š”๊ฐ€?

์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

โ€ข
์‹ค์ œ ํŠธ๋ž˜ํ”ฝ ์ƒํ™ฉ์—์„œ์˜ ์ •์ƒ ๋™์ž‘
โ€ข
๊ธฐ์กด ์‹œ์Šคํ…œ ๋Œ€๋น„ BenchMarking

๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ

โ€ข
๋ฆฌ์†Œ์Šค ๋ณ‘๋ชฉ ํƒ์ƒ‰, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ„๊ทธ ํƒ์ƒ‰
โ€ข
์ด๋ฒคํŠธ ์ƒํ™ฉ๊ณผ ๊ฐ™์€ ์ˆœ๊ฐ„ ํŠธ๋ž˜ํ”ฝ ์ตœ๋Œ€์น˜, ํ•œ๊ณ„์น˜๋ฅผ ํƒ์ƒ‰
โ€ข
์‹ ๊ทœ ์ŠคํŽ™ ์žฅ๋น„์—์„œ MYSQL ์„ค์ • ์ตœ์ ํ™” ํƒ์ƒ‰

์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ

โ€ข
์žฅ๊ธฐ๊ฐ„ ๋ถ€ํ•˜ ๋ฐœ์ƒ์— ๋Œ€ํ•œ ํ•œ๊ณ„์น˜๋ฅผ ํƒ์ƒ‰, ์˜ˆ์™ธ ๋™์ž‘ ์ƒํ™ฉ ํ™•์ธ
โ€ข
Graceful Shutdown ์ •์ƒ ๋™์ž‘ ํ™•์ธ
โ€ข
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค failover ์ƒํ™ฉ, ์ž๋™ ๋ณต๊ตฌ, ์˜ˆ์™ธ ๋™์ž‘ ์ƒํ™ฉ ํ™•์ธ
โ€ข
์™ธ๋ถ€ ์š”์ธ(PG์‚ฌ)์˜ ๋ฐ€๋ฆด, ์˜ˆ์™ธ ์ƒํ™ฉ ๋™์ž‘ ํ™•์ธ
โ€ข
์–ด๋Š ์ •๋„์˜ย ๋ถ€ํ•˜ย ๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ๋‹ค.
โ€ข
ํ•œ๊ณ„์น˜์—์„œย ๋ณ‘๋ชฉย ์ด ์ƒ๊ธฐ๋Š” ์ง€์ ์„ ์•Œ๊ณ  ์žˆ๋‹ค.
โ€ข
์ž์›์„ย ํšจ์œจ์ ย ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
โ€ข
๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜, ์˜ค๋ฅ˜, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐย ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข
์ตœ์•…์˜ ์ƒํ™ฉย ์—์„œ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋Š”์ง€ ์ง์ ‘ ํ™•์ธํ•˜์˜€๋‹ค.
โ€ข
์žฅ์•  ์กฐ์น˜์™€ ๋ณต๊ตฌย ์˜ ๋™์ž‘์„ ์ง์ ‘ ํ™•์ธํ•˜์˜€๋‹ค.

nGrinder

โ€ข
The Grinder๋ผ๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๋„ค์ด๋ฒ„์—์„œ ๊ฐœ๋ฐœ
โ€ข
ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ๊ณต
โ€ข
๋ถ€ํ•˜๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต
โ€ข
ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ํ†ต๊ณ„๋กœ ์ œ๊ณต
โ€ข
Groovy ๋กœ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ๊ฐ€๋Šฅ

JMeter

โ€ข
Apache์—์„œ ๊ฐœ๋ฐœํ•œ ์ˆœ์ˆ˜ ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœ๋œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋„๊ตฌ
โ€ข
ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ XML ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ
โ€ข
Load Test, Distributed Test, Functional Test ๋“ฑ์„ ์ง€์›
โ€ข
๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ  target์— ๋Œ€ํ•œ load๋ฅผ ์ƒ์„ฑ
โ€ข
์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์„œ๋ฒ„ ํ…Œ์ŠคํŠธ์—์„œ ์ž‘๋™ํ•˜๋ฉฐ HTTP, JDBC, LDAP, SOAP, JMS ๋ฐ FTP์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ๋„ ์ง€์›

Controller

โ€ข
์›น ๊ธฐ๋ฐ˜์˜ GUI ์‹œ์Šคํ…œ
โ€ข
์œ ์ € ๊ด€๋ฆฌ (๊ฐ์ž ์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ ๊ฐ€๋Šฅ)
โ€ข
์—์ด์ „ํŠธ ๊ด€๋ฆฌ
โ€ข
๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์‹ค์‹œ & ๋ชจ๋‹ˆํ„ฐ๋ง
โ€ข
๋ถ€ํ•˜ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ ํ…Œ์ŠคํŠธ ๋‚ด์—ญ์„ ์ €์žฅํ•˜๊ณ  ์žฌํ™œ์šฉ ๊ฐ€๋Šฅ

agent

โ€ข
๋ถ€ํ•˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋Œ€์ƒ(์ฃผ์ฒด)
โ€ข
controller์˜ ์ง€ํœ˜๋ฅผ ๋ฐ›๋Š”๋‹ค.
โ€ข
์—ฌ๋Ÿฌ ๋จธ์‹ ์— ์„ค์น˜ํ•ด์„œ controller์˜ ์‹ ํ˜ธ์— ๋”ฐ๋ผ ์ผ์‹œ์— ๋ถ€ํ•˜๋ฅผ ๋ฐœ์ƒ๊ฐ€๋Šฅ
โ€ข
ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ๋จธ์‹ ์— agent ์„ค์น˜

VUser

โ€ข
๊ฐ€์ƒ์˜ ์‚ฌ์šฉ์ž
1.
์„ค์น˜
๊ณต์‹ ์„ค์น˜ ๊ฐ€์ด๋“œ ์˜์–ด๋กœ ๋˜์–ด์žˆ์Œ
2.
์‹คํ–‰

์„œ๋ฒ„(์ปจํŠธ๋กค๋Ÿฌ) ์‹คํ–‰

java -XX:MaxPermSize=200m -jar ngrinder-controller-3.4.war
Shell
๋ณต์‚ฌ
โ€ข
-XX:MaxPermSize ์˜ต์…˜์ด ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ์ด์œ 
โ—ฆ
nGrinder ๋Š” SVNKit, maven, Jetty webserver, groovy, python ๋“ฑ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ฑฐ๋Œ€ํ•œ PermGen ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”๊ตฌํ•œ๋‹ค.
โ€ข
--port 80 ์„ค์ •์œผ๋กœ ํฌํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
localhost:8080 ์œผ๋กœ ์ ‘์† ํ•œ ๋’ค ์ดˆ๊ธฐ ๊ณ„์ • admin/admin ์œผ๋กœ ๋กœ๊ทธ์ธ

์—์ด์ „ํŠธ, ๋ชจ๋‹ˆํ„ฐ ์‹คํ–‰

โ€ข
์ ‘์† ๋’ค ๊ณ„์ •์—์„œ Agent์™€ Monitor tar ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
โ€ข
untar ๋’ค ๊ฐ๊ฐ์˜ ํด๋”์—์„œ shell script ์‹คํ–‰
โ€ข
tar -xvf ngrinder-agent-โ€ฆwar
./run_agent_bg.sh ./run_monitor_bg.sh
Shell
๋ณต์‚ฌ
โ€ข
Agent: ์•„๊นŒ ์„ค์น˜ํ•œ agent. ์—ฌ๋Ÿฌ๊ฐœ ๊ฐ€๋Šฅํ•จ ๋‚˜๋Š” ๋กœ์ปฌ์—์„œ ํ•˜๋‚˜๋กœ๋งŒ ํ•จ
โ€ข
Vuser per agent: agent ๋‹น ๊ฐ€์ƒ ์‚ฌ์šฉ์ž ์ˆ˜
โ€ข
Target Host: script ์— ๋‚˜์™€์žˆ์–ด์„œ ๊ตณ์ด ๊ธฐ์žฌํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
โ€ข
Duration: ํ…Œ์ŠคํŠธ ์†Œ์š” ์‹œ๊ฐ„
โ€ข
run count: ๊ฐ€์ƒ ์œ ์ €๋‹น ์š”์ฒญ์„ ์‹คํ–‰ํ•˜๋Š” ํšŸ์ˆ˜. 0์ด๋ฉด Duration ์‹œ๊ฐ„๋™์•ˆ ๊ณ„์† ๋ณด๋ƒ„
vuser ๋Š” script ํ•˜๋‚˜๋ฅผ ์™„๋ฃŒํ•˜๋ฉด run count ๊ฐ€ 1์ด๋‹ค. 0์ด๋ฉด script ํ•˜๋‚˜๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ๋‹ค์‹œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์ฆ‰ ์š”์ฒญ์ด ๋‹ค ์˜ค๊ณ  ์‘๋‹ต์„ ๋ฐ›๊ณ  ๋‚˜์•ผ ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. DDos ์ฒ˜๋Ÿผ ์‘๋‹ต์ด ์˜ค์ง€๋„ ์•Š์•˜๋Š”๋ฐ ์š”์ฒญ๋งŒ ๋ณด๋‚ด์ง€ ์•Š์Œ!!