1๋ถ: ์น/์๋๋ก์ด๋
์ฃผ์: ์ด ๊ธฐ์ฌ๋ ์๋ณธ ๊ธฐ์ฌ๋ฅผ ๋ฌ์์์ด๋ก ๋ฒ์ญํ ๊ฒ์
๋๋ค.
ํ์ฌ DevOps ์ ๋ฌธ ๋ถ์ผ๋ IT ์
๊ณ์์ ๊ฐ์ฅ ์์๊ฐ ๋ง์ ๋ถ์ผ ์ค ํ๋์
๋๋ค. ์ธ๊ธฐ ๊ตฌ์ง ์ฌ์ดํธ๋ฅผ ์ด๊ณ ์ฐ๋ด์ผ๋ก ํํฐ๋งํด ๋ณด๋ฉด DevOps ๊ด๋ จ ์ฑ์ฉ ์ ๋ณด๊ฐ ๋ชฉ๋ก ์๋จ์ ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์ฃผ๋ก '์์' ์ง์๋ฅผ ์๋ฏธํ๋ฉฐ, ์ด๋ ํ๋ณด์๊ฐ ๋์ ์์ค์ ๊ธฐ์ , ๊ธฐ์ ๋ฐ ๋๊ตฌ์ ๋ํ ์ง์์ ๋ณด์ ํ๊ณ ์์์ ์๋ฏธํ๋ค๋ ์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ ๋ํ ์ค๋จ ์๋ ์์ฐ ์ด์๊ณผ ๊ด๋ จ๋ ๋์ ์์ค์ ์ฑ
์์ ์๋ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ DevOps๊ฐ ๋ฌด์์ธ์ง ์์ด๋ฒ๋ฆฌ๊ธฐ ์์ํ์ต๋๋ค. ์ฒ์์๋ ํน์ ์ธ๋ฌผ์ด๋ ๋ถ์๊ฐ ์๋์์ต๋๋ค. ์ด ์ฉ์ด์ ์ ์๋ฅผ ์ฐพ์๋ณด๋ฉด ๋ฐฉ๋ฒ๋ก , ๊ดํ, ๋ฌธํ์ฒ ํ, ๊ฐ๋
๊ตฐ ๋ฑ๊ณผ ๊ฐ์ ์๋ฆ๋ต๊ณ ์ฌ๋ฐ๋ฅธ ๋ช
์ฌ๋ฅผ ๋ง์ด ์ฐพ์ ์ ์์ต๋๋ค.
์ ์ ๋ฌธ ๋ถ์ผ๋ ํ ์คํธ ์๋ํ ์์ง๋์ด(QA ์๋ํ ์์ง๋์ด)์ด์ง๋ง, ์ด๊ฒ์ด ์๋ ํ ์คํธ ์์ฑ์ด๋ ํ ์คํธ ํ๋ ์์ํฌ ์ํคํ ์ฒ ๊ฐ๋ฐ์๋ง ์ฐ๊ด๋์ด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. 2020๋ ์๋ ์๋ํ ์ธํ๋ผ์ ๋ํ ์ง์๋ ํ์๋ค. ์ด๋ฅผ ํตํด ํ ์คํธ ์คํ๋ถํฐ ๋ชฉํ์ ๋ฐ๋ผ ๋ชจ๋ ์ดํด๊ด๊ณ์์๊ฒ ๊ฒฐ๊ณผ ์ ๊ณต๊น์ง ์๋ํ ํ๋ก์ธ์ค๋ฅผ ์ง์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก DevOps ๊ธฐ์ ์ ์์ ์ ์๋ฃํ๋ ๋ฐ ํ์์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ์ข์ง๋ง ๋ถํํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค (์คํฌ์ผ๋ฌ: ์ด ๊ธฐ์ฌ๋ ์ด ๋ฌธ์ ๋ฅผ ๋จ์ํํ๋ ค๊ณ ์๋ํฉ๋๋ค.). ์์ ์ DevOps๊ฐ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ธฐ์ ์ด ํ๊ธฐ ์ฌ์ด ์ผ์ ๋ง์ ๋น์ฉ์ ์ง๋ถํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ช ํฉ๋๋ค. DevOps ์ธ๊ณ์๋ ์๋ฌํด์ผ ํ ๋๊ตฌ, ์ฉ์ด ๋ฐ ๊ดํ์ด ๋ง์ด ์์ต๋๋ค. ์ด๋ ๊ฒฝ๋ ฅ ์ด๊ธฐ์ ํนํ ์ด๋ ต๊ณ ์ถ์ ๋ ๊ธฐ์ ๊ฒฝํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ถ์ฒ :
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์๋ง๋ ์๋ฌธ ๋ถ๋ถ์ ๋๋ด๊ณ ์ด ๊ธฐ์ฌ์ ๋ชฉ์ ์ ์ด์ ์ ๋ง์ถ ๊ฒ์ ๋๋ค.
์ด ๊ธฐ์ฌ๋ ๋ฌด์์ ๊ดํ ๊ฒ์ ๋๊น?
์ด ๊ธ์์๋ ํ ์คํธ ์๋ํ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ๊ฒฝํ์ ๊ณต์ ํ๋ ค๊ณ ํฉ๋๋ค. ์ธํฐ๋ท์๋ ๋ค์ํ ๋๊ตฌ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ๋ง์ ์ ๋ณด ์์ค๊ฐ ์์ง๋ง ์์ ํ ์๋ํ์ ๋งฅ๋ฝ์์ ์ดํด๋ณด๊ณ ์ถ์ต๋๋ค. ๋๋ ๋ง์ ์๋ํ ์์ง๋์ด๋ค์ด ๊ฐ๋ฐ๋ ํ ์คํธ๋ฅผ ์คํํ๊ฑฐ๋ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๊ด์ฌ์ ๋๋ ์ฌ๋์ด ์๋ ์ํฉ์ ์ ์๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์คํธ๋ ์๋์ ๋ค๋จ์ด์ ธ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์๊ฐ์ ์๋นํด์ผ ํฉ๋๋ค. ๋ค์ ํ๋ฒ ๋ง์๋๋ฆฌ์ง๋ง, ๊ฒฝ๋ ฅ ์ด๊ธฐ์๋ ์๋นํ ์ด๋ ค์ด ์์ ์ด ๋ ์ ์์ต๋๋ค. ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ๋๊ตฌ๊ฐ ๋ฌด์์ธ์ง, ๋๊ตฌ๋ฅผ ์ ํ, ๊ตฌ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ํ๋ช ํ๊ฒ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ถ ํ ์คํฐ๋ DevOps(์ฌ๋)์๊ฒ ๋์์ ์์ฒญํ๋ฉฐ, ์์งํ๊ฒ ๋งํ๋ฉด ์ด ์ ๊ทผ ๋ฐฉ์์ด ํจ๊ณผ๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ชจ๋ ์ข ์์ฑ์ ๋ํ ๊ฐ์์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ ์ผํ ์ต์ ์ผ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ฏ์ด DevOps๋ ์กฐ์ง/ํ์ ๋ฐ๋ผ ํ์ฌ ์ ์ฒด์ ์ธํ๋ผ, ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง, ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ ๊ธฐํ ์ ์ฌํ ์์ ์ ์๊ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋ฐ์ ์ฌ๋์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ ๋ฏ์ด ์๋ํ๋ ์ฐ์ ์์๊ฐ ์๋๋๋ค. ๊ทธ๋ฌํ ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๋ ์ฒ์๋ถํฐ ๋๊น์ง ๊ฐ๋ฅํ ๋ชจ๋ ๋ ธ๋ ฅ์ ๋คํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์กด์ฑ์ด ์ค์ด๋ค๊ณ ์์ ํ๋ฆ ์๋๊ฐ ๋นจ๋ผ์ง๋ฉฐ ๊ธฐ์ ์ด ํฅ์๋๊ณ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ ํฐ ๊ทธ๋ฆผ์ ๋ณผ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด ๊ธฐ์ฌ์์๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ๋ฅผ ์๊ฐํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํ ์ธํ๋ผ๋ฅผ ๋จ๊ณ๋ณ๋ก ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ฐ ๊ทธ๋ฃน์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์ ํตํด ํ ์คํธ๋ ๋๊ตฌ๋ก ๋ํ๋ฉ๋๋ค. ํ์ง๋ง ๊ทธ๋ ๋ค๊ณ ํด์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํด์ผ ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๋๊ตฌ ์์ฒด๋ ์ค์ํ์ง ์์ผ๋ฉฐ ๋ํ๋๊ณ ์ธ๋ชจ ์๊ฒ ๋ฉ๋๋ค. ์ฐ๋ฆฌ์ ์์ง๋์ด๋ง ์๋ฌด๋ ๊ธฐ๋ณธ ์์น, ์ฆ ์ด ๋๊ตฌ ๊ทธ๋ฃน์ด ํ์ํ ์ด์ ์ ์ด ๋๊ตฌ์ ๋์์ผ๋ก ํด๊ฒฐํ ์ ์๋ ์์ ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ ์น์ ์ ๋์ ๊ทํ์ ์กฐ์ง์์ ์ฌ์ฉํ ์ ์๋ ์ ์ฌํ ๋๊ตฌ์ ๋ํ ๋งํฌ๋ฅผ ๋จ๊ฒจ ๋์์ต๋๋ค.
์ด ๊ธ์ ์๋ ๋ด์ฉ
์ด ๊ธฐ์ฌ๋ ํน์ ๋๊ตฌ์ ๊ดํ ๊ฒ์ด ์๋๋ฏ๋ก ๋ฌธ์ ๋ฐ ํน์ ๋ช ๋ น์ ๋ํ ์ค๋ช ์์ ์ฝ๋๋ฅผ ์ฝ์ ํ์ง ์์ ๊ฒ์์ ๋ค์ ํ ๋ฒ ๋ฐ๋ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ ์น์ ์ ๋ ๋ถ๋ถ์๋ ์์ธํ ์ฐ๊ตฌ๋ฅผ ์ํ ๋งํฌ๋ฅผ ๋จ๊ฒจ ๋ก๋๋ค.
์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ํ๋ฉ๋๋ค.
- ์ด ์๋ฃ๋ ๋ค์ํ ์์ค(๋ฌธ์, ์ฑ , ๋น๋์ค ๊ฐ์ข)์์ ๋งค์ฐ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
- ๋ ๊น์ด ๋ค์ด๊ฐ๋ ค๋ฉด ์ด ๊ธฐ์ฌ์ 10, 20, 30๊ฐ ๋ถ๋ถ์ ์์ฑํด์ผ ํฉ๋๋ค(๊ณํ์ 2-3๊ฐ์ ๋๋ค).
- ๋์ผํ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ์๋ ์์ผ๋ฏ๋ก ์๊ฐ์ ๋ญ๋นํ๊ณ ์ถ์ง ์์ต๋๋ค.
์ฐ์ต
์ ๋ ์ด ์๋ฃ๊ฐ ๋จ์ํ ์ฝ๊ณ ์ํ์ง๋ ๊ฒ์ด ์๋๋ผ ๋ชจ๋ ๋
์์๊ฒ ์ ์ฉํ๊ธธ ๋ฐ๋๋๋ค. ์ด๋ค ์ฐ๊ตฌ์์๋ ์ฐ์ต์ ๋งค์ฐ ์ค์ํ ์์์
๋๋ค. ์ด๋ฅผ ์ํด ๋ด๊ฐ ์ค๋นํ ๊ฒ์
๊ณํ
๋จ๊ณ
Technology
๋๊ตฌ
1
๋ก์ปฌ ์คํ(์น/์๋๋ก์ด๋ ๋ฐ๋ชจ ํ
์คํธ ์ค๋น ๋ฐ ๋ก์ปฌ ์คํ)
Node.js, ์
๋ ๋, Appium
2
๋ฒ์ ๊ด๋ฆฌ ์์คํ
ํ๋ด
3
์ปจํ
์ด๋ํ
Docker, Selenium ๊ทธ๋ฆฌ๋, Selenoid(์น, Android)
4
CI/CD
๊น๋ฉ CI
5
ํด๋ผ์ฐ๋ ํ๋ซํผ
Google Cloud Platform
6
์ค์ผ์คํธ๋ ์ด์
Kubernetes
7
์ฝ๋ํ ์ธํ๋ผ(IaC)
ํ
๋ผํผ, ์ค์๋ธ
๊ฐ ์น์ ์ ๊ตฌ์กฐ
๋ด๋ฌํฐ๋ธ๋ฅผ ๋ช ํํ๊ฒ ์ ์งํ๊ธฐ ์ํด ๊ฐ ์น์ ์ ๋ค์ ๊ฐ์์ ๋ฐ๋ผ ์ค๋ช ๋ฉ๋๋ค.
- ๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช ,
- ์๋ํ ์ธํ๋ผ์ ๊ฐ์น,
- ์ธํ๋ผ์ ํ์ฌ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ฆผ,
- ๊ณต๋ถ ๋งํฌ,
- ๋น์ทํ ๋๊ตฌ.
1. ๋ก์ปฌ์์ ํ ์คํธ ์คํ
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
์ด๋ ๋ก์ปฌ์์ ๋ฐ๋ชจ ํ ์คํธ๋ฅผ ์คํํ๊ณ ํ ์คํธ๊ฐ ํต๊ณผํ๋์ง ํ์ธํ๊ธฐ ์ํ ์ค๋น ๋จ๊ณ์ผ ๋ฟ์ ๋๋ค. ์ค๋ฌด์ ์ธ ๋ถ๋ถ์์๋ Node.js๋ฅผ ์ฌ์ฉํ์ง๋ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํ๋ซํผ๋ ์ค์ํ์ง ์์ผ๋ฉฐ ํ์ฌ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์๋ํ ๋๊ตฌ๋ก๋ ์น ํ๋ซํผ์ฉ Selenium WebDriver์ Android ํ๋ซํผ์ฉ Appium์ ๊ฐ๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ค์ ๋จ๊ณ์์๋ ์ด๋ฌํ ๋๊ตฌ์ ํน๋ณํ ์๋ํ๋๋ก ๋ง์ถคํ๋ Docker ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ํ ์์ ์๊ตฌ ์ฌํญ์ ์ฐธ์กฐํ๋ฉด ์ด๋ฌํ ๋๊ตฌ๋ ์์ฅ์์ ๊ฐ์ฅ ์์๊ฐ ๋ง์ต๋๋ค.
์์๋ค์ํผ ์ฐ๋ฆฌ๋ ์น ๋ฐ Android ํ ์คํธ๋ง ๊ณ ๋ คํฉ๋๋ค. ๋ถํํ๊ฒ๋ iOS๋ ์์ ํ ๋ค๋ฅธ ์ด์ผ๊ธฐ์ ๋๋ค(Apple์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค). ์์ผ๋ก๋ IOS ๊ด๋ จ ์๋ฃจ์ ๊ณผ ์ฌ๋ก๋ฅผ ์ ๋ณด์ผ ๊ณํ์ ๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
์ธํ๋ผ ๊ด์ ์์ ๋ก์ปฌ๋ก ์คํํ๋ ๊ฒ์ ์ด๋ค ๊ฐ์น๋ ์ ๊ณตํ์ง ์์ต๋๋ค. ๋ก์ปฌ ๋ธ๋ผ์ฐ์ ์ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์ปดํจํฐ์์ ํ ์คํธ๊ฐ ์คํ๋๋์ง๋ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ ์ด๊ฒ์ ํ์ํ ์ถ๋ฐ์ ์ด๋ค.
์ธํ๋ผ ํํฉ ์์
ํ์ํ ๋งํฌ
์ ์ฌํ ๋๊ตฌ
- Selenium/Appium ํ ์คํธ์ ํจ๊ป ์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด;
- ๋ชจ๋ ํ ์คํธ;
- ๋ชจ๋ ํ ์คํธ ๋ฌ๋.
2. ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Git)
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
๋ฒ์ ์ ์ด๊ฐ ํ์์๋ ๊ฐ์ธ ๋ชจ๋์์ ๊ฐ๋ฐ์ ์์ด ๋งค์ฐ ์ค์ํ ๋ถ๋ถ์ด๋ผ๊ณ ๋งํ๋ค๋ฉด ๋๊ตฌ์๊ฒ๋ ํฐ ํญ๋ก๊ฐ ์๋ ๊ฒ์ ๋๋ค. ๋ค์ํ ์์ค์ ๋ฐ๋ฅด๋ฉด Git์ด ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ํ์์ด๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋๋๋ค. ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ฝ๋ ๊ณต์ , ๋ฒ์ ์ ์ฅ, ์ด์ ๋ธ๋์น๋ก ๋ณต์, ํ๋ก์ ํธ ๊ธฐ๋ก ๋ชจ๋ํฐ๋ง, ๋ฐฑ์ ๋ฑ ๋ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ ์ฌํญ์ ๋ํด ์์ธํ ๋ ผ์ํ์ง๋ ์๊ฒ ์ต๋๋ค. ์ฌ๋ฌ๋ถ์ด ํด๋น ๋ด์ฉ์ ๋งค์ฐ ์ต์ํ๊ณ ์ผ์ ์ ๋ฌด์ ํ์ฉํ๊ณ ๊ณ์๋ฆฌ๋ผ ๋ฏฟ์ต๋๋ค. ํ์ง๋ง ๊ฐ์๊ธฐ ๊ทธ๋ ์ง ์๋ค๋ฉด ์ด ๊ธฐ์ฌ ์ฝ๊ธฐ๋ฅผ ์ ์ ๋ฉ์ถ๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ด ๊ณต๋ฐฑ์ ๋ฉ์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์์ ํฉ๋ฆฌ์ ์ธ ์ง๋ฌธ์ ํ ์ ์์ต๋๋ค. โ์ ๊ทธ๊ฐ ์ฐ๋ฆฌ์๊ฒ Git์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฑธ๊น์? ๋ชจ๋๊ฐ ์ด๊ฒ์ ์๊ณ ๊ฐ๋ฐ ์ฝ๋์ ์๋ ํ ์คํธ ์ฝ๋ ๋ชจ๋์ ์ฌ์ฉํฉ๋๋ค.โ ์ ์ ์ผ๋ก ์ณ์ผ์ค ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ด ๊ธฐ์ฌ์์๋ ์ธํ๋ผ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ผ๋ฉฐ ์ด ์น์ ์ ์น์ 7: "IaC(์ฝ๋ํ ์ธํ๋ผ)"์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ญํ ์ ํฉ๋๋ค. ์ฐ๋ฆฌ์๊ฒ ์ด๋ ํ ์คํธ๋ฅผ ํฌํจํ ์ ์ฒด ์ธํ๋ผ๊ฐ ์ฝ๋ ํ์์ผ๋ก ์ค๋ช ๋๋ฏ๋ก ์ฌ๊ธฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ ์ฉํ๊ณ ๊ฐ๋ฐ ๋ฐ ์๋ํ ์ฝ๋์ ์ ์ฌํ ์ด์ ์ ์ป์ ์๋ ์์์ ์๋ฏธํฉ๋๋ค.
IaC์ ๋ํด์๋ 7๋จ๊ณ์์ ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ง๋ง ์ง๊ธ๋ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์์ฑํ์ฌ ๋ก์ปฌ์์ Git ์ฌ์ฉ์ ์์ํ ์ ์์ต๋๋ค. ์ธํ๋ผ์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ถ๊ฐํ๋ฉด ํฐ ๊ทธ๋ฆผ์ด ํ์ฅ๋ฉ๋๋ค.
์ธํ๋ผ ํํฉ ์์
ํ์ํ ๋งํฌ
์ ์ฌํ ๋๊ตฌ
3. ์ปจํ ์ด๋ํ(Docker)
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
์ปจํ ์ด๋ํ๊ฐ ๊ฒ์์ ๊ท์น์ ์ด๋ป๊ฒ ๋ณํ์์ผฐ๋์ง ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์์ญ ๋ ์ ์ผ๋ก ๋์๊ฐ ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ ๋น์ ์ฌ๋๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํด ์๋ฒ ์์คํ ์ ๊ตฌ์ ํ๊ณ ์ฌ์ฉํ์ต๋๋ค. ํ์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ์ํ ์คํํธ์ ์์์ด ์ฌ์ ์ ์๋ ค์ง์ง ์์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธฐ์ ์์๋ ๊ฐ๋น์ธ๊ณ ๊ฐ๋ ฅํ ์๋ฒ๋ฅผ ๊ตฌ์ ํ๋ ๋ฐ ๋น์ฉ์ ์ง์ถํ์ง๋ง ์ด ์ฉ๋ ์ค ์ผ๋ถ๋ ์์ ํ ํ์ฉ๋์ง ์์์ต๋๋ค.
์งํ์ ๋ค์ ๋จ๊ณ๋ ์ฌ์ฉํ์ง ์๋ ๋ฆฌ์์ค์ ๋ํ ๋น์ฉ ๋ญ๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฐ์ ๋จธ์ (VM)์ด์์ต๋๋ค. ์ด ๊ธฐ์ ์ ํตํด ๋์ผํ ์๋ฒ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์คํํ ์ ์์ด ์์ ํ ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์ ํ ๋นํ ์ ์๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ถํํ๋ ๋ชจ๋ ๊ธฐ์ ์๋ ๋จ์ ์ด ์์ต๋๋ค. VM์ ์คํํ๋ ค๋ฉด CPU, RAM, ์คํ ๋ฆฌ์ง๋ฅผ ์๋นํ๋ ์ ์ฒด ์ด์ ์ฒด์ ๊ฐ ํ์ํ๋ฉฐ OS์ ๋ฐ๋ผ ๋ผ์ด์ ์ค ๋น์ฉ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์์๋ ๋ก๋ฉ ์๋์ ์ํฅ์ ๋ฏธ์น๊ณ ํด๋์ฑ์ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
์ด์ ์ปจํ ์ด๋ํ์ ์ด๋ฅด๋ ์ต๋๋ค. ๋ค์ ํ๋ฒ, ์ด ๊ธฐ์ ์ ์ปจํ ์ด๋๊ฐ ์ ์ฒด OS๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ ๋ง์ ์์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ๊ณ ์ด์์ฑ์ ์ํ ๋น ๋ฅด๊ณ ์ ์ฐํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
๋ฌผ๋ก ์ปจํ ์ด๋ํ ๊ธฐ์ ์ ์๋ก์ด ๊ฒ์ด ์๋๋ฉฐ 70๋ ๋ ํ๋ฐ์ ์ฒ์ ์๊ฐ๋์์ต๋๋ค. ๊ทธ ๋น์์๋ ๋ง์ ์ฐ๊ตฌ์ ๊ฐ๋ฐ, ์๋๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค. ํ์ง๋ง ์ด ๊ธฐ์ ์ ์ฑํํ์ฌ ๋์ค์ด ์ฝ๊ฒ ์ ๊ทผํ ์ ์๊ฒ ๋ง๋ ๊ฒ์ Docker์์ต๋๋ค. ์์ฆ ์ปจํ ์ด๋์ ๊ดํด ์ด์ผ๊ธฐํ ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ Docker๋ฅผ ์๋ฏธํฉ๋๋ค. Docker ์ปจํ ์ด๋๋ Linux ์ปจํ ์ด๋๋ฅผ ์๋ฏธํฉ๋๋ค. Windows ๋ฐ macOS ์์คํ ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์์ง๋ง ์ด ๊ฒฝ์ฐ ์ถ๊ฐ ๋ ์ด์ด๊ฐ ๋ํ๋๋ค๋ ์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Mac์ Docker๋ ๊ฒฝ๋ Linux VM ๋ด์์ ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ์คํํฉ๋๋ค. ์ปจํ ์ด๋ ๋ด์์ Android ์๋ฎฌ๋ ์ดํฐ ์คํ์ ๋ ผ์ํ ๋ ์ด ์ฃผ์ ๋ก ๋์๊ฐ ๊ฒ์ด๋ฏ๋ก ์ฌ๊ธฐ์๋ ๋ ์์ธํ ๋ ผ์ํด์ผ ํ ๋งค์ฐ ์ค์ํ ๋์์ค๊ฐ ์์ต๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
์ฐ๋ฆฌ๋ ์ปจํ ์ด๋ํ์ Docker๊ฐ ํ๋ฅญํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๋ชจ๋ ๋๊ตฌ๋ ๊ธฐ์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์๋ํ์ ๋งฅ๋ฝ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. UI ํ ์คํธ์ ๋งฅ๋ฝ์์ ํ ์คํธ ์๋ํ์ ๋ช ๋ฐฑํ ๋ฌธ์ ๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
- Selenium, ํนํ Appium์ ์ค์นํ ๋ ์๋ง์ ์ข ์์ฑ์ด ๋ฐ์ํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ , ์๋ฎฌ๋ ์ดํฐ ๋ฐ ๋๋ผ์ด๋ฒ ๋ฒ์ ๊ฐ์ ํธํ์ฑ ๋ฌธ์
- ๋ธ๋ผ์ฐ์ /์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ํ ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉฐ ์ด๋ ๋ณ๋ ฌ ์คํ์ ํนํ ์ค์ํฉ๋๋ค.
- 10๊ฐ, 50๊ฐ, 100๊ฐ ๋๋ ์ฌ์ง์ด 1000๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์์ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ด๋ฆฌ ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ด๋ ต์ต๋๋ค.
๊ทธ๋ฌ๋ Selenium์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์๋ํ ๋๊ตฌ์ด๊ณ Docker๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ปจํ ์ด๋ํ ๋๊ตฌ์ด๋ฏ๋ก ์์์ ์ธ๊ธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋๊ตฐ๊ฐ ๋ ๊ฐ์ง๋ฅผ ๊ฒฐํฉํ๋ ค๊ณ ์๋ํ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ์ด๋ฌํ ์๋ฃจ์ ์ ๋ ์์ธํ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค.
๋์ปค์ ์ ๋ ๋ ๊ทธ๋ฆฌ๋
์ด ๋๊ตฌ๋ ์ฌ๋ฌ ์์คํ ์์ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํํ๊ณ ์ค์ ํ๋ธ์์ ๊ด๋ฆฌํ๊ธฐ ์ํด Selenium ์ธ๊ณ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์์ํ๋ ค๋ฉด ์ต์ํ 2๊ฐ์ ๋ถ๋ถ(ํ๋ธ ๋ฐ ๋ ธ๋)์ ๋ฑ๋กํด์ผ ํฉ๋๋ค. ํ๋ธ๋ ํ ์คํธ์์ ๋ชจ๋ ์์ฒญ์ ์์ ํ๊ณ ์ด๋ฅผ ์ ์ ํ ๋ ธ๋์ ๋ฐฐํฌํ๋ ์ค์ ๋ ธ๋์ ๋๋ค. ๊ฐ ๋ ธ๋์ ๋ํด ์ํ๋ ๋ธ๋ผ์ฐ์ ์ ๋ฒ์ ์ ์ง์ ํ๋ ๋ฑ ํน์ ๊ตฌ์ฑ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ํธํ๋๋ ๋ธ๋ผ์ฐ์ ๋๋ผ์ด๋ฒ๋ฅผ ์ง์ ๊ด๋ฆฌํ๊ณ ์ํ๋ ๋ ธ๋์ ์ค์นํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก Selenium ๊ทธ๋ฆฌ๋๋ Linux OS์ ์ค์นํ ์ ์๋ ๋ธ๋ผ์ฐ์ ๋ก ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ์์ํ ํํ๋ก ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ์ฐ์ ๊ฒฝ์ฐ ๋งค์ฐ ์ ์ฐํ๊ณ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ Docker ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ Selenium ๊ทธ๋ฆฌ๋ ํ๋ธ ๋ฐ ๋ ธ๋๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ด๋ฏธ ์ค์น๋ ๋ธ๋ผ์ฐ์ ๋ฐ ๋๋ผ์ด๋ฒ์ ํธํ ๊ฐ๋ฅํ ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ํ์ํ ์ด๋ฏธ์ง๋ฅผ ์ ํํ ์ ์์ผ๋ฏ๋ก ๋ ธ๋ ๊ด๋ฆฌ๋ฅผ ํฌ๊ฒ ๋จ์ํํฉ๋๋ค.
ํนํ ๋ค์์ ๋ ธ๋๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ ๋ ์์ ์ฑ์ ๋ํ ๋ถ์ ์ ์ธ ํ๊ฐ์๋ ๋ถ๊ตฌํ๊ณ Selenium ๊ทธ๋ฆฌ๋๋ ์ฌ์ ํ Selenium ํ ์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๋ ๋ฐ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ์ ๋๋ค. ๋ค์ํ ๋ณ๋ชฉ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด ์ด ๋๊ตฌ์ ๋ค์ํ ๊ฐ์ ๋ฐ ์์ ์ด ์คํ ์์ค์ ์ง์์ ์ผ๋ก ๋ํ๋๊ณ ์๋ค๋ ์ ์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์น์ฉ ์ ๋ ๋ ธ์ด๋
์ด ๋๊ตฌ๋ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ๋ง์ ์๋ํ ์์ง๋์ด์ ์ถ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ค์ด ์ฃผ์๊ธฐ ๋๋ฌธ์ Selenium ์ธ๊ณ์์ ํ๊ธฐ์ ์ธ ๊ฒ์ ๋๋ค. ์ฐ์ , ์ด๊ฒ์ Selenium ๊ทธ๋ฆฌ๋์ ๋ ๋ค๋ฅธ ์์ ์ด ์๋๋๋ค. ๋์ ๊ฐ๋ฐ์๋ค์ Golang์์ ์์ ํ ์๋ก์ด ๋ฒ์ ์ Selenium Hub๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ด ๋ฒ์ ์ ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ฉ ๊ฒฝ๋ Docker ์ด๋ฏธ์ง์ ๊ฒฐํฉ๋์ด ํ ์คํธ ์๋ํ ๊ฐ๋ฐ์ ๋ฐ์ฐจ๋ฅผ ๊ฐํ์ต๋๋ค. ๊ฒ๋ค๊ฐ Selenium Grid์ ๊ฒฝ์ฐ ํ์ํ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ ํด๋น ๋ฒ์ ์ ๋ฏธ๋ฆฌ ๊ฒฐ์ ํด์ผ ํ๋๋ฐ ์ด๋ ํ๋์ ๋ธ๋ผ์ฐ์ ๋ก๋ง ์์ ํ ๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง์๋๋ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์ ๊ฒฝ์ฐ Selenoid๋ '์ฃผ๋ฌธํ ๋ธ๋ผ์ฐ์ ' ๊ธฐ๋ฅ ๋๋ถ์ ์ต๊ณ ์ ์๋ฃจ์ ์ ๋๋ค. ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฒ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ค์ด๋ก๋ํ๊ณ Selenoid๊ฐ ์ํธ ์์ฉํ๋ ๊ตฌ์ฑ ํ์ผ์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋๋ค. Selenoid๋ ํ ์คํธ์์ ์์ฒญ์ ๋ฐ์ ํ ์ํ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ์์ํฉ๋๋ค. ํ ์คํธ๊ฐ ์๋ฃ๋๋ฉด Selenoid๋ ์ปจํ ์ด๋๋ฅผ ํ๊ธฐํ์ฌ ํฅํ ์์ฒญ์ ์ํ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ Selenium ๊ทธ๋ฆฌ๋์์ ์์ฃผ ๋ฐ์ํ๋ '๋ ธ๋ ์ฑ๋ฅ ์ ํ'๋ผ๋ ์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ์์ ํ ์ ๊ฑฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์์ฝ๊ฒ๋ ์ ๋ ๋ ธ์ด๋๋ ์์ง ๋ง๋ฅ์ด ์๋๋๋ค. '์ฃผ๋ฌธํ ๋ธ๋ผ์ฐ์ ' ๊ธฐ๋ฅ์ด ์์ง๋ง '์ฃผ๋ฌธํ ๋ฆฌ์์ค' ๊ธฐ๋ฅ์ ์์ง ์ฌ์ฉํ ์ ์์ต๋๋ค. Selenoid๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ฌผ๋ฆฌ์ ํ๋์จ์ด๋ VM์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค. ์ฆ, ์ผ๋ง๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ ๋นํด์ผ ํ๋์ง ๋ฏธ๋ฆฌ ์์์ผ ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด 10๊ฐ, 20๊ฐ, ์ฌ์ง์ด 30๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๋ ์๊ท๋ชจ ํ๋ก์ ํธ์์๋ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง 100, 500, 1000 ๋ฑ์ด ํ์ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ํญ์ ๊ทธ๋ ๊ฒ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ ์งํ๊ณ ๋น์ฉ์ ์ง๋ถํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด ๊ธฐ์ฌ์ ์น์ 5์ 6์์๋ ํ์ฅ์ ํตํด ํ์ฌ ๋น์ฉ์ ํฌ๊ฒ ์ ๊ฐํ ์ ์๋ ์๋ฃจ์ ์ ๋ํด ๋ ผ์ํฉ๋๋ค.
์๋๋ก์ด๋์ฉ ์ ๋ ๋ ธ์ด๋
์น ์๋ํ ๋๊ตฌ๋ก์ Selenoid๊ฐ ์ฑ๊ณตํ ํ ์ฌ๋๋ค์ Android์์๋ ๋น์ทํ ๊ฒ์ ์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ผ์ด๋ฌ์ต๋๋ค - Selenoid๋ Android ์ง์๊ณผ ํจ๊ป ์ถ์๋์์ต๋๋ค. ๋์ ์์ค์ ์ฌ์ฉ์ ๊ด์ ์์ ๋ณด๋ฉด ์๋ ์๋ฆฌ๋ ์น ์๋ํ์ ์ ์ฌํฉ๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ๋ธ๋ผ์ฐ์ ์ปจํ ์ด๋ ๋์ Selenoid๊ฐ Android ์๋ฎฌ๋ ์ดํฐ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ด ์๊ฐ์ ์ด๊ฒ์ ํ์ฌ Android ํ ์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๊ธฐ ์ํ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๋ฌด๋ฃ ๋๊ตฌ์ ๋๋ค.
์ ๋ ์ด ๋๊ตฌ๋ฅผ ์ ๋ง ์ข์ํ๊ธฐ ๋๋ฌธ์ ์ด ๋๊ตฌ์ ๋ถ์ ์ ์ธ ์ธก๋ฉด์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์น ์๋ํ์ ์ ์ฉ๋๊ณ ํ์ฅ๊ณผ ๊ด๋ จ๋ ๋์ผํ ๋จ์ ์ด ์์ต๋๋ค. ์ด ์ธ์๋ ์ฒ์์ผ๋ก ๋๊ตฌ๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ ๋๋ ์ ์๋ ํ ๊ฐ์ง ์ ํ ์ฌํญ์ ๋ํด ๋ ์ด์ผ๊ธฐํด์ผ ํฉ๋๋ค. Android ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ ค๋ฉด ์ค์ฒฉ๋ ๊ฐ์ํ๋ฅผ ์ง์ํ๋ ๋ฌผ๋ฆฌ์ ๋จธ์ ์ด๋ VM์ด ํ์ํฉ๋๋ค. ๋ฐฉ๋ฒ ๊ฐ์ด๋์์๋ Linux VM์์ ์ด๋ฅผ ํ์ฑํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ฌ๋ macOS ์ฌ์ฉ์์ด๊ณ Selenoid๋ฅผ ๋ก์ปฌ๋ก ๋ฐฐํฌํ๋ ค๋ ๊ฒฝ์ฐ Android ํ ์คํธ๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ '์ค์ฒฉ ๊ฐ์ํ'๊ฐ ๊ตฌ์ฑ๋ ์ํ์์ ํญ์ Linux VM์ ๋ก์ปฌ๋ก ์คํํ๊ณ ๋ด๋ถ์ Selenoid๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ธํ๋ผ ํํฉ ์์
์ด ๊ธฐ์ฌ์ ๋งฅ๋ฝ์์ ์ธํ๋ผ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด ๋ ๊ฐ์ง ๋๊ตฌ๋ฅผ ์ถ๊ฐํ ๊ฒ์ ๋๋ค. ์ด๋ ์น ํ ์คํธ์ฉ Selenium ๊ทธ๋ฆฌ๋์ Android ํ ์คํธ์ฉ Selenoid์ ๋๋ค. GitHub ํํ ๋ฆฌ์ผ์์๋ Selenoid๋ฅผ ์ฌ์ฉํ์ฌ ์น ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ๋ ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
ํ์ํ ๋งํฌ
Docker: ์ปจํ ์ด๋๊ฐ ๋ฌด์์ธ๊ฐ์? ๋์ปค: ์์ํ๋ค Docker์ 5๊ฐ์ง ์ปจํ ์ด๋ ๋์ ์ ๋ ๋ ๊ทธ๋ฆฌ๋ ์ ๋ ๋ ๋์ปค ์ ๋ ๋ ธ์ด๋ ์ ๋ ๋ ธ์ด๋ Github Android ์๋ฎฌ๋ ์ดํฐ์ฉ KVM ์ค์ Docker ์ฌ์ธต ๋ถ์ ์ฑ
์ ์ฌํ ๋๊ตฌ
- ๋ค๋ฅธ ์ปจํ ์ด๋ํ ๋๊ตฌ๋ ์์ง๋ง Docker๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ค๋ฅธ ๊ฒ์ ์๋ํ๊ณ ์ถ๋ค๋ฉด Selenium ํ ์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๊ธฐ ์ํด ๋ค๋ฃฌ ๋๊ตฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ์ง ์๋๋ค๋ ์ ์ ๋ช ์ฌํ์ธ์.
- ์ด๋ฏธ ๋งํ๋ฏ์ด Selenium ๊ทธ๋ฆฌ๋์๋ ๋ง์ ์์ ์ฌํญ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ ๋ .
4.CI/CD
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
์ง์์ ์ธ ํตํฉ์ ๊ดํ์ ๊ฐ๋ฐ์์ ๋งค์ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ ๋ฒ์ ์ ์ด ์์คํ ๊ณผ ๋๋ฑํฉ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฉ์ด์ ํผ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋จ๋ฝ์์๋ ๋ด ๊ด์ ์์ ๋ณธ ๊ธฐ์ ์ 3๊ฐ์ง ์์ ์ฌํญ์ ์ค๋ช ํ๊ณ ์ถ์ต๋๋ค. ์ธํฐ๋ท์์๋ ํด์์ด ๋ค๋ฅธ ๋ง์ ๊ธฐ์ฌ๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉฐ, ๊ทํ์ ์๊ฒฌ์ด ๋ค๋ฅธ ๊ฒ์ ์ ๋์ ์ผ๋ก ์ ์์ ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋๋ฃ๋ค๊ณผ ๊ฐ์ ํ์ด์ง์ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ CI(์ง์์ ํตํฉ), CD(์ง์์ ์ ๋ฌ), CD(์ง์์ ๋ฐฐํฌ)๋ผ๋ 3๊ฐ์ง ์ฉ์ด๊ฐ ์์ต๋๋ค. (์๋์์๋ ์ด ์ฉ์ด๋ฅผ ์์ด๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค.). ๊ฐ ์์ ์ ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์ ๋ช ๊ฐ์ง ์ถ๊ฐ ๋จ๊ณ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๋ง์ ๋์์๋ (๊ณ์)์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ด ๋งฅ๋ฝ์์ ์ฐ๋ฆฌ๋ ์ค๋จ์ด๋ ์๋ ๊ฐ์ ์์ด ์ฒ์๋ถํฐ ๋๊น์ง ์ผ์ด๋๋ ์ผ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฐ ๋งฅ๋ฝ์์ CI&CD์ CD๋ฅผ ์ดํด๋ณด์.
- ์ง์์ ์ธ ํตํฉ ์ด๊ฒ์ด ์งํ์ ์ด๊ธฐ ๋จ๊ณ์ด๋ค. ์ ์ฝ๋๋ฅผ ์๋ฒ์ ์ ์ถํ ํ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ด์ฐฎ๋ค๋ ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก CI์๋ ์ ์ ์ฝ๋ ๋ถ์ ๋๊ตฌ ๋ฐ ๋จ์/๋ด๋ถ API ํ ์คํธ ์คํ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ๋ช ์ด/๋ถ ๋ด์ ์ฝ๋์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ์ฐ์ ๋ฐฐ๋ฌ ํตํฉ/UI ํ ์คํธ๋ฅผ ์คํํ๋ ๊ณ ๊ธ ๋จ๊ณ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋จ๊ณ์์๋ CI๋งํผ ๋นจ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ฒซ์งธ, ์ด๋ฌํ ์ ํ์ ํ ์คํธ๋ ์๋ฃํ๋ ๋ฐ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ๋์งธ, ์ถ์ํ๊ธฐ ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ ์คํธ/์คํ ์ด์ง ํ๊ฒฝ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค. ๋ํ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์ ๊ดํด ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋น๋๋ฅผ ์์ฑํ๋ ์ถ๊ฐ ๋จ๊ณ๊ฐ ๋ํ๋ฉ๋๋ค.
- ์ง์์ ์ธ ๋ฐฐํฌ ์ด์ ๋จ๊ณ์์ ๋ชจ๋ ์น์ธ ํ ์คํธ๋ฅผ ํต๊ณผํ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก๋์ ์ ์๋์ผ๋ก ๋ฆด๋ฆฌ์คํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด ์ธ์๋ ๋ฆด๋ฆฌ์ค ๋จ๊ณ ์ดํ์๋ ํ๋ก๋์ ์์ ์ค๋ชจํฌ ํ ์คํธ๋ฅผ ์คํํ๊ณ ๊ด์ฌ ์งํ๋ฅผ ์์งํ๋ ๋ฑ ๋ค์ํ ๋จ๊ณ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ง์์ ์ธ ๋ฐฐํฌ๋ ์๋ํ๋ ํ ์คํธ๋ฅผ ํตํด ์ ์ฉ ๋ฒ์๊ฐ ์ํธํ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค. ํ ์คํธ๋ฅผ ํฌํจํ์ฌ ์๋ ๊ฐ์ ์ด ํ์ํ ๊ฒฝ์ฐ ๋ ์ด์ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋์์๋ (๋ง๋ ์๋). ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ ํ์ดํ๋ผ์ธ์ Continuous Delivery ๊ดํ๋ง ์ค์ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
์ด ์น์ ์์๋ ์๋ํฌ์๋ UI ํ ์คํธ์ ๊ดํด ์ด์ผ๊ธฐํ ๋ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๊ด๋ จ ์๋น์ค๋ฅผ ํ ์คํธ ํ๊ฒฝ์ ๋ฐฐํฌํด์ผ ํจ์ ์๋ฏธํ๋ค๋ ์ ์ ๋ช ํํ ํด์ผ ํฉ๋๋ค. ์ง์์ ์ธ ํตํฉ - ํ๋ก์ธ์ค๋ ์ด ์์ ์ ์ ์ฉ๋์ง ์์ผ๋ฉฐ ์ต์ํ ์ง์์ ์ธ ์ ๋ฌ ๋ฐฉ์์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ง์์ ์ธ ๋ฐฐํฌ๋ ํ๋ก๋์ ์์ UI ํ ์คํธ๋ฅผ ์คํํ๋ ค๋ ๊ฒฝ์ฐ UI ํ ์คํธ์ ๋งฅ๋ฝ์์๋ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ํคํ ์ฒ ๋ณ๊ฒฝ์ ๋ํ ๊ทธ๋ฆผ์ ๋ณด๊ธฐ ์ ์ GitLab CI์ ๋ํด ๋ช ๋ง๋ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๋ค๋ฅธ CI/CD ๋๊ตฌ์ ๋ฌ๋ฆฌ GitLab์ ์๊ฒฉ ์ ์ฅ์์ ๊ธฐํ ์ฌ๋ฌ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ GitLab์ CI ๊ทธ ์ด์์ ๋๋ค. ์ฌ๊ธฐ์๋ ์์ค ์ฝ๋ ๊ด๋ฆฌ, ๋ฏผ์ฒฉํ ๊ด๋ฆฌ, CI/CD ํ์ดํ๋ผ์ธ, ๋ก๊น ๋๊ตฌ ๋ฐ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉํธ๋ฆญ ์์ง์ด ํฌํจ๋ฉ๋๋ค. GitLab ์ํคํ ์ฒ๋ Gitlab CI/CD์ GitLab Runner๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ณต์ ํํ์ด์ง์ ์๋ ๊ฐ๋จํ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Gitlab CI/CD๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ์ ์ฅํ๊ณ , ํ๋ก์ ํธ/๋น๋๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ API๊ฐ ํฌํจ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. GitLab Runner๋ ๋น๋๋ฅผ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ๋ณ๋๋ก ๋ฐฐํฌํ ์ ์์ผ๋ฉฐ API๋ฅผ ํตํด GitLab CI/CD์ ํจ๊ป ์๋ํฉ๋๋ค. ํ ์คํธ๋ฅผ ์คํํ๋ ค๋ฉด Gitlab ์ธ์คํด์ค์ Runner๊ฐ ๋ชจ๋ ํ์ํฉ๋๋ค.
์ธํ๋ผ ํํฉ ์์
ํ์ํ ๋งํฌ
์ ์ฌํ ๋๊ตฌ
์ ํจ์ค TeamCity ํธ๋๋น์ค - ๊ทธ๋ฆฌ๊ณ ๋ง์ ๋ค๋ฅธ ์ฌ๋๋ค
5. ํด๋ผ์ฐ๋ ํ๋ซํผ
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
์ด๋ฒ ์น์ ์์๋ 'ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋'๋ผ๋ ๋์ค์ ์ธ ํธ๋ ๋์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ์์์ ์ค๋ช ํ ๊ฐ์ํ ๋ฐ ์ปจํ ์ด๋ํ ๊ธฐ์ ์ด ์ ๊ณตํ๋ ์์ฒญ๋ ์ด์ ์๋ ๋ถ๊ตฌํ๊ณ ์ฌ์ ํ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. ํ์ฌ๋ ๊ฐ๋น์ผ ์๋ฒ๋ฅผ ๊ตฌ์ ํ๊ฑฐ๋ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ์๋ํ์ง๋ง, ์ด ๊ฒฝ์ฐ ํ์ํ ๋ฆฌ์์ค์ ์, ์ฐ์ค๋ฌดํด 24์๊ฐ ์ฌ์ฉํ ์ง, ์ด๋ค ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ์ง ๊ณ์ฐํด์ผ ํฉ๋๋ค(๋๋ก๋ ๋นํ์ค์ ์). ์๋ฅผ ๋ค์ด ํ๋ก๋์ ์๋ ์ฐ์ค๋ฌดํด 7์๊ฐ ์คํ๋๋ ์๋ฒ๊ฐ ํ์ํ์ง๋ง ๊ทผ๋ฌด ์๊ฐ ์ธ์ ํ ์คํธํ๋ ค๋ฉด ์ ์ฌํ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๊น? ๋ํ ์ํ๋๋ ํ ์คํธ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ค์ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ์ ๋ฌด ์ธ ์๊ฐ์ ์คํํ ๋ถํ/์คํธ๋ ์ค ํ ์คํธ๋ฅผ ์๋ก ๋ค ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ข ๋จ ๊ฐ ์๋ํ ํ ์คํธ์๋ ํ์คํ XNUMX/XNUMX ์๋ฒ ๊ฐ์ฉ์ฑ์ด ํ์ํ์ง ์์ผ๋ฉฐ ํนํ ์๋ ํ ์คํธ ํ๊ฒฝ์๋ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌํ ์ํฉ์์๋ ํ์์ ๋ฐ๋ผ ํ์ํ ๋งํผ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ์ฌ ์ฌ์ฉํ๊ณ ๋ ์ด์ ํ์ํ์ง ์์ ๋ ์ง๋ถ์ ์ค๋จํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฒ๋ค๊ฐ ๋ง์ฐ์ค ํด๋ฆญ ๋ช ๋ฒ์ด๋ ์คํฌ๋ฆฝํธ ๋ช ๊ฐ๋ง ์คํํ๋ฉด ๋ฐ๋ก ๋ฐ์๋ณผ ์ ์๋ค๋ ์ ๋ ์ข์ ๊ฒ ๊ฐ์์. ์ด๊ฒ์ด ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๊ฐ ์ฌ์ฉ๋๋ ์ด์ ์ ๋๋ค. ์ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
โํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ ์ XNUMX์ ์ ๊ณต์ ์ฒด๊ฐ ๊ณต์ฉ ์ธํฐ๋ท์ ํตํด ์ ๊ณตํ๋ ์ปดํจํ ์๋น์ค๋ก ์ ์๋๋ฉฐ ์ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๊ตฌ๋งคํ๋ ค๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฌด๋ฃ์ด๊ฑฐ๋ ์ฃผ๋ฌธํ์ผ๋ก ํ๋งค๋ ์ ์์ผ๋ฏ๋ก ๊ณ ๊ฐ์ ์๋นํ๋ CPU ์ฃผ๊ธฐ, ์คํ ๋ฆฌ์ง ๋๋ ๋์ญํญ์ ๋ํ ์ฌ์ฉ๋์ ๋ํด์๋ง ๋น์ฉ์ ์ง๋ถํ ์ ์์ต๋๋ค."
ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ ๋น์ธ๋ค๋ ์๊ฒฌ์ด ์๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ํต์ฌ ์์ด๋์ด๋ ํ์ฌ ๋น์ฉ์ ์ค์ด๋ ๊ฒ์ ๋๋ค. ์์ ์ธ๊ธํ๋ฏ์ด ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๋ฉด ํ์์ ๋ฐ๋ผ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ๊ณ ์ฌ์ฉํ ์๊ฐ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ ์ ์์ต๋๋ค. ๋ํ ์ง์์ด ๊ธ์ฌ๋ฅผ ๋ฐ๊ณ ์ ๋ฌธ๊ฐ๋ ๊ฐ ๋น์ผ ์์์ด๋ผ๋ ์ฌ์ค์ ๋๋๋ก ์์ด ๋ฒ๋ฆฝ๋๋ค. ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ ์ธํ๋ผ ์ง์์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ค์ด ์์ง๋์ด๊ฐ ๋ ์ค์ํ ์์ ์ ์ง์คํ ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
์๋ํฌ์๋ UI ํ ์คํธ์๋ ์ด๋ค ๊ตฌ์ฒด์ ์ธ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๊ธฐ ์ํ ๊ฐ์ ๋จธ์ ๋๋ ํด๋ฌ์คํฐ(๋ค์ ์น์ ์์ Kubernetes์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค)์ ๋๋ค. ๋์์ ์คํํ๋ ค๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ง์์๋ก ๋ ๋ง์ CPU์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๊ณ ๊ทธ์ ๋ํด ์ง๋ถํด์ผ ํ๋ ๋น์ฉ๋ ๋ ๋ง์์ง๋๋ค. ๋ฐ๋ผ์ ํ ์คํธ ์๋ํ ์ธก๋ฉด์์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๋ฉด ํ์์ ๋ฐ๋ผ ๋ง์ ์(100, 200, 1000...)์ ๋ธ๋ผ์ฐ์ /์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๊ณ , ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์ต๋ํ ๋นจ๋ฆฌ ์ป์ ์ ์์ผ๋ฉฐ, ๋ฆฌ์์ค ์ง์ฝ์ ์ธ ์ด๋ฌํ ๋น์ฉ์ ์ง๋ถํ์ง ์์๋ ๋ฉ๋๋ค. ํ.
๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ Amazon Web Services(AWS), Microsoft Azure, Google Cloud Platform(GCP)์ ๋๋ค. ๋ฐฉ๋ฒ ๊ฐ์ด๋์์๋ GCP ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์๋ฅผ ์ ๊ณตํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์๋ํ ์์ ์ ๋ฌด์์ ์ฌ์ฉํ๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฑฐ์ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ณต๊ธ์๋ฅผ ์ ํํ๊ธฐ ์ํด ๊ฒฝ์์ง์ ํ์ฌ์ ์ ๋ฐ์ ์ธ ์ธํ๋ผ์ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ค์ ์ ๋๋๋ฐ, ์ด๋ ์ด ๋ฌธ์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค. ์๋ํ ์์ง๋์ด์ ๊ฒฝ์ฐ Sauce Labs, BrowserStack, BitBar ๋ฑ๊ณผ ๊ฐ์ ํ ์คํธ ๋ชฉ์ ์ผ๋ก ํน๋ณํ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์ ์ฌ์ฉ์ ๋น๊ตํ๋ ๊ฒ์ด ๋ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ผ ์ฐ๋ฆฌ๋ ํด๋ณด์! ์ ์๊ฐ์๋ Sauce Labs๊ฐ ๊ฐ์ฅ ์ ๋ช ํ ํด๋ผ์ฐ๋ ํ ์คํธ ํ์ด๊ธฐ ๋๋ฌธ์ ๋น๊ต๋ฅผ ์ํด ์ฌ์ฉํ์ต๋๋ค.
์๋ํ ๋ชฉ์ ์ ์ํ GCP์ Sauce Labs:
8๊ฐ์ ์น ํ ์คํธ์ 8๊ฐ์ Android ํ ์คํธ๋ฅผ ๋์์ ์คํํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฅผ ์ํด GCP๋ฅผ ์ฌ์ฉํ๊ณ Selenoid๋ก 2๊ฐ์ ๊ฐ์ ๋จธ์ ์ ์คํํ๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ์์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ 8๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค. ๋ ๋ฒ์งธ์๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ํฌํจ๋ 8๊ฐ์ ์ปจํ ์ด๋๊ฐ ์์ต๋๋ค. ๊ฐ๊ฒฉ์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
Chrome์ผ๋ก ํ๋์ ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ค๋ฉด ๋ค์์ด ํ์ํฉ๋๋ค. n1-ํ์ค-1 ์๋์ฐจ. ์๋๋ก์ด๋์ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ๊ฒ ์ง๋ง n1-ํ์ค-4 ํ๋์ ์๋ฎฌ๋ ์ดํฐ์ ๋ํด. ์ฌ์ค ๋ ์ ์ฐํ๊ณ ์ ๋ ดํ ๋ฐฉ๋ฒ์ CPU/๋ฉ๋ชจ๋ฆฌ์ ๋ํ ํน์ ์ฌ์ฉ์ ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด์ง๋ง ํ์ฌ๋ก์๋ Sauce Labs์ ๋น๊ตํ ๋ ์ด๊ฒ์ด ์ค์ํ์ง ์์ต๋๋ค.
Sauce Labs ์ฌ์ฉ ์๊ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋๋ ๋น์ ์ด ์ด๋ฏธ ๊ทธ ์ฐจ์ด๋ฅผ ์์์ฐจ๋ ธ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ์ ํ ์ฐ๋ฆฌ ์์
์ ๋ํ ๊ณ์ฐ์ด ํฌํจ๋ ํ๋ฅผ ์ ๊ณตํ ๊ฒ์
๋๋ค:
ํ์ ๋ฆฌ์์ค
๋ชฌํธ๋ฆฌ
๊ทผ๋ก ์๊ฐ(์ค์ 8์ - ์คํ 8์)
๊ทผ๋ก ์๊ฐ+์ ์ ํ
์น์ฉ GCP
n1-ํ์ค-1 x 8 = n1-ํ์ค-8
$194.18
23์ผ * 12์๊ฐ * 0.38 = $104.88
23์ผ * 12์๊ฐ * 0.08 = $22.08
์น์ฉ ์์ค ์ฐ๊ตฌ์
๊ฐ์ Cloud8 ๋ณ๋ ฌ ํ
์คํธ
$1.559
-
-
์๋๋ก์ด๋์ฉ GCP
n1-ํ์ค-4 x 8: n1-ํ์ค-16
$776.72
23์ผ * 12์๊ฐ * 1.52 = $419.52
23์ผ * 12์๊ฐ * 0.32 = $88.32
Android์ฉ ์์ค ์ฐ๊ตฌ์
Real Device Cloud 8 ๋ณ๋ ฌ ํ
์คํธ
$1.999
-
-
๋ณด์๋ค์ํผ ๋น์ฉ ์ฐจ์ด๋ ์์ฒญ๋ฉ๋๋ค. ํนํ XNUMX์๊ฐ์ ์์ ๊ธฐ๊ฐ ๋์์๋ง ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ํ์ง๋ง ์ ์ ํ ๋จธ์ ์ ์ฌ์ฉํ๋ฉด ๋น์ฉ์ ๋์ฑ ์ ๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ฌด์์ ๋๊น?
์ ์ ํ VM์ ์ผ๋ฐ ์ธ์คํด์ค๋ณด๋ค ํจ์ฌ ์ ๋ ดํ ๊ฐ๊ฒฉ์ผ๋ก ์์ฑํ๊ณ ์คํํ ์ ์๋ ์ธ์คํด์ค์ ๋๋ค. ๊ทธ๋ฌ๋ Compute Engine์ ๋ค๋ฅธ ์์ ์ ์ํด ํด๋น ๋ฆฌ์์ค์ ์ก์ธ์คํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ์ธ์คํด์ค๋ฅผ ์ข ๋ฃ(์ ์ )ํ ์ ์์ต๋๋ค. ์ ์ ํ ์ธ์คํด์ค๋ Compute Engine ์ฉ๋์ ์ด๊ณผ์ด๋ฏ๋ก ์ฌ์ฉ๋์ ๋ฐ๋ผ ๊ฐ์ฉ์ฑ์ด ๋ฌ๋ผ์ง๋๋ค.
์ฑ์ด ๋ด๊ฒฐํจ์ฑ์ด ์๊ณ ๊ฐ๋ฅํ ์ธ์คํด์ค ์ ์ ์ ๊ฒฌ๋ ์ ์๋ ๊ฒฝ์ฐ ์ ์ ํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ฉด Compute Engine ๋น์ฉ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๊ด ์ฒ๋ฆฌ ์์ ์ ์ ์ ํ ์ธ์คํด์ค์์ ์คํ๋ ์ ์์ต๋๋ค. ์ฒ๋ฆฌ ์ค์ ํด๋น ์ธ์คํด์ค ์ค ์ผ๋ถ๊ฐ ์ข ๋ฃ๋๋ฉด ์์ ์๋๊ฐ ๋๋ ค์ง์ง๋ง ์์ ํ ์ค์ง๋์ง๋ ์์ต๋๋ค. ์ ์ ํ ์ธ์คํด์ค๋ ๊ธฐ์กด ์ธ์คํด์ค์ ์ถ๊ฐ ์ํฌ๋ก๋๋ฅผ ๋ฐฐ์นํ์ง ์๊ณ ์ถ๊ฐ ์ผ๋ฐ ์ธ์คํด์ค์ ๋ํด ์ ์ฒด ๊ฐ๊ฒฉ์ ์ง๋ถํ์ง ์๊ณ ๋ ์ผ๊ด ์ฒ๋ฆฌ ์์ ์ ์๋ฃํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ง ๋๋์ง ์์์ต๋๋ค! ์ค์ ๋ก 12์๊ฐ ๋์ ์ฌ์ง ์๊ณ ํ ์คํธ๋ฅผ ์งํํ๋ ์ฌ๋์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฐ์ ๋จธ์ ์ด ํ์ํ์ง ์์ ๋ ์๋์ผ๋ก ์์ํ๊ณ ์ค์งํ ์ ์์ต๋๋ค. ์ค์ ์ด์ฉ์๊ฐ์ ํ๋ฃจ 6์๊ฐ์ผ๋ก ๋จ์ถ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ ์์ ์ ๋ฐ๋ฅธ ์ง๋ถ๊ธ์ 11๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ํด ์ 8๋ฌ๋ฌ๋ก ์ค์ด๋ค ๊ฒ์ ๋๋ค. ์ ๋ง ๋ฉ์ง์ง ์๋์? ๊ทธ๋ฌ๋ ์ ์ ํ ๋จธ์ ์ ๊ฒฝ์ฐ, ์ด๋ฌํ ์ํฉ์ด ์ํํธ์จ์ด์์ ์ ๊ณต๋๊ณ ์ฒ๋ฆฌ๋ ์ ์๋๋ผ๋ ์ค๋จ๊ณผ ๋ถ์์ ์ฑ์ ์ฃผ์ํ๊ณ ๋๋นํด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ฐ์น!
ํ์ง๋ง ๊ฒฐ์ฝ 'ํด๋ผ์ฐ๋ ํ ์คํธ ํ์ ์ฌ์ฉํ์ง ๋ง์ธ์'๋ผ๊ณ ๋งํ๋ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ค์ ๋ง์ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ์ , ์ด๋ ๋จ์ํ ๊ฐ์ ๋จธ์ ์ด ์๋๋ผ ์๊ฒฉ ์ก์ธ์ค, ๋ก๊ทธ, ์คํฌ๋ฆฐ์ท, ๋น๋์ค ๋ นํ, ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฐ ๋ฌผ๋ฆฌ์ ๋ชจ๋ฐ์ผ ์ฅ์น ๋ฑ ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ๊ฐ์ถ ๋ณธ๊ฒฉ์ ์ธ ํ ์คํธ ์๋ํ ์๋ฃจ์ ์ ๋๋ค. ๋ง์ ์ํฉ์์ ์ด๋ ํ์์ ์ธ ์ธ๋ จ๋ ๋์์ด ๋ ์ ์์ต๋๋ค. ํ ์คํธ ํ๋ซํผ์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๊ฐ Linux/Windows ์์คํ ๋ง ์ ๊ณตํ ์ ์๋ IOS ์๋ํ์ ํนํ ์ ์ฉํฉ๋๋ค. ํ์ง๋ง ๋ค์ ๊ธฐ์ฌ์์๋ iOS์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ํญ์ ์ํฉ์ ์ดํด๋ณด๊ณ ์์ ๋ถํฐ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ๋ ดํ๊ณ ํจ์จ์ ์ด๋ฉฐ, ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ํ ์คํธ ํ๋ซํผ์ด ํ์คํ ์ง์ถํ ๋น์ฉ๋งํผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ธํ๋ผ ํํฉ ์์
ํ์ํ ๋งํฌ
์ ์ฌํ ๋๊ตฌ:
6. ์ค์ผ์คํธ๋ ์ด์
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
์ข์ ์์์ด ์์ต๋๋ค. ๊ธฐ์ฌ๊ฐ ๊ฑฐ์ ๋๋ฌ์ต๋๋ค! ํ์ฌ ์ฐ๋ฆฌ์ ์๋ํ ์ธํ๋ผ๋ Docker ์ง์ ๋๊ตฌ์ธ Selenium ๊ทธ๋ฆฌ๋ ๋ฐ Selenoid๋ฅผ ์ฌ์ฉํ์ฌ GitLab CI๋ฅผ ํตํด ๋ณ๋ ฌ๋ก ์คํํ๋ ์น ๋ฐ Android ํ ์คํธ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ํ GCP๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์๋ฎฌ๋ ์ดํฐ๊ฐ ํฌํจ๋ ์ปจํ ์ด๋๋ฅผ ํธ์คํ ํฉ๋๋ค. ๋น์ฉ์ ์ ๊ฐํ๊ธฐ ์ํด ์ด๋ฌํ ๊ฐ์ ๋จธ์ ์ ์์ฒญ ์์๋ง ์์ํ๊ณ ํ ์คํธ๊ฐ ์ํ๋์ง ์์ ๋๋ ์ค์งํฉ๋๋ค. ์ธํ๋ผ๋ฅผ ๊ฐ์ ํ ์ ์๋ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๊น? ๋๋ต์ ๊ทธ๋ ์ต๋๋ค! ์ฟ ๋ฒ๋คํฐ์ค(K8s)๋ฅผ ๋ง๋๋ณด์ธ์!
๋จผ์ ์ค์ผ์คํธ๋ ์ด์ , ํด๋ฌ์คํฐ, ์ฟ ๋ฒ๋คํฐ์ค๋ผ๋ ๋จ์ด๊ฐ ์ด๋ป๊ฒ ์ฐ๊ด๋์ด ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋์ ์์ค์์ ์ค์ผ์คํธ๋ ์ด์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ์ ๋๋ค. ํ ์คํธ ์๋ํ๋ฅผ ์ํ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Selenium ๊ทธ๋ฆฌ๋์ Selenoid์ ๋๋ค. Docker์ K8์ ์๋ก๋ฅผ ๋ณด์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ์ฌ์ฉ๋๊ณ ๋ ๋ฒ์งธ๋ ์ค์ผ์คํธ๋ ์ด์ ์ ์ฌ์ฉ๋ฉ๋๋ค. K8s๋ ํด๋ฌ์คํฐ์ ๋๋ค. ํด๋ฌ์คํฐ์ ์๋ฌด๋ VM์ ๋ ธ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ํ๋์ ์๋ฒ(ํด๋ฌ์คํฐ) ๋ด์ ๋ค์ํ ๊ธฐ๋ฅ, ํ๋ก๊ทธ๋จ ๋ฐ ์๋น์ค๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ๋ ธ๋ ์ค ํ๋๋ผ๋ ์คํจํ๋ฉด ๋ค๋ฅธ ๋ ธ๋๊ฐ ์ด๋ฅผ ์ ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋จ ์๋ ์๋์ ๋ณด์ฅํฉ๋๋ค. ์ด ์ธ์๋ K8s์๋ ํ์ฅ๊ณผ ๊ด๋ จ๋ ์ค์ํ ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ๋ก๋ ๋ฐ ์ค์ ๋ ์ ํ์ ๋ฐ๋ผ ์ต์ ์ ๋ฆฌ์์ค ์์ ์๋์ผ๋ก ์ป์ต๋๋ค.
์ค์ ๋ก Kubernetes๋ฅผ ์ฒ์๋ถํฐ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ ๊ฒฐ์ฝ ์ฌ์ด ์์ ์ด ์๋๋๋ค. ์ ๋ช ํ How-To ๊ฐ์ด๋์ธ "Kubernetes The Hard Way" ๋งํฌ๋ฅผ ๋จ๊ฒจ๋๋ฆดํ ๋ ๊ด์ฌ ์์ผ์ ๋ถ๋ค์ ์ค์ตํด ๋ณด์๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋คํํ๋ ๋์ฒด ๋ฐฉ๋ฒ๊ณผ ๋๊ตฌ๊ฐ ์์ต๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ GCP์์ Google Kubernetes Engine(GKE)์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ช ๋ฒ์ ํด๋ฆญ๋ง์ผ๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ํด๋ฌ์คํฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ํ์ต์ ์์ํ ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ด๋ถ ๊ตฌ์ฑ ์์๋ฅผ ํจ๊ป ํตํฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๋์ ์์ ์ K8์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๋ฐ ์ง์คํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
K8s๊ฐ ์ ๊ณตํ๋ ๋ช ๊ฐ์ง ์ค์ํ ๊ธฐ๋ฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ: VM ๋์ ๋ค์ค ๋ ธ๋ ํด๋ฌ์คํฐ ์ฌ์ฉ
- ๋์ ํ์ฅ: ์์ฒญ ์์๋ง ์ฌ์ฉ๋๋ ๋ฆฌ์์ค ๋น์ฉ์ ์ค์ ๋๋ค.
- ์๊ฐ ์น์ : ํฌ๋ ์๋ ๋ณต๊ตฌ(๊ทธ ๊ฒฐ๊ณผ ์ปจํ ์ด๋๋ ๋ณต์๋จ)
- ๋ค์ดํ์ ์์ด ์ ๋ฐ์ดํธ ๋กค์์ ๋ฐ ๋ณ๊ฒฝ ์ฌํญ ๋กค๋ฐฑ: ๋๊ตฌ, ๋ธ๋ผ์ฐ์ ๋ฐ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํด๋ ํ์ฌ ์ฌ์ฉ์์ ์์ ์ด ์ค๋จ๋์ง ์์ต๋๋ค.
ํ์ง๋ง K8s๋ ์์ง ๋ง๋ฅ์ ์๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ณ ๋ คํ๊ณ ์๋ ๋๊ตฌ(Selenium ๊ทธ๋ฆฌ๋, Selenoid)์ ๋งฅ๋ฝ์์ ๋ชจ๋ ์ฅ์ ๊ณผ ํ๊ณ๋ฅผ ์ดํดํ๊ธฐ ์ํด K8s์ ๊ตฌ์กฐ์ ๋ํด ๊ฐ๋ตํ๊ฒ ๋
ผ์ํ๊ฒ ์ต๋๋ค. ํด๋ฌ์คํฐ์๋ ๋ง์คํฐ ๋
ธ๋์ ์์
์ ๋
ธ๋๋ผ๋ ๋ ๊ฐ์ง ์ ํ์ ๋
ธ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ง์คํฐ ๋
ธ๋๋ ๊ด๋ฆฌ, ๋ฐฐํฌ ๋ฐ ์ผ์ ๊ฒฐ์ ์ ๋ด๋นํฉ๋๋ค. ์์
์ ๋
ธ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋๋ ๊ณณ์
๋๋ค. ๋
ธ๋์๋ ์ปจํ
์ด๋ ๋ฐํ์ ํ๊ฒฝ๋ ํฌํจ๋์ด ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ปจํ
์ด๋ ๊ด๋ จ ์์
์ ๋ด๋นํ๋ Docker์
๋๋ค. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋์ฒด ์๋ฃจ์
๋ ์์ต๋๋ค.
ํ์ฅ ๊ธฐ๋ฅ์ ํต์ฌ์ด๋ฉฐ ํด๋ฌ์คํฐ ๋ ธ๋ ํ ๋ด์ ๋ ธ๋์ ๋ ธ๋ ๋ด์ ํฌ๋ ๋ชจ๋์ ์ ์ฉ๋ ์ ์์ต๋๋ค. ๋ ธ๋์ Pod ๋ชจ๋์ ์ ์ฉ๋๋ ํฌ๊ธฐ ์กฐ์ ์๋ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ ํ์ ์ํ์ ๋๋ค. ๋ ธ๋/ํฌ๋ ์๋ฅผ ๋๋ ค ํฌ๊ธฐ ์กฐ์ ์ด ๋ฐ์ํฉ๋๋ค. ์ด ์ ํ์ด ๋ ๋ฐ๋์งํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ๋ฒ์งธ ์ ํ์ ์์ง์ ๋๋ค. ํฌ๊ธฐ ์กฐ์ ์ ๊ฐ์๊ฐ ์๋ ๋ ธ๋/ํฌ๋์ ํฌ๊ธฐ๋ฅผ ๋๋ ค ์ํ๋ฉ๋๋ค.
์ด์ ์์ ์ฉ์ด์ ๊ด๋ จํ์ฌ ๋๊ตฌ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ ๋ ๋ ๊ทธ๋ฆฌ๋
์์ ์ธ๊ธํ๋ฏ์ด Selenium ๊ทธ๋ฆฌ๋๋ ๋งค์ฐ ์ธ๊ธฐ ์๋ ๋๊ตฌ์ด๋ฉฐ ์ปจํ ์ด๋ํ๋์๋ค๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ๋ฐ๋ผ์ K8์ ์ ๋ ๋ ๊ทธ๋ฆฌ๋๋ฅผ ๋ฐฐ์นํ ์ ์๋ค๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์๋ ๊ณต์ K8s ์ ์ฅ์์์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ ๊ทธ๋ ๋ฏ์ด ์น์ ๋์ ๋งํฌ๋ฅผ ์ฒจ๋ถํฉ๋๋ค. ๋ํ ๋ฐฉ๋ฒ ๊ฐ์ด๋์์๋ Terraform์์ ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ธ๋ผ์ฐ์ ์ปจํ ์ด๋๊ฐ ํฌํจ๋ ํฌ๋ ์๋ฅผ ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ K8s์ ์๋ ์ค์ผ์ผ๋ง ๊ธฐ๋ฅ์ ์์ง ์์ ํ ๋ช ํํ ์์ ์ ์๋๋๋ค. ๊ณต๋ถ๋ฅผ ์์ํ์ ๋ ์ค์ฉ์ ์ธ ์ง์นจ์ด๋ ๊ถ์ฅ ์ฌํญ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. DevOps ํ์ ์ง์์ ๋ฐ์ ์ฌ๋ฌ ์ฐ๊ตฌ์ ์คํ์ ๊ฑฐ์น ํ, ์ฐ๋ฆฌ๋ ํ๋์ ์์ ์ ๋ ธ๋ ๋ด์ ์๋ ํ๋์ ํฌ๋ ๋ด์์ ํ์ํ ๋ธ๋ผ์ฐ์ ๋ก ์ปจํ ์ด๋๋ฅผ ํค์ฐ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ ธ๋ ์๋ฅผ ๋๋ ค ๋ ธ๋์ ์ํ ํ์ฅ ์ ๋ต์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ๋ฏธ๋์ ๋ณํ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ, ํนํ ๋ด๋ถ ์ํคํ ์ฒ๊ฐ ๋ณ๊ฒฝ๋ Selenium Grid 4๊ฐ ์ถ์๋ ์ดํ์ ๋ ๋์ ์ ๊ทผ ๋ฐฉ์๊ณผ ๊ธฐ์ฑ ์๋ฃจ์ ์ ๋ํ ๋ ๋ง์ ์ค๋ช ์ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ ๋ ๋ ธ์ด๋:
K8s์ ์ ๋ ๋ ธ์ด๋ ๋ฐฐ์น๋ ํ์ฌ ๊ฐ์ฅ ํฐ ์ค๋ง์ ๋๋ค. ํธํ๋์ง ์์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก๋ Pod ๋ด๋ถ์ Selenoid ์ปจํ ์ด๋๋ฅผ ์์ฑํ ์ ์์ง๋ง Selenoid๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์์ํ๋ฉด ์ฌ์ ํ ๋์ผํ Pod ๋ด์ ์๊ฒ ๋ฉ๋๋ค. ์ด๋ก ์ธํด ํ์ฅ์ด ๋ถ๊ฐ๋ฅํด์ง๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ฌ์คํฐ ๋ด๋ถ์ Selenoid ์์ ์ ๊ฐ์ ๋จธ์ ๋ด๋ถ ์์ ๊ณผ ๋ค๋ฅด์ง ์์ต๋๋ค. ์ด์ผ๊ธฐ์ ๋.
๋ฌ:
๊ฐ๋ฐ์๋ค์ Selenoid๋ก ์์ ํ ๋ ์ด๋ฌํ ๋ณ๋ชฉ ํ์์ ์๊ณ Moon์ด๋ผ๋ ๋์ฑ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ถ์ํ์ต๋๋ค. ์ด ๋๊ตฌ๋ ์๋ Kubernetes์ ํจ๊ป ์๋ํ๋๋ก ์ค๊ณ๋์์ผ๋ฏ๋ก ์๋ ํฌ๊ธฐ ์กฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ณ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ฒ๋ค๊ฐ ์ง๊ธ์ ๊ทธ๋ ๋ค๊ณ ๋งํ๊ณ ์ถ๋ค. ๋จ ํ๋์ ๊ธฐ๋ณธ K8s ํด๋ฌ์คํฐ๋ฅผ ์ฆ์ ์ง์ํ๋ Selenium ์ธ๊ณ์ ๋๊ตฌ(๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ ๋๊ตฌ๋ฅผ ์ฐธ์กฐํ์ธ์. ). ์ด๋ฌํ ์ง์์ ์ ๊ณตํ๋ Moon์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ํ ๋ฌด๊ตญ์ ์์ ๋๋ค. Selenoid๋ ํ์ฌ ์คํ ์ค์ธ ๋ธ๋ผ์ฐ์ ์ธ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค. ์ด๋ค ์ด์ ๋ก ํ๋ก์ธ์ค๊ฐ ์ถฉ๋ํ๋ฉด ์คํ ์ค์ธ ๋ชจ๋ ์ธ์ ์ด ์์ค๋ฉ๋๋ค. ๋ฐ๋๋ก Moon์๋ ๋ด๋ถ ์ํ๊ฐ ์์ผ๋ฉฐ ๋ฐ์ดํฐ ์ผํฐ ์ ์ฒด์ ๋ณต์ ๋ ์ ์์ต๋๋ค. ํ๋ ์ด์์ ๋ณต์ ๋ณธ์ด ๋ค์ด๋๋๋ผ๋ ๋ธ๋ผ์ฐ์ ์ธ์ ์ ๊ณ์ ์ ์ง๋ฉ๋๋ค.
๋ฐ๋ผ์ Moon์ ํ๋ฅญํ ์๋ฃจ์ ์ด์ง๋ง ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฌด๋ฃ๊ฐ ์๋๋๋ค. ๊ฐ๊ฒฉ์ ์ธ์ ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ฌด๋ฃ๋ก 0~4๊ฐ์ ์ธ์ ๋ง ์คํํ ์ ์๋๋ฐ ์ด๋ ํน๋ณํ ์ ์ฉํ์ง ์์ต๋๋ค. ํ์ง๋ง 5๋ฒ์งธ ์ธ์ ๋ถํฐ๋ ๊ฐ ์ธ์ ๋น 500๋ฌ๋ฌ๋ฅผ ์ง๋ถํด์ผ ํฉ๋๋ค. ํ์ฌ๋ง๋ค ์ํฉ์ด ๋ค๋ฅผ ์ ์์ง๋ง ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ Moon์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์์์ ์ค๋ช ํ ๋๋ก ํ์์ ๋ฐ๋ผ Selenium Grid๋ฅผ ์ฌ์ฉํ์ฌ VM์ ์คํํ๊ฑฐ๋ ํด๋ฌ์คํฐ์ ๋ ธ๋ ์๋ฅผ ๋๋ฆด ์ ์์ต๋๋ค. ์ฝ 500๊ฐ์ ํ์ดํ๋ผ์ธ์ ๋ํด 5๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์์ํ๊ณ ํ ์คํธ๊ฐ ์๋ฃ๋ ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ค์งํฉ๋๋ค. Moon์ ์ฌ์ฉํ๋ค๋ฉด ํ ์คํธ๋ฅผ ์๋ฌด๋ฆฌ ์์ฃผ ์คํํ๋๋ผ๋ ์ 2500 x XNUMX = $XNUMX๋ฅผ ์ถ๊ฐ๋ก ์ง๋ถํด์ผ ํฉ๋๋ค. ๋ค์ ๋งํ์ง๋ง, Moon์ ์ฌ์ฉํ์ง ๋ง๋ผ๋ ๋ป์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด, ์กฐ์ง์ ๋ง์ ํ๋ก์ ํธ/ํ์ด ์๊ณ ๋ชจ๋ ์ฌ๋์ ์ํ ๊ฑฐ๋ํ ๊ณตํต ํด๋ฌ์คํฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์์ ์ ์์ด์ ์ด๋ ํ์์ ์ธ ์๋ฃจ์ ์ด ๋ ์ ์์ต๋๋ค. ํญ์ ๊ทธ๋ ๋ฏ์ด ๋ง์ง๋ง์ ๋งํฌ๋ฅผ ๋จ๊ฒจ๋๊ณ ์์ ๋งฅ๋ฝ์์ ํ์ํ ๋ชจ๋ ๊ณ์ฐ์ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์นผ๋ฆฌ์คํ : (์ฃผ๋ชฉ! ์ด ๋ด์ฉ์ ์๋ณธ ๊ธฐ์ฌ์๋ ์์ผ๋ฉฐ ๋ฌ์์์ด ๋ฒ์ญ๋ณธ์๋ง ํฌํจ๋์ด ์์ต๋๋ค.)
์ ๊ฐ ๋งํ๋ฏ์ด Selenium์ ๋งค์ฐ ์ธ๊ธฐ ์๋ ๋๊ตฌ์ด๋ฉฐ IT ๋ถ์ผ๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ๋ฒ์ญ ์์ ์ ํ๋ ๋์ Callisto๋ผ๋ ์๋ก์ด ์ ๋ง ๋๊ตฌ๊ฐ ์น์ ๋ํ๋ฌ์ต๋๋ค(์๋ ํ์ธ์ Cypress ๋ฐ ๊ธฐํ Selenium ํฌ๋ฌ๋ค). K8s์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ๋ฉฐ ๋ ธ๋ ์ ์ฒด์ ๋ถ์ฐ๋ Pod์์ Selenoid ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์๋ ํฌ๊ธฐ ์กฐ์ ์ ํฌํจํ์ฌ ๋ชจ๋ ๊ฒ์ด ์ฆ์ ์๋ํฉ๋๋ค. ํ์์ ์ด์ง๋ง ํ ์คํธ๊ฐ ํ์ํฉ๋๋ค. ์ ๋ ์ด๋ฏธ ์ด ๋๊ตฌ๋ฅผ ๋ฐฐํฌํ๊ณ ์ฌ๋ฌ ๊ฐ์ง ์คํ์ ์คํํ์ต๋๋ค. ํ์ง๋ง ๊ฒฐ๋ก ์ ๋ด๋ฆฌ๊ธฐ์๋ ๋๋ฌด ์ด๋ฅด๋ฉฐ, ์ฅ๊ฑฐ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ํ ํฅํ ๊ธฐ์ฌ์์ ๊ฒํ ํ ๊ฒ์ ๋๋ค. ์ง๊ธ์ ๋ ๋ฆฝ์ ์ธ ์ฐ๊ตฌ๋ฅผ ์ํ ๋งํฌ๋ง ๋จ๊ฒจ ๋๊ฒ ์ต๋๋ค.
์ธํ๋ผ ํํฉ ์์
ํ์ํ ๋งํฌ
์ฟ ๋ฒ๋คํฐ์ค: ์ค์ ์ฟ ๋ฒ๋คํฐ์ค: ์ด๋ ค์ด ๊ธธ ์ฟ ๋ฒ๋คํฐ์ค: ์ ๋ ๋ GCP: ์ฟ ๋ฒ๋คํฐ์ค ์์ง ๋ฌ ์ฟ ๋ฒ๋คํฐ์ค ์ฑ Kubernetes๋ฅผ ์ฌ์ฉํ ๋ถ์ฐ ์๋ํ ์ ๋ ๋ ๊ทธ๋ฆฌ๋ 4 ์นผ๋ฆฌ์คํ GitHub Wrike TechClub (์นผ๋ฆฌ์คํ )
์ ์ฌํ ๋๊ตฌ
7. ์ฝ๋ํ ์ธํ๋ผ(IaC)
๊ธฐ์ ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
์ด์ ๋ง์ง๋ง ์น์ ์ ์ด๋ฅด๋ ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด ๊ธฐ์ ๋ฐ ๊ด๋ จ ์์ ์ ์๋ํ ์์ง๋์ด์ ์ฑ ์์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ๋ง์ ์กฐ์ง์์ ์ธํ๋ผ ๋ฌธ์ ๋ DevOps ๋ถ์์ ํต์ ํ์ ์์ผ๋ฉฐ ๊ฐ๋ฐ ํ์ ํ์ดํ๋ผ์ธ์ด ์๋ํ๊ฒ ๋ง๋๋ ์์์ ํ์ดํ๋ผ์ธ๊ณผ ์ฐ๊ฒฐ๋ ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์ง์๋์ด์ผ ํ๋์ง์ ๋ํด ์ค์ ๋ก ๊ด์ฌ์ ๋์ง ์์ต๋๋ค. ๋์งธ, ์์งํ ๋งํด์ IaC(Infrastructure as Code) ์คํ์ ์์ง ๋ง์ ๊ธฐ์ ์์ ์ฑํ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ํ์คํ ๋์ค์ ์ธ ํธ๋ ๋๊ฐ ๋์์ผ๋ฉฐ ์ด์ ๊ด๋ จ๋ ํ๋ก์ธ์ค, ์ ๊ทผ ๋ฐฉ์ ๋ฐ ๋๊ตฌ์ ์ฐธ์ฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋๋ฉด ์ต์ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํ์ธ์.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ฒ ๋ ๋๊ธฐ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. GitlabCI์์ ํ ์คํธ๋ฅผ ์คํํ๋ ค๋ฉด ์ต์ํ Gitlab Runner๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ฆฌ์์ค๊ฐ ํ์ํ๋ค๋ ์ ์ ์ด๋ฏธ ๋ ผ์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ธ๋ผ์ฐ์ /์๋ฎฌ๋ ์ดํฐ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ค๋ฉด VM ๋๋ ํด๋ฌ์คํฐ๋ฅผ ์์ฝํด์ผ ํฉ๋๋ค. ๋ฆฌ์์ค ํ ์คํธ ์ธ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์๋ ์ผ์ , ๋คํธ์ํฌ ๊ตฌ์ฑ, ๋ก๋ ๋ฐธ๋ฐ์, ์ฌ์ฉ์ ๊ถํ ๋ฑ์ ํฌํจํ๋ ๊ฐ๋ฐ, ์ค๋น, ํ๋ก๋์ ํ๊ฒฝ์ ์ง์ํ๋ ค๋ฉด ์๋นํ ์ฉ๋์ด ํ์ํฉ๋๋ค. ์ค์ํ ๋ฌธ์ ๋ ์ด๋ฅผ ๋ชจ๋ ์ง์ํ๋ ๋ฐ ํ์ํ ๋ ธ๋ ฅ์ ๋๋ค. ๋ณ๊ฒฝํ๊ณ ์ ๋ฐ์ดํธ๋ฅผ ์ถ์ํ ์ ์๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด GCP ์ปจํ ์คํธ์์๋ ๋ธ๋ผ์ฐ์ ์ UI ์ฝ์์ ์ฌ์ฉํ๊ณ ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋์์ API ํธ์ถ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ฐ๋ ํญ๋ชฉ๊ณผ ์ํธ์์ฉํ๊ฑฐ๋ gcloud ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ์กฐ์์ ์ํํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋งค์ฐ ๋ง์ ์์ ๋ค์ํ ์ํฐํฐ์ ์ธํ๋ผ ์์๋ก ์ธํด ๋ชจ๋ ์์ ์ ์๋์ผ๋ก ์ํํ๋ ๊ฒ์ด ์ด๋ ต๊ฑฐ๋ ์ฌ์ง์ด ๋ถ๊ฐ๋ฅํด์ง๋๋ค. ๊ฒ๋ค๊ฐ ์ด๋ฌํ ๋ชจ๋ ์๋ ์์ ์ ์ ์ดํ ์ ์์ต๋๋ค. ์คํ ์ ์ ๊ฒํ ๋ฅผ ์ํด ์ ์ถํ ์ ์์ผ๋ฉฐ, ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๊ณ , ์ฌ๊ณ ๋ก ์ด์ด์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ํ๊ฒ ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ง๋์ด๋ค์ ์๋ bash/shell ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ ์์ฑํ๋๋ฐ, ์ด๋ ์ ์ฐจ์ ์คํ์ผ์์ ๋น ๋ฅด๊ฒ ์ฝ๊ณ , ์ดํดํ๊ณ , ์ ์ง ๊ด๋ฆฌํ๊ณ ์์ ํ๊ธฐ๊ฐ ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ฐฉ๋ฒ๋ณด๋ค ํฌ๊ฒ ๋์์ง์ง ์์์ต๋๋ค.
์ด ๊ธฐ์ฌ์ How-to ๊ฐ์ด๋์์๋ IaC ์ค์ต๊ณผ ๊ด๋ จ๋ ๋ ๊ฐ์ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Terraform๊ณผ Ansible์ด ๊ทธ๊ฒ์ด๋ค. ์ด๋ค ์ฌ๋๋ค์ ๊ธฐ๋ฅ์ด ๋น์ทํ๊ณ ์ํธ ๊ตํ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ค ์ฒ์์๋ ์์ ํ ๋ค๋ฅธ ์์ ์ด ์ฃผ์ด์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋๊ตฌ๊ฐ ์๋ก๋ฅผ ๋ณด์ํด์ผ ํ๋ค๋ ์ฌ์ค์ HashiCorp์ RedHat์ ๋ํํ๋ ๊ฐ๋ฐ์์ ๊ณต๋ ํ๋ ์ ํ ์ด์ ์์ ํ์ธ๋์์ต๋๋ค. ๊ฐ๋ ์ ์ฐจ์ด์ ์ Terraform์ด ์๋ฒ ์์ฒด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ๋ก๋น์ ๋ ๋๊ตฌ๋ผ๋ ๊ฒ์ ๋๋ค. Ansible์ ์ด๋ฌํ ์๋ฒ์ ์ํํธ์จ์ด๋ฅผ ์ค์น, ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌํ๋ ์์ ์ ์ํํ๋ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋๊ตฌ์ ๋๋ค.
์ด๋ฌํ ๋๊ตฌ์ ๋ ๋ค๋ฅธ ์ฃผ์ ํน์ง์ ์ฝ๋ฉ ์คํ์ผ์ ๋๋ค. Bash ๋ฐ Ansible๊ณผ ๋ฌ๋ฆฌ Terraform์ ์คํ ๊ฒฐ๊ณผ๋ก ๋ฌ์ฑํ ์ํ๋ ์ต์ข ์ํ์ ๋ํ ์ค๋ช ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ์ธ์ ์คํ์ผ์ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด 10๊ฐ์ VM์ ๋ง๋ค๊ณ Terraform์ ํตํด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ค๋ ๊ฒฝ์ฐ 10๊ฐ์ VM์ ์ป๊ฒ ๋ฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ ์คํํ๋ฉด ์ด๋ฏธ 10๊ฐ์ VM์ด ์์ผ๋ฏ๋ก ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ผ๋ฉฐ Terraform์ ์ธํ๋ผ์ ํ์ฌ ์ํ๋ฅผ ์ํ ํ์ผ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Ansible์ ์ ์ฐจ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฏ๋ก 10๊ฐ์ VM์ ์์ฑํ๋๋ก ์์ฒญํ๋ฉด ์ฒ์ ์์ํ ๋ Terraform๊ณผ ์ ์ฌํ 10๊ฐ์ VM์ ์ป๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ ์์ํ ํ์๋ ์ด๋ฏธ 20๊ฐ์ VM์ด ์๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ค์ํ ์ฐจ์ด์ ์ ๋๋ค. ์ ์ฐจ์ ์คํ์ผ์์๋ ํ์ฌ ์ํ๋ฅผ ์ ์ฅํ์ง ์๊ณ ๋จ์ํ ์ํํด์ผ ํ๋ ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ์ค๋ช ํฉ๋๋ค. ๋ฌผ๋ก ๋ค์ํ ์ํฉ์ ์ฒ๋ฆฌํ๊ณ ๋ฆฌ์์ค ์กด์ฌ ์ฌ๋ถ์ ํ์ฌ ์ํ์ ๋ํ ์ฌ๋ฌ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ ์ ์์ง๋ง ์ด๋ฌํ ๋ ผ๋ฆฌ๋ฅผ ์ ์ดํ๋ โโ๋ฐ ์๊ฐ์ ๋ญ๋นํ๊ณ ๋ ธ๋ ฅํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ค์ํ ์ํ๋ ๋์์ง๋๋ค.
์์ ๋ชจ๋ ๋ด์ฉ์ ์์ฝํ๋ฉด Terraform๊ณผ ์ ์ธ์ ํ๊ธฐ๋ฒ์ด ์๋ฒ ํ๋ก๋น์ ๋์ ๋ ์ ํฉํ ๋๊ตฌ๋ผ๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ํ์ง๋ง ๊ตฌ์ฑ ๊ด๋ฆฌ ์์ ์ Ansible์ ์์ํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. ์ด์ฏค์์ ์๋ํ์ ๋งฅ๋ฝ์์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
์ฌ๊ธฐ์ ์ดํดํด์ผ ํ ์ ์ผํ ์ค์ํ ์ ์ ํ ์คํธ ์๋ํ ์ธํ๋ผ๊ฐ ์ ์ฒด ํ์ฌ ์ธํ๋ผ์ ์ผ๋ถ๋ก ๊ฐ์ฃผ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ชจ๋ IaC ๊ดํ์ด ์ ์ฒด ์กฐ์ง์ ๋ฆฌ์์ค์ ์ ์ญ์ ์ผ๋ก ์ ์ฉ๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์ด์ ๋ํ ์ฑ ์์ ๊ทํ์ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. DevOps ํ์ ์ด๋ฌํ ๋ฌธ์ ์ ๋ํด ๋ ๋ง์ ๊ฒฝํ์ ๊ฐ๊ณ ์์ผ๋ฉฐ, ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํ ์ ์ฒด ๊ทธ๋ฆผ์ ๋ด ๋๋ค. ๊ทธ๋ฌ๋ QA ์์ง๋์ด๋ ๋น๋ฉ ์๋ํ ํ๋ก์ธ์ค์ ํ์ดํ๋ผ์ธ ๊ตฌ์กฐ์ ๋ ๋ง์ด ๊ด์ฌํ๋ฏ๋ก ํ์ํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ฐ์ ๊ธฐํ๋ฅผ ๋ ์ ํ์ธํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ํจ๊ป ์ผํ๊ณ ์ง์๊ณผ ์์ด๋์ด๋ฅผ ๊ตํํ์ฌ ์์๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ์ ๋๋ค.
๋ค์์ ์ด์ ์ ๋ ผ์ํ ํ ์คํธ ์๋ํ ๋ฐ ๋๊ตฌ์ ๋งฅ๋ฝ์์ Terraform ๋ฐ Ansible์ ์ฌ์ฉํ๋ ๋ช ๊ฐ์ง ์์ ๋๋ค.
1. Terraform์ ์ฌ์ฉํ์ฌ VM ๋ฐ ํด๋ฌ์คํฐ์ ํ์ํ ํน์ฑ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ์ค๋ช ํฉ๋๋ค.
2. Ansible์ ์ฌ์ฉํ์ฌ ํ ์คํธ์ ํ์ํ ๋๊ตฌ(docker, Selenoid, Selenium Grid)๋ฅผ ์ค์นํ๊ณ ํ์ํ ๋ธ๋ผ์ฐ์ /์๋ฎฌ๋ ์ดํฐ ๋ฒ์ ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
3. Terraform์ ์ฌ์ฉํ์ฌ GitLab Runner๊ฐ ์คํ๋ VM์ ํน์ฑ์ ์ค๋ช ํฉ๋๋ค.
4. Ansible์ ์ฌ์ฉํ์ฌ GitLab Runner ๋ฐ ํ์ํ ๊ด๋ จ ๋๊ตฌ๋ฅผ ์ค์นํ๊ณ ์ค์ ๋ฐ ๊ตฌ์ฑ์ ์ง์ ํฉ๋๋ค.
์ธํ๋ผ ํํฉ ์์
ํ์ํ ๋งํฌ:
ํ ๋ผ ํผ ์ฑ ์๊ฐ์๋ Ansible๊ณผ Terraform์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ ์ข์ต๋๋ค Terraform ์ข ํฉ ๊ฐ์ด๋ Chef, Puppet, Ansible, SaltStack ๋๋ CloudFormation์ด ์๋ Terraform์ ์ฌ์ฉํ๋ ์ด์ GCP: IaC
์ ์ฌํ ๋๊ตฌ
์์ฝํด๋ณด์!
๋จ๊ณ
Technology
๋๊ตฌ
์๋ํ ์ธํ๋ผ์ ๊ฐ์น
1
๋ก์ปฌ ๋ฌ๋
Node.js, ์
๋ ๋, Appium
- ์น๊ณผ ๋ชจ๋ฐ์ผ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ
- ๋ค์ํ ์ธ์ด ๋ฐ ํ๋ซํผ ์ง์(Node.js ํฌํจ)
2
๋ฒ์ ๊ด๋ฆฌ ์์คํ
ํ๋ด
- ๊ฐ๋ฐ ์ฝ๋์ ์ ์ฌํ ์ด์
3
์ปจํ
์ด๋ํ
Docker, Selenium ๊ทธ๋ฆฌ๋, Selenoid(์น, Android)
- ๋ณ๋ ฌ๋ก ํ ์คํธ ์คํ
- ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ
- ๊ฐ๋จํ๊ณ ์ ์ฐํ ๋ฒ์ ์ ๊ทธ๋ ์ด๋
- ์ฌ์ฉํ์ง ์๋ ๋ฆฌ์์ค๋ฅผ ๋์ ์ผ๋ก ์ค์ง
- ๊ฐํธํ ์ค์
4
CI/CD
๊น๋ฉ CI
- ํ์ดํ๋ผ์ธ์ ์ผ๋ถ๋ฅผ ํ ์คํธํฉ๋๋ค.
- ๋น ๋ฅธ ํผ๋๋ฐฑ
- ํ์ฌ/ํ ์ ์ฒด์ ๋ํ ๊ฐ์์ฑ
5
ํด๋ผ์ฐ๋ ํ๋ซํผ
Google Cloud Platform
- ์ฃผ๋ฌธํ ๋ฆฌ์์ค(ํ์ํ ๋๋ง ๋น์ฉ ์ง๋ถ)
- ๊ด๋ฆฌ ๋ฐ ์ ๋ฐ์ดํธ๊ฐ ์ฉ์ดํจ
- ๋ชจ๋ ๋ฆฌ์์ค์ ๋ํ ๊ฐ์์ฑ ๋ฐ ์ ์ด
6
์ค์ผ์คํธ๋ ์ด์
Kubernetes
ํฌ๋ ๋ด๋ถ์ ๋ธ๋ผ์ฐ์ /์๋ฎฌ๋ ์ดํฐ๊ฐ ์๋ ์ปจํ
์ด๋์ ๋งฅ๋ฝ์์:
- ์ค์ผ์ผ๋ง/์๋ ์ค์ผ์ผ๋ง
- ์๊ฐ ์น์
- ์ค๋จ ์๋ ์ ๋ฐ์ดํธ ๋ฐ ๋กค๋ฐฑ
7
์ฝ๋ํ ์ธํ๋ผ(IaC)
ํ
๋ผํผ, ์ค์๋ธ
- ๊ฐ๋ฐ ์ธํ๋ผ์ ์ ์ฌํ ์ด์
- ์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ์ ๋ชจ๋ ์ด์
- ๋ณ๊ฒฝ ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฉ์ดํจ
- ์์ ์๋ํ
๋ง์ธ๋๋งต ๋ค์ด์ด๊ทธ๋จ: ์ธํ๋ผ์ ์งํ
1๋จ๊ณ: ๋ก์ปฌ
2๋จ๊ณ: VCS
3๋จ๊ณ: ์ปจํ
์ด๋ํ
4๋จ๊ณ: CI/CD
5๋จ๊ณ: ํด๋ผ์ฐ๋ ํ๋ซํผ
6๋จ๊ณ:์ค์ผ์คํธ๋ ์ด์
7๋จ๊ณ: IaC
๋ค์์ ๋ญ์ง?
๊ทธ๋์, ์ด๊ฒ์ผ๋ก ๊ธฐ์ฌ๊ฐ ๋๋ฉ๋๋ค. ํ์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก ๋๋ ๋น์ ๊ณผ ๋ช ๊ฐ์ง ํฉ์๋ฅผ ํ๊ณ ์ถ์ต๋๋ค.
๊ทํ์ ์ธก๋ฉด์์
์๋์์ ๋งํ๋ฏ์ด, ์ด ๊ธ์ด ์ค๋ฌด์ ํ์ฉ๋๊ณ , ์ป์ ์ง์์ ์ค์ ์
๋ฌด์ ์ ์ฉํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ค์ ์ถ๊ฐํด์
ํ์ง๋ง ๊ทธ ํ์๋ ๋ฉ์ถ์ง ๋ง๊ณ ์ฐ์ตํ๊ณ ๊ด๋ จ ๋งํฌ์ ์ฑ ์ ๊ณต๋ถํ๊ณ ํ์ฌ์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ์์๋ณด๊ณ ๊ฐ์ ํ ์ ์๋ ๊ณณ์ ์ฐพ์ ์ฐธ์ฌํ์ธ์. ํ์ด์ ๋น์ด์!
๋ด ์ชฝ์์
์ ๋ชฉ์ ๋ณด๋ฉด ์ด๊ฒ์ด ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ๋ถ๊ณผํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ฝค ํฐ ๊ฒ์ผ๋ก ํ๋ช ๋์์์๋ ๋ถ๊ตฌํ๊ณ ์ฌ๊ธฐ์๋ ์ฌ์ ํ ์ค์ํ ์ฃผ์ ๋ฅผ ๋ค๋ฃจ์ง ์์ต๋๋ค. ๋ ๋ฒ์งธ ๋ถ๋ถ์์๋ IOS์ ๋งฅ๋ฝ์์ ์๋ํ ์ธํ๋ผ๋ฅผ ์ดํด๋ณผ ๊ณํ์ ๋๋ค. macOS ์์คํ ์์๋ง iOS ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๋ ๊ฒ์ ๋ํ Apple์ ์ ํ์ผ๋ก ์ธํด ๋น์ฌ์ ์๋ฃจ์ ๋ฒ์๊ฐ ์ข์์ก์ต๋๋ค. ์๋ฅผ ๋ค์ด Docker๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๊ฑฐ๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋จธ์ ์ ์คํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ค๋ฅธ ๋์์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๊ณ ๊ธ ์๋ฃจ์ ๊ณผ ์ต์ ๋๊ตฌ๋ฅผ ํตํด ์ต์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค!
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ํฐ๋ง๊ณผ ๊ด๋ จ๋ ๊ฝค ํฐ ์ฃผ์ ์ ๋ํด์๋ ์ธ๊ธํ์ง ์์์ต๋๋ค. 3๋ถ์์๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธํ๋ผ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ ๊ณ ๋ คํด์ผ ํ ๋ฐ์ดํฐ ๋ฐ ์งํ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก. ์์ผ๋ก๋ ํ ์คํธ ์ธํ๋ผ ๊ตฌ์ถ๊ณผ ์ธ๊ธฐ ๋๊ตฌ์ ๋ํ ๋์์ ๊ฐ์ข๋ฅผ ๊ณต๊ฐํ ๊ณํ์ ๋๋ค. ํ์ฌ ์ธํฐ๋ท์๋ DevOps์ ๋ํ ๊ฐ์ข์ ๊ฐ์๊ฐ ๊ฝค ๋ง์ด ์์ง๋ง, ๋ชจ๋ ์๋ฃ๋ ํ ์คํธ ์๋ํ๊ฐ ์๋ ๊ฐ๋ฐ ๋งฅ๋ฝ์์ ์ ์๋ฉ๋๋ค. ์ด ๋ฌธ์ ์ ๊ดํด์๋ ๊ทธ๋ฌํ ๊ณผ์ ์ด ํ ์คํฐ ๋ฐ ์๋ํ ์์ง๋์ด ์ปค๋ฎค๋ํฐ์ ํฅ๋ฏธ๋กญ๊ณ ๊ฐ์น๊ฐ ์๋์ง์ ๋ํ ํผ๋๋ฐฑ์ด ์ ๋ง๋ก ํ์ํฉ๋๋ค. ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ถ์ฒ : habr.com