์ฑ๋ฅ ํ ์คํธ์ ์ธ๊ณ๋ฅผ ํ์ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ, ํ์ฅ์ฑ, ์์ ์ฑ์ ์ต์ ํํ์ฌ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋ง์กฑ์ํค๋ ํ์ ๋ถํ ํ ์คํธ ๋๊ตฌ๋ฅผ ์์๋ณด์ธ์.
์ฑ๋ฅ ํ ์คํธ: ๋ถํ ํ ์คํธ ๋๊ตฌ ์ฌ์ธต ๋ถ์
์ค๋๋ 24์๊ฐ ์ฐ์ค๋ฌดํด๋ก ์ ์ธ๊ณ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๋ ๋์งํธ ํ๊ฒฝ์์๋ ์ต์ ์ ์ฑ๋ฅ์ ๋ณด์ฅํ๋ ๊ฒ์ด ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ์ฌ์ฉ์๋ค์ ์์ ์ ์์น๋ ๊ธฐ๊ธฐ์ ๊ด๊ณ์์ด ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ, ์ํํ ํ์, ๋ฐ์์ฑ ์๋ ๊ฒฝํ์ ๊ธฐ๋ํฉ๋๋ค. ๋ฐ๋ก ์ด ์ง์ ์์ ์ฑ๋ฅ ํ ์คํธ, ํนํ ๋ถํ ํ ์คํธ ๋๊ตฌ๊ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ ์ฑ๋ฅ ํ ์คํธ์ ์ธ๊ณ๋ฅผ ๊น์ด ํ๊ณ ๋ค์ด ๋ถํ ํ ์คํธ ๋๊ตฌ์ ์ค์ํ ์ญํ ์ ํ์ํ๊ณ , ์ฌ๋ฌ๋ถ์ ํ์์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฑ๋ฅ ํ ์คํธ๋ ๋ฌด์์ธ๊ฐ?
์ฑ๋ฅ ํ ์คํธ๋ ์ฃผ์ด์ง ์ํฌ๋ก๋ ํ์์ ์์คํ ์ด ์ผ๋ง๋ ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ๋ฐ์์ด ๋น ๋ฅธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋น๊ธฐ๋ฅ ํ ์คํธ ์ ํ์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์กฐ๊ฑด์์ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํ๊ฐํฉ๋๋ค:
- ๋ถํ(Load): ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๋ ์ฌ์ฉ์ ์.
- ์คํธ๋ ์ค(Stress): ๊ทนํ์ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ๋ ์์คํ ์ ๋ฅ๋ ฅ.
- ๋ด๊ตฌ์ฑ(Endurance): ์ง์์ ์ธ ๊ธฐ๊ฐ ๋์์ ์์คํ ์ฑ๋ฅ.
- ํ์ฅ์ฑ(Scalability): ์ฆ๊ฐ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์์คํ ์ ๋ฅ๋ ฅ.
์ฑ๋ฅ ํ ์คํธ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ , ์์คํ ๋ฆฌ์์ค๋ฅผ ์ต์ ํํ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฑ๋ฅ ์๊ตฌ ์ฌํญ ๋ฐ ์๋น์ค ์์ค ๊ณ์ฝ(SLA)์ ์ถฉ์กฑํ๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค. ์ ์ ํ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ํํ์ง ์์ผ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ ์ ํ, ์์ต ์์ค, ๋ธ๋๋ ํํ ์์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
๋ถํ ํ ์คํธ๊ฐ ์ค์ํ ์ด์
๋ถํ ํ ์คํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ์ ์ ์ฌํ ์ฌ์ฉ์ ๋ถํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ฌ ํด๋น ์กฐ๊ฑด์์์ ๋์์ ์ธก์ ํ๋ ํน์ ์ ํ์ ์ฑ๋ฅ ํ ์คํธ์ ๋๋ค. ์ด๋ ์กฐ์ง์ด ๋ค์๊ณผ ๊ฐ์ ์ค์ํ ์ง๋ฌธ์ ๋ตํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค:
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ๋ฆฌํ ์ ์๋ ๋์ ์ฌ์ฉ์ ์๋ ๋ช ๋ช ์ ๋๊น?
- ๋ค์ํ ๋ถํ ์์ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ต ์๊ฐ์ ์ผ๋ง์ ๋๊น?
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฆ๊ฐํ๋ ํธ๋ํฝ์ ์์ฉํ๊ธฐ ์ํด ํจ๊ณผ์ ์ผ๋ก ํ์ฅ๋ฉ๋๊น?
- ๋ฆฌ์์ค ์ฌ์ฉ ํจํด(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋คํธ์ํฌ ๋ฑ)์ ์ด๋ป์ต๋๊น?
- ํด๊ฒฐํด์ผ ํ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ด ์์ต๋๊น?
๋ถํ ํ ์คํธ๋ ํนํ ์ ์์๊ฑฐ๋ ํ๋ซํผ, ์์ ๋ฏธ๋์ด ์ ํ๋ฆฌ์ผ์ด์ , ๊ธ์ต ์๋น์ค ๋ฐ (์ ์ธ๊ณ์ ์ผ๋ก ์๋ ค์ง) ๋ธ๋ ํ๋ผ์ด๋ฐ์ด ์ธ์ผ์ด๋ ์ฃผ์ ์คํฌ์ธ ํ์ฌ์ ๊ฐ์ด ํธ๋ํฝ์ด ์ต๊ณ ์กฐ์ ๋ฌํ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ํฉ๋๋ค. ์ ๋๋ก ์คํ๋ ๋ถํ ํ ์คํธ๋ ๋๋ฆฐ ํ์ด์ง ๋ก๋ฉ, ํธ๋์ญ์ ์คํจ, ์ ํ๋ฆฌ์ผ์ด์ ์ถฉ๋๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
๋ถํ ํ ์คํธ์ ์ฃผ์ ์ด์
- ์ฑ๋ฅ ํฅ์: ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ ํด๊ฒฐํ์ฌ ๋ ๋น ๋ฅธ ์๋ต ์๊ฐ๊ณผ ๋ฐ์์ฑ ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ํ์ฅ์ฑ ๊ฐํ: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฆ๊ฐ๋ ํธ๋ํฝ๊ณผ ์ฑ์ฅ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์์ ์ฑ ์ฆ๋: ๋ถํ ์ํ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ฅ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ์ ๊ณผ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํฉ๋๋ค.
- ๋น์ฉ ์ ๊ฐ: ๋ฆฌ์์ค ํ์ฉ์ ์ต์ ํํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ค์ดํ์์ ๋ฐฉ์งํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ง์กฑ๋ ํฅ์: ๊ธ์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ์ฌ ๊ณ ๊ฐ ์ถฉ์ฑ๋๋ฅผ ๋์ ๋๋ค.
- ์ํ ๊ฐ์: ์ฑ๋ฅ ๋ฌธ์ ์ ์ํ์ ์ต์ํํ๊ณ ํผํฌ ์๊ฐ ๋์ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.
๋ถํ ํ ์คํธ ๋๊ตฌ: ์ข ํฉ์ ์ธ ๊ฐ์
๋ค์ํ ๋ถํ ํ ์คํธ ๋๊ตฌ๊ฐ ์์ผ๋ฉฐ, ๊ฐ ๋๊ตฌ๋ ๊ณ ์ ํ ๊ฐ์ , ์ฝ์ , ๊ฐ๊ฒฉ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ, ํ ์คํธ ๋ชฉํ, ์์ฐ, ํ ์คํธ ํ์ ๊ธฐ์ ์ ๋ฌธ์ฑ๊ณผ ๊ฐ์ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๊ณ ํจ๊ณผ์ ์ธ ๋ถํ ํ ์คํธ ๋๊ตฌ๋ค์ ๋๋ค:
1. Apache JMeter
์ค๋ช : JMeter๋ Apache Software Foundation์์ ์ ๊ณตํ๋ ์คํ ์์ค, Java ๊ธฐ๋ฐ ๋ถํ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ , API ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์คํธ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
์ฃผ์ ํน์ง:
- ๋ค์ํ ํ๋กํ ์ฝ(HTTP, HTTPS, FTP, JDBC ๋ฑ)์ ์ง์ํฉ๋๋ค.
- ํ ์คํธ ์คํฌ๋ฆฝํธ ์์ฑ์ ์ํ ์ฌ์ฉ์ ์นํ์ ์ธ GUI๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊ด๋ฒ์ํ ๋ณด๊ณ ๋ฐ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- Java, Groovy ๋ฐ ๊ธฐํ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์คํฌ๋ฆฝํ ์ ์ง์ํฉ๋๋ค.
- ํ๋ฌ๊ทธ์ธ์ ํตํด ๋์ ํ์ฅ์ฑ์ ๊ฐ์ง๋๋ค.
- ํฌ๊ณ ํ๋ฐํ ์ปค๋ฎค๋ํฐ ์ง์์ ๋ฐ์ต๋๋ค.
์ฅ์ : ๋ฌด๋ฃ ๋ฐ ์คํ ์์ค, ๋ค์ฌ๋ค๋ฅํจ, ๊ด๋ฒ์ํ ํ๋กํ ์ฝ ์ง์, ํญ๋์ ์ปค๋ฎค๋ํฐ ์ง์.
๋จ์ : ํนํ ๋๊ท๋ชจ ํ ์คํธ์์ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ผ๋ถ ์์ฉ ๋๊ตฌ๋ณด๋ค GUI๊ฐ ๋ ์ง๊ด์ ์ผ ์ ์๊ณ , ๋ณด๊ณ ๊ฐ ๋ณต์กํ ์ ์์ต๋๋ค.
์ฌ๋ก: ๋ฏธ๊ตญ์ ๋ณธ์ฌ๋ฅผ ๋ ๊ธ๋ก๋ฒ ์ ์์๊ฑฐ๋ ํ์ฌ๊ฐ ํด์ผ ์ธ์ผ ๊ธฐ๊ฐ ๋์ ์น์ฌ์ดํธ์ ์ฑ๋ฅ์ ํ ์คํธํ๋ ๋ฐ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ค์ ์์ฒ ๋ช ์ ๋์ ์ฌ์ฉ์๊ฐ ์ ํ ํ์ด์ง๋ฅผ ํ์ํ๊ณ , ์ฅ๋ฐ๊ตฌ๋์ ํญ๋ชฉ์ ์ถ๊ฐํ๊ณ , ๊ฒฐ์ ํ๋ก์ธ์ค๋ฅผ ์๋ฃํ๋ ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด JMeter ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์์ต๋๋ค.
2. Gatling
์ค๋ช : Gatling์ ์ฌ์ฉ ํธ์์ฑ๊ณผ ์ฑ๋ฅ์ ์ํด ์ค๊ณ๋ ์คํ ์์ค ๋ถํ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. Scala๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ์คํฌ๋ฆฝํ ์ ์ํด ๋๋ฉ์ธ ํน์ ์ธ์ด(DSL)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฃผ์ ํน์ง:
- ์ฑ๋ฅ ํ ์คํธ ์์ฑ์ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข์ Scala DSL์ ์ฌ์ฉํฉ๋๋ค.
- ๋น๋๊ธฐ ์ํคํ ์ฒ ๋๋ถ์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋ช ํํ ์๊ฐํ๋ฅผ ํฌํจํ ์์ธํ ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ค์ํ ํ๋กํ ์ฝ(HTTP, HTTPS)์ ์ง์ํฉ๋๋ค.
- CI/CD ํ์ดํ๋ผ์ธ๊ณผ ์ ํตํฉ๋ฉ๋๋ค.
์ฅ์ : ๊ณ ์ฑ๋ฅ, ํ ์คํธ ์์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ์ฉ์ด, ์ฐ์ํ ๋ณด๊ณ ๊ธฐ๋ฅ.
๋จ์ : Scala์ ๋ํ ์ฝ๊ฐ์ ์ง์์ด ํ์ํ๋ฉฐ, JMeter์ ๋นํด ๋น-HTTP ํ๋กํ ์ฝ ์ง์์ด ์ ์ต๋๋ค.
์ฌ๋ก: ํ๋์ค์ ํ ํต์ ํ์ฌ๋ ์๋ก์ด ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ซํผ์ ์ฑ๋ฅ์ ํ ์คํธํ๊ธฐ ์ํด Gatling์ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ค์ ์์ฒ ๋ช ์ ์ฌ์ฉ์๊ฐ ๋น๋์ค ์คํธ๋ฆฌ๋ฐ ๋ฐ ํ์ผ ๋ค์ด๋ก๋์ ๊ฐ์ ์ฑ์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ก์ธ์คํ๋ ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด Gatling ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์์ต๋๋ค.
3. Locust
์ค๋ช : Locust๋ ์คํ ์์ค, Python ๊ธฐ๋ฐ ๋ถํ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ , ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ, ๋ถ์ฐ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ฃผ์ ํน์ง:
- ํ ์คํธ ์คํฌ๋ฆฝํ ์ Python์ ์ฌ์ฉํ์ฌ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๋ฐ ์ ์ด๋ฅผ ์ํ ์น ๊ธฐ๋ฐ UI๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋๊ท๋ชจ ์ฌ์ฉ์ ๋ถํ ์๋ฎฌ๋ ์ด์ ์ ์ํ ๋ถ์ฐ ํ ์คํธ๋ฅผ ์ง์ํฉ๋๋ค.
- ํ์ฅ ๋ฐ ํ์ฅ์ด ์ฉ์ดํฉ๋๋ค.
์ฅ์ : ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์, ์น ๊ธฐ๋ฐ UI, ๋ถ์ฐ ํ ์คํธ ์ง์.
๋จ์ : ์ฃผ๋ก HTTP ํ ์คํธ์ ์ค์ ์ ๋๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฃจ์ ์ ๋นํด ์ธํ๋ผ ๊ด๋ฆฌ์ ๋ ๋ง์ ์๋ ์์ ์ด ํ์ํ ์ ์์ต๋๋ค.
์ฌ๋ก: ํ ๊ธ๋ก๋ฒ ์ฌํ์ฌ๋ ์์ฝ ์น์ฌ์ดํธ์ ์ฑ๋ฅ์ ํ ์คํธํ๊ธฐ ์ํด Locust๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ค์ Locust๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ํญ๊ณตํธ, ํธํ , ๋ ํฐ์นด๋ฅผ ๊ฒ์ํ๋ ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์๋ต ์๊ฐ์ ์ธก์ ํ๋ฉฐ ๋ณ๋ชฉ ํ์์ ์๋ณํ์ต๋๋ค.
4. k6 (๊ตฌ LoadImpact)
์ค๋ช : k6๋ JavaScript๋ก ์์ฑ๋ ์คํ ์์ค, ๊ฐ๋ฐ์ ์ค์ฌ์ ๋ถํ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. ์ฌ์ฉ ํธ์์ฑ, ์ฑ๋ฅ ๋ฐ ์๋ํ์ ์ค์ ์ ๋ก๋๋ค.
์ฃผ์ ํน์ง:
- ํ ์คํธ ์คํฌ๋ฆฝํ ์ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ ๊ฐ๋ฐ์์๊ฒ ์ต์ํฉ๋๋ค.
- CI/CD ํ์ดํ๋ผ์ธ๊ณผ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
- ๋ค์ํ ํ๋กํ ์ฝ(HTTP, HTTPS, gRPC ๋ฑ)์ ์ง์ํฉ๋๋ค.
- ์์ธํ ๋ณด๊ณ ์์ ์๊ฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ฐ ์จํ๋ ๋ฏธ์ค ์ต์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฅ์ : ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์, ์ฐ์ํ ์ฑ๋ฅ, ์๋ํ๋ ํ ์คํธ์ ํ์ํจ.
๋จ์ : JavaScript ์คํฌ๋ฆฝํ ์ ์ฝ๊ฐ์ ์ง์์ด ํ์ํ๋ฉฐ, ๊ณ ๊ธ ๊ธฐ๋ฅ์๋ ๋ผ์ด์ ์ค๊ฐ ํ์ํ ์ ์๊ณ , ์ผ๋ถ ์ํฐํ๋ผ์ด์ฆ ๊ธฐ๋ฅ์ ํด๋ผ์ฐ๋ ๋ฒ์ ์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ๋ก: ์ ์ธ๊ณ์ ์ง์ฌ๋ฅผ ๋ ํ ๊ธ๋ก๋ฒ ์ํํธ์จ์ด ํ์ฌ๋ API ๊ฒ์ดํธ์จ์ด์ ์ฑ๋ฅ์ ํ ์คํธํ๊ธฐ ์ํด k6๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ชจ๋ฐ์ผ ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋์ง ํ์ธํ์ต๋๋ค. ๊ทธ๋ค์ CI/CD ํ์ดํ๋ผ์ธ์ k6 ํ ์คํธ๋ฅผ ํตํฉํ์ฌ ์ฑ๋ฅ ์ ํ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
5. LoadRunner (Micro Focus)
์ค๋ช : LoadRunner๋ Micro Focus(๊ตฌ HP)์ ์์ฉ ๋ถํ ํ ์คํธ ๋๊ตฌ์ ๋๋ค. ๋ง์ ๋๊ธฐ์ ์์ ์ฌ์ฉํ๋ ๊ฐ๋ ฅํ๊ณ ๊ธฐ๋ฅ์ด ํ๋ถํ ๋๊ตฌ์ ๋๋ค. LoadRunner Professional(๊ตฌ HP LoadRunner)๊ณผ LoadRunner Cloud๊ฐ ์ฃผ์ ๋ฒ์ ์ ๋๋ค.
์ฃผ์ ํน์ง:
- ๊ด๋ฒ์ํ ํ๋กํ ์ฝ๊ณผ ๊ธฐ์ ์ ์ง์ํฉ๋๋ค.
- ๊ณ ๊ธ ์คํฌ๋ฆฝํ ๊ธฐ๋ฅ๊ณผ ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์์ธํ ๋ถ์ ๋ฐ ๋ณด๊ณ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋ค์ํ ์๋ฒ ์ธก ๋ฆฌ์์ค์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง์ ์ง์ํฉ๋๋ค.
- ๊ฒฌ๊ณ ํ๊ณ ์ฑ์ํ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค.
์ฅ์ : ํ๋ถํ ๊ธฐ๋ฅ, ๊ด๋ฒ์ํ ํ๋กํ ์ฝ ์ง์, ๋ฐ์ด๋ ๋ณด๊ณ ๋ฐ ๋ถ์ ๊ธฐ๋ฅ.
๋จ์ : ๋น์ธ๊ณ , ์๋นํ ํ์ต ๊ณก์ ์ด ํ์ํ๋ฉฐ, ์ค์ ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ณต์กํ ์ ์์ต๋๋ค.
์ฌ๋ก: ์ฌ๋ฌ ๊ตญ๊ฐ์ ์ง์ ์ ๋ ํ ๋ค๊ตญ์ ๊ธ์ต ๊ธฐ๊ด์ ์จ๋ผ์ธ ๋ฑ ํน ํ๋ซํผ์ ์ฑ๋ฅ์ ๊ณผ๋ํ ๋ถํ ์ํ์์ ํ ์คํธํ๊ธฐ ์ํด LoadRunner๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ ์ธ๊ณ ๋ค์ํ ์์น์์ ํธ๋์ญ์ ์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ๊ณ ๊ฐ์๊ฒ ์ผ๊ด๋ ์๋น์ค๋ฅผ ๋ณด์ฅํ์ต๋๋ค.
6. NeoLoad (Neotys)
์ค๋ช : NeoLoad๋ ์ฌ์ฉ ํธ์์ฑ, ์๋ํ ๊ธฐ๋ฅ, DevOps ๋๊ตฌ์์ ํตํฉ์ผ๋ก ์๋ ค์ง ์์ฉ ๋ถํ ํ ์คํธ ๋๊ตฌ์ ๋๋ค.
์ฃผ์ ํน์ง:
- ์ฌ์ด ํ ์คํธ ์์ฑ์ด ๊ฐ๋ฅํ ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค.
- ๊ด๋ฒ์ํ ํ๋กํ ์ฝ๊ณผ ๊ธฐ์ ์ ์ง์ํฉ๋๋ค.
- ์๋ํ๋ ํ ์คํธ ์์ฑ ๋ฐ ์คํฌ๋ฆฝํ .
- DevOps ๋๊ตฌ ๋ฐ CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํตํฉ๋ฉ๋๋ค.
- ์์ธํ ๋ณด๊ณ ๋ฐ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฅ์ : ์ฌ์ฉํ๊ธฐ ์ฌ์, DevOps ๋๊ตฌ์์ ๋ฐ์ด๋ ํตํฉ, ์ฐ์ํ ๋ณด๊ณ ๊ธฐ๋ฅ.
๋จ์ : ์์ฉ ๋๊ตฌ๋ก ๋น์ ์ ์์ผ๋ฉฐ, ์ผ๋ถ ๊ณ ๊ธ ๊ธฐ๋ฅ์๋ ์ถ๊ฐ ๊ต์ก์ด ํ์ํฉ๋๋ค.
์ฌ๋ก: ์ฌ๋ฌ ๊ตญ๊ฐ์ ์จ๋ผ์ธ ๋งค์ฅ์ ๋ ํ ๊ธ๋ก๋ฒ ์๋งค ํ์ฌ๋ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ์ฑ๋ฅ์ ํ ์คํธํ๊ธฐ ์ํด NeoLoad๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ์ฌ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ์๋ณํ๊ณ ์ผํ ์ฑ์๊ธฐ ๋์์ ๋ฌธ์ ๋ฅผ ์๋ฐฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ณ ๊ฐ์ด ์์น์ ๊ด๊ณ์์ด ์ํํ๊ณ ํจ์จ์ ์ธ ๊ฒฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ฒฝํํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ๋ถํ ํ ์คํธ ๋๊ตฌ ์ ํ: ์ฃผ์ ๊ณ ๋ ค ์ฌํญ
ํจ๊ณผ์ ์ธ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด์๋ ์ฌ๋ฐ๋ฅธ ๋ถํ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค:
- ์ ํ๋ฆฌ์ผ์ด์ ์ ํ: ์ ํ๋ฆฌ์ผ์ด์ (์น, ๋ชจ๋ฐ์ผ, API, ๋ฐ์ดํฐ๋ฒ ์ด์ค)์ ์ ํ์ ๋ฐ๋ผ ์ง์๋๋ ํ๋กํ ์ฝ๊ณผ ํ์ํ ๊ธฐ๋ฅ์ด ๊ฒฐ์ ๋ฉ๋๋ค.
- ํ ์คํธ ๋ชฉํ: ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํ๊ธฐ ์ํด ํ ์คํธ ๋ชฉํ(์: ๋ณ๋ชฉ ํ์ ์๋ณ, ์๋ต ์๊ฐ ์ธก์ , ํ์ฅ์ฑ ๊ฒ์ฆ)๋ฅผ ์ ์ํ์ญ์์ค.
- ์์ฐ: ๋ผ์ด์ ์ค ๋น์ฉ, ๊ต์ก, ์ธํ๋ผ๋ฅผ ํฌํจํ ๋๊ตฌ ๋น์ฉ์ ๊ณ ๋ คํ์ญ์์ค. ์คํ ์์ค ๋๊ตฌ๋ ๋น์ฉ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ์ ์ ๋ฌธ์ฑ: ์คํฌ๋ฆฝํ , ์ฑ๋ฅ ๋ถ์, ๋๊ตฌ์ ํน์ ์ธ์ด ๋๋ ํ๋ ์์ํฌ์ ๋ํ ํ์ ๊ธฐ์ ๊ณผ ๊ฒฝํ์ ํ๊ฐํ์ญ์์ค.
- ํ์ฅ์ฑ ์๊ตฌ ์ฌํญ: ํ์ํ ์์ ๊ฐ์ ์ฌ์ฉ์๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์์ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ํํ์ญ์์ค.
- ๋ณด๊ณ ๋ฐ ๋ถ์: ๋๊ตฌ๊ฐ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํ ํฌ๊ด์ ์ธ ๋ณด๊ณ ๋ฐ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋์ง ํ์ธํ์ญ์์ค.
- ํตํฉ ๊ธฐ๋ฅ: ์๋ํ๋ ํ ์คํธ๋ฅผ ์ํด CI/CD ํ์ดํ๋ผ์ธ ๋ฐ ๊ธฐํ DevOps ๋๊ตฌ์์ ํตํฉ์ ๊ณ ๋ คํ์ญ์์ค.
- ์ปค๋ฎค๋ํฐ ์ง์: ํ๋ฐํ ์ปค๋ฎค๋ํฐ, ๊ด๋ฒ์ํ ๋ฌธ์, ์ฝ๊ฒ ์ด์ฉํ ์ ์๋ ์ง์์ ๊ฐ์ถ ๋๊ตฌ๋ฅผ ์ฐพ์ผ์ญ์์ค.
- ๋ฒค๋ ์ง์: ์์ฉ ๋๊ตฌ๋ฅผ ๊ณ ๋ คํ๋ ๊ฒฝ์ฐ ๋ฒค๋ ์ง์ ์ต์ , ๊ต์ก ํ๋ก๊ทธ๋จ ๋ฐ ์๋น์ค ์์ค ๊ณ์ฝ์ ์กฐ์ฌํ์ญ์์ค.
- ์ฌ์ฉ ํธ์์ฑ: ํนํ ๋ถํ ํ ์คํธ๋ฅผ ์ฒ์ ์ ํ๋ ๊ฒฝ์ฐ ํ ์คํธ ์์ฑ ๋ฐ ์คํ์ ์ฉ์ด์ฑ์ ๊ณ ๋ คํ์ญ์์ค.
๋ถํ ํ ์คํธ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋ถํ ํ ์คํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค:
- ๋ช ํํ ๋ชฉํ ์ ์: ํ ์คํธ๋ฅผ ์์ํ๊ธฐ ์ ์ ๊ตฌ์ฒด์ ์ธ ์ฑ๋ฅ ๋ชฉํ์ ์ฑ๊ณต ๊ธฐ์ค์ ์ค์ ํ์ญ์์ค. ์๋ฅผ ๋ค์ด: "๋์ ์ฌ์ฉ์ 1,000๋ช ์ ๋ถํ์์ ํ๊ท ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ 3์ด ๋ฏธ๋ง์ด์ด์ผ ํฉ๋๋ค."
- ํ ์คํธ ๊ณํ ๋ฐ ์ค๊ณ: ํ ์คํธ ์๋๋ฆฌ์ค, ๋ถํ ํ๋กํ, ์์งํ ๋ฉํธ๋ฆญ์ ๊ฐ๊ด์ ์ผ๋ก ์ค๋ช ํ๋ ์์ธํ ํ ์คํธ ๊ณํ์ ์์ฑํ์ญ์์ค.
- ํ์ค์ ์ธ ํ ์คํธ ํ๊ฒฝ: ๊ฐ๋ฅํ ํ ํ๋ก๋์ ํ๊ฒฝ(ํ๋์จ์ด, ์ํํธ์จ์ด, ๋คํธ์ํฌ ๊ตฌ์ฑ)๊ณผ ์ ์ฌํ ํ ์คํธ ํ๊ฒฝ์ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ๊ฒฐ๊ณผ์ ๊ด๋ จ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ๋ถํ ํ๋กํ: ์ค์ ์ฌ์ฉ์ ํ๋์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ์ ์ ํ ๋ถํ ํ๋กํ(์: ๋จํ์ , ์ ์ ์ํ, ํผํฌ ๋ถํ)์ ์ ํํ์ญ์์ค.
- ์์คํ ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง: ์๋ฒ ์ธก ๋ฆฌ์์ค(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ I/O, ๋คํธ์ํฌ)๋ฅผ ๋ชจ๋ํฐ๋งํ์ฌ ๋ณ๋ชฉ ํ์์ ์๋ณํ์ญ์์ค. ํฌ๊ด์ ์ธ ์ถ์ ์ ์ํด Prometheus ๋ฐ Grafana์ ๊ฐ์ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
- ๊ฒฐ๊ณผ ๋ถ์: ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์ ์คํ๊ฒ ๋ถ์ํ๊ณ , ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ฉฐ, ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ํ์ ํ์ญ์์ค.
- ๋ฐ๋ณต ๋ฐ ์ต์ ํ: ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๊ตฌํํ๊ณ , ์ฌํ ์คํธํ๋ฉฐ, ์ฑ๋ฅ ๋ชฉํ๊ฐ ์ถฉ์กฑ๋ ๋๊น์ง ๋ฐ๋ณตํ์ญ์์ค. ์ง์์ ์ธ ํ ์คํธ๋ ํ์์ ์ ๋๋ค.
- ํ ์คํธ ์๋ํ: ๋ถํ ํ ์คํธ๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉํ์ฌ ํ ์คํธ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๊ณ ์ฑ๋ฅ ์ ํ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ์ญ์์ค. ์ด๋ ์ฆ์ ์ํํธ์จ์ด ๋ฆด๋ฆฌ์ค์ ํนํ ์ค์ํฉ๋๋ค.
- ๋ชจ๋ ๊ฒ ๋ฌธ์ํ: ํ ์คํธ ๊ณํ, ํ ์คํธ ์คํฌ๋ฆฝํธ, ๊ฒฐ๊ณผ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์ธํ๋ผ์ ์ ์ฉ๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌธ์ํํ์ญ์์ค. ๋ฌธ์๋ ์ฌํ์ฑ๊ณผ ํฅํ ์ฐธ์กฐ๋ฅผ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ์ ๊ธฐ์ ์ธ ํ ์คํธ: ํนํ ์ฃผ์ ๋ฆด๋ฆฌ์ค, ์์คํ ์ ๋ฐ์ดํธ ๋๋ ์ธํ๋ผ ๋ณ๊ฒฝ ์ ์ ์ ๊ธฐ์ ์ผ๋ก ๋ถํ ํ ์คํธ๋ฅผ ์ํํ์ญ์์ค.
- ์ง๋ฆฌ์ ์์น ๊ณ ๋ ค: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ, ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ์ ์ํฅ์ ์ดํดํ๊ธฐ ์ํด ๋ค๋ฅธ ์ง๋ฆฌ์ ์์น์์ ํธ๋ํฝ์ ์๋ฎฌ๋ ์ด์ ํ์ญ์์ค. LoadView์ ๊ฐ์ ์ผ๋ถ ๋๊ตฌ๋ ์ง๋ฆฌ์ ์ผ๋ก ๋ค์ํ ์์น์์ ํ ์คํธํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์ค์ฌ์ฉ์ ๋ชจ๋ํฐ๋ง(RUM) ํ์ฉ: ์ค์ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ป๊ธฐ ์ํด ์ค์ฌ์ฉ์ ๋ชจ๋ํฐ๋ง(RUM) ํตํฉ์ ๊ณ ๋ คํ์ญ์์ค. RUM์ ์ฌ์ฉ์ ์ฅ์น๋ ๋คํธ์ํฌ ์กฐ๊ฑด์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์ฑ๋ฅ ๋ณํ์ ๊ฐ์ด ๋ถํ ํ ์คํธ๊ฐ ๋ฐ๊ฒฌํ์ง ๋ชปํ ์ ์๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋๋ฌ๋ผ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
๋ถํ ํ ์คํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ, ํ์ฅ์ฑ, ์์ ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์์ด ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ถํ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ ํํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด ์กฐ์ง์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ฌ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ๋ฉฐ, ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ฅ์ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋์์ ์ธ๊ธ๋ ๋๊ตฌ๋ค โ JMeter, Gatling, Locust, k6, LoadRunner, NeoLoad โ ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ต์์ ์ ํ์ ํน์ ์ ํ๋ฆฌ์ผ์ด์ , ๊ธฐ์ ์ ๋ฌธ์ฑ, ์์ฐ ๋ฐ ํ ์คํธ ๋ชฉํ์ ๊ฐ์ฅ ์ ํฉํ ๊ฒ์ ๋๋ค. ์ฑ๋ฅ ํ ์คํธ์ ๋ํ ํฌ์๋ ์ ์ ๋ ๊ฒฝ์์ด ์น์ดํด์ง๋ ๋์งํธ ์ธ๊ณ์์ ์ฌ์ฉ์ ๋ง์กฑ๋์ ๋น์ฆ๋์ค ์ฑ๊ณต์ ๋ํ ํฌ์์ ๋๋ค.
๋ถํ ํ ์คํธ๋ ์ผํ์ฑ ํ๋์ด ์๋์ ๊ธฐ์ตํ์ญ์์ค. ์ด๋ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง, ๋ถ์ ๋ฐ ์ต์ ํ๊ฐ ํ์ํ ์ง์์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์กฐ์ง ๋ด์์ ์ฑ๋ฅ ์ค์ฌ ๋ฌธํ๋ฅผ ์์ฉํ๋ฉด ์ ์ธ๊ณ ์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๋ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ ์ ์๋ ์ข์ ์์น์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.