ํ๋ ์ํํธ์จ์ด ์์คํ ์ ์ ๋ขฐ์ฑ, ์ ์์ฑ ๋ฐ ์ค๋จ ์๋ ์ ๊ณต์ด๋ผ๋ ์ง์์ ์ธ ์๋ ฅ ์์์ ์ด์๋ฉ๋๋ค. ์์คํ ์ด ๋ฐ์ ํ๊ณ ๋ณต์กํด์ง์ ๋ฐ๋ผ ๋ฆฌํฉํ ๋ง์ ๋ ์ด์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ด ์๋๋ผ ์๋น์ค ํ์ง๊ณผ ์ด์ ์์ ์ฑ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ์ค์ํ ์์ ์ด ๋์์ต๋๋ค. ์ฝ๋๋ฒ ์ด์ค ๋ณํ์ผ๋ก ์ธํ ์ํ์ ์ง์์ ์ธ ๊ฐ์ฉ์ฑ์ด ์๊ตฌ๋๋ ํ๊ฒฝ์์ ๋์ฑ ์ฆํญ๋๋๋ฐ, ์ด๋ฌํ ํ๊ฒฝ์์๋ ์๊ฐ์ ์ธ ์ฅ์ ์กฐ์ฐจ๋ ๋ถ์ฐ ์์คํ ๊ณผ ์ฌ์ฉ์ ์๋น์ค ์ ๋ฐ์ ๊ฑธ์ณ ํ์ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฌํ ๋งฅ๋ฝ์์ ๋ฐฐํฌ ๋ฐฉ๋ฒ๋ก ์ ์์ง๋์ด๋ง ๋ถ์ผ์ ํต์ฌ์ด ๋ฉ๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ(Blue-Green Deployment)๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒฉ๋ฆฌํ๊ณ , ์ด์ ํ๊ฒฝ๊ณผ ์ ์ฌํ ํ๊ฒฝ์์ ๋์์ ๊ฒ์ฆํ๋ฉฐ, ์คํจ ๋ฐ๊ฒฝ์ ์ค์ด๋ ์ฒด๊ณ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ฅ ์ ๊ณต์๋ ๋๋ฆฌ ์ฑํ๋๊ณ ์์ง๋ง, ๋ฆฌํฉํ ๋ง ์๋๋ฆฌ์ค์์์ ์ ๋ต์ ๊ฐ์น๋ ์ข ์ข ๊ฐ๊ณผ๋ฉ๋๋ค. ๋ฆฌํฉํ ๋ง์ ํ๊ท์ ๋กค๋ฐฑ์ด ์ฌ์ํ ๋ฌธ์ ๊ฐ ์๋ ์ธํ๋ผ ๊ณ์ธต, ๊ณต์ ์ข ์์ฑ, ์ํ ์ ์ฅ ๊ตฌ์ฑ ์์์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
๋ณ์ ์ฝ๋. ์์ ์ ์ ์งํ์ธ์.
SMART TS XL Blue-Green Deployment๋ ์๋น์ค์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉด์ ๊ตฌ์กฐ์ ๋ณํ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ํ๋ ฅํฉ๋๋ค.
์ง๊ธ ํ์์ด ๊ธ์์๋ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ์ผ๋ฐ์ ์ธ ๋ฆด๋ฆฌ์ค ํจํด์ด ์๋, ๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง์ ๋ณต์ก์ฑ๊ณผ ์ํ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ง์ถคํ ์๋ฃจ์ ์ผ๋ก ์ดํด๋ด ๋๋ค. ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์ ์ฌ์ธต์ ์ธ ๋ถ์์ ์ ๊ณตํฉ๋๋ค. ํ๊ฒฝ ์ค์ผ์คํธ๋ ์ด์ , ํธ๋ํฝ ๊ด๋ฆฌ ๋ฐ ์ฅ์ ๋ณต๊ตฌ์ ์๋ํ ๋๊ตฌ(์: SMART TS XL ๊ด์ฐฐ์ฑ, ๊ฒ์ฆ ๋ฐ ๋ฐฐํฌ ์ ๋ขฐ๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ ๊ฑฐ์ ์์คํ , ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ ๋๋ ๊ณ ๋๋ก ๊ฒฐํฉ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ์์ง๋์ด๋ง ํ์ ๊ฒฝ์ฐ Blue-Green Deployment๋ ๊ฐ๋ ์๊ฐ์ด๋ ์์ ์ฑ์ ์์์ํค์ง ์๊ณ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ์ ์คํํ ์ ์๋ ์ฒด๊ณ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ์๊ฐ
๋ณต์กํ ์์คํ ์ ๋ฆฌํฉํ ๋งํ๋ ค๋ฉด ์ฝ๋์ ์ ํ์ฑ๋ฟ๋ง ์๋๋ผ ์ด์ ์์ ์ฑ์ ๋ํ ํ์ ์ด ํ์ํฉ๋๋ค. ํต์ฌ ์ถ์ํ, ์ข ์์ฑ ๋๋ ์ธํฐํ์ด์ค์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ ๊ฒฝ์ฐ, ๊ธฐ์กด ๋ฐฐํฌ ๋ฐฉ์์ ์ํ์ ํจ๊ณผ์ ์ผ๋ก ์ฐจ๋จํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ํต์ ๋๊ณ ๋๋๋ฆด ์ ์๋ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํ์ฌ ์ด๋ฌํ ๋ถํ์ค์ฑ์ ๊ด๋ฆฌํ๋ ์ฒด๊ณ์ ์ธ ์ ๋ต์ ์ ์ํฉ๋๋ค. ๋ฆฌํฉํ ๋ง ๊ณผ์ ์์ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ๊ตฌ์ฒด์ ์ธ ์ฅ์ ์ ์ดํด๋ณด๊ธฐ ์ ์, ์ด ์ ๊ทผ ๋ฐฉ์์ ์๋ ์๋ฆฌ์ ์ค์์ฑ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ ์ ๋ฐ ํต์ฌ ๊ฐ๋
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋ ๊ฐ์ ๋์ผํ ํ๊ฒฝ์ ์ ์งํ๋ ๋ฆด๋ฆฌ์ค ์ ๋ต์ ๋๋ค. ํ๋๋ ํ๋ก๋์ ํธ๋ํฝ์ ํ์ฑ ์ํ๋ก ์ฒ๋ฆฌํ๋ ๋ธ๋ฃจ ํ๊ฒฝ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ์ ํด ์ํ์ด์ง๋ง ์์ ํ ๋๊ธฐํ๋ ๊ทธ๋ฆฐ ํ๊ฒฝ์ ๋๋ค. ์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋น๋๋ฉด ๋นํ์ฑ ํ๊ฒฝ์ ๋ฐฐํฌ๋ฉ๋๋ค. ๊ฒ์ฆ ๋ฐ ํ ์คํธ ํ, ๋ผ์ด๋ธ ํธ๋ํฝ์ ๋ธ๋ฃจ ํ๊ฒฝ์์ ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก ์ ํ๋ฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋๋ ์์ ์ ์ ๋ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค. ํน์ ์์ ์ ๋จ ํ๋์ ํ๊ฒฝ๋ง ๋ผ์ด๋ธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฐฐํฌ๋ ์ด์ง ์์ ์ด ๋ฉ๋๋ค. ์ฆ, ํธ๋ํฝ์ ์ด์ ๋ฒ์ ์ด๋ ์ ๋ฒ์ ์ผ๋ก ๋ผ์ฐํ ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ณต์ ํ๊ฒฝ์์ ๋ถ๋ถ์ ์ธ ๋กค์์์ด๋ ์ฆ๋ถ ์ ๋ฐ์ดํธ์ ๊ด๋ จ๋ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
๋ฆฌํฉํ ๋ง์์ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ธฐ๋ฅ ๊ฐ๋ฐ๊ณผ ๋ฌ๋ฆฌ ๋ฆฌํฉํ ๋ง์ ๋์ ๋ณด์ด๋ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ด๋ถ ๋ก์ง, ์ฝ๋ ๊ตฌ์กฐ ๋๋ ์์คํ ์ธํฐํ์ด์ค๋ฅผ ์์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ๋ณ๊ฒฝ์ ๊ธฐ์กด ํ ์คํธ๋ฅผ ํตํด ๊ฒ์ฆํ๊ธฐ๊ฐ ๋ณธ์ง์ ์ผ๋ก ์ด๋ ต๊ธฐ ๋๋ฌธ์, ์ฆ์ ๋ฐฐํฌํ๋ ๋ฐ ์ํ์ด ๋ฐ๋ฆ ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ํ์ฌ ์ด์ ์ํ์ ๋ฆฌํฉํ ๋ง๋ ๋ฒ์ ์ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํฉ๋๋ค. ํ์ ์ด์ ํ๊ฒฝ์ ์ฌํํ๋ ํ๊ฒฝ์์ ๋ฆฌํฉํ ๋ง๋ ์ฝ๋๋ฅผ ๋ฐฐํฌํ๊ณ ์ฒ ์ ํ๊ฒ ํ ์คํธํ ์ ์์ต๋๋ค. ์์คํ ๋์, ์ฑ๋ฅ ๋ฒค์น๋งํฌ ๋ฐ ํตํฉ ์ง์ ์ ํ์ธํ ํ์๋ง ์ ํ์ด ์งํ๋ฉ๋๋ค. ์ฅ์ ๋๋ ํ๊ท ๋ฐ์ ์, ์์คํ ์ ์ฌ๊ตฌ์ถํ๊ฑฐ๋ ์ฌ๊ตฌ์ฑํ ํ์ ์์ด ํธ๋ํฝ์ ์ฆ์ ์์ ์ ์ธ ํ๊ฒฝ์ผ๋ก ๋ฆฌ๋๋ ์ ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด ์คํจ ๋ฐ๊ฒฝ์ด ์ต์ํ๋๊ณ , ๋กค๋ฐฑ ์๋๊ฐ ํฅ์๋๋ฉฐ, ์ฌ๊ฐํ ๊ธฐ์ ์ ๋ณ๊ฒฝ ์ ๋์ฑ ์์ ์ ์ธ ์์ ๋ง์ ์ ๊ณตํฉ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ์ฃผ์ ์ด์
Blue-Green ๋ฐฐํฌ๋ ๋ฆฌํฉํ ๋ง๊ณผ ๊ฐ์ ๊ณ ์ํ ๋ณ๊ฒฝ์ ํนํ ์ ํฉํ ์ผ๋ จ์ ์ด์ ๋ฐ ์์ง๋์ด๋ง ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ์๋น์ค ์ค๋จ ์์: ์ฌ์ฉ์ ๊ฒฝํ ๋ค์ด ํ์ ์์ ๋ฐฐํฌ ์ค.
- ํต์ ๋ ๋ ธ์ถ: ์๋ก์ด ๋ฒ์ ์ ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉํ๊ธฐ ์ ์ ๊ฒฉ๋ฆฌ๋ ์ํ์์ ํ ์คํธํ ์ ์์ต๋๋ค.
- ์ฆ์ ๋กค๋ฐฑ: ์ฅ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํธ๋ํฝ์ ์ฆ์ ์๋ ค์ง ์ํธํ ํ๊ฒฝ์ผ๋ก ๋ฆฌ๋๋ ์ ๋ ์ ์์ต๋๋ค.
- ์ผ๊ด๋ ํ๊ฒฝ: ๋ ํ๊ฒฝ์ด ๊ตฌ์กฐ์ ์ผ๋ก ๋์ผํ๋ฏ๋ก ๊ตฌ์ฑ ํธ์ฐจ๊ฐ ์ต์ํ๋ฉ๋๋ค.
- ๋ ํฐ ์์ ๊ฐ: ์์ง๋์ด๋ ์ธก์ ๊ฐ๋ฅํ ์ํ ์ต์ ์ ๋ ๋ช ํํ ์ฑ ์ ์์ฌ๋ฅผ ๋ฐํ์ผ๋ก ๊ตฌ์กฐ์ ๋ณํ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ชจ๋ ํฉ์น๋ฉด Blue-Green ๋ฐฐํฌ๋ ๊ฐ์ฉ์ฑ์ด๋ ์์ ์ฑ์ ์์์ํค์ง ์๊ณ ์ค์ํ ๋ด๋ถ ๋ณ๊ฒฝ์ ์ํํ๋ ํ์ ์ํ ๊ธฐ๋ฐ ์ ๋ต์ด ๋ฉ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ์๋ ๋ฐฉ์
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋จ์ํ ๋ฆด๋ฆฌ์ค ํจํด์ด ์๋๋ผ, ์ค๋ณต์ฑ, ์ ์ด, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ญ์ฑ์ ๊ธฐ๋ฐํ ์ด์ ์ค๊ณ ์ฒ ํ์ ๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋ฐฐํฌ๋ฅผ ๋จ์ํ ๊ต์ฒด ํ์์์ ๋์ฒด ๊ณผ์ ์ผ๋ก ์ ํํ์ฌ, ์์คํ ์ ๊ฐ์ฉ์ฑ์ด๋ ๋ฌด๊ฒฐ์ฑ์ ์ ํดํ์ง ์๊ณ ํ๋์ ์ด์ ํ๊ฒฝ์ ๋ค๋ฅธ ์ด์ ํ๊ฒฝ์ผ๋ก ๊ต์ฒดํ ์ ์๋๋ก ํฉ๋๋ค. ๋ณธ์ง์ ์ผ๋ก, ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ์ด์ ํ๊ฒฝ์ ์ฝ๋์ ์ฌ์ฉ์ ๊ฐ์ ์ ์ด ๊ฐ๋ฅํ ์ธํฐํ์ด์ค๋ก ์ทจ๊ธํ๋ฉฐ, ๊ธฐ์กด ๋ณ๊ฒฝ ์ฌํญ์ ์ ๊ฑฐํจ์ผ๋ก์จ ์ํ์ ์ต์ ํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ๋ก ์ ํนํ ์ง์์ ๋ฐฐํฌ, ์ธํ๋ผ ํ๋ํ ๋๋ ๋ณต์กํ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ ์์คํ ์ ์ ํฉํฉ๋๋ค. ๊ธฐ์กด ๋ฐฐํฌ ๋ฐฉ์์ ๋ผ์ด๋ธ ์์คํ ์ ๋ถ๋ถ์ ์ผ๋ก ์ ์ฉ๋ ๋ณ๊ฒฝ, ๊ตฌ์ฑ ๋๋ฆฌํํธ ๋๋ ์คํจํ ์์ ์ํ์ค์ ๋ ธ์ถ์ํค๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ์ด์ ํ๊ฒฝ๊ณผ ๋์ผํ ํ๊ฒฝ์์ ์ ์ฝ๋๋ฅผ ์คํ ์ด์งํ๊ณ , ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์์ ์ฑ์ ๊ฒ์ฆํ๋ฉฐ, ์ด์์ ๋ํ ํ์ ์ด ํ๋ฆฝ๋ ๋๋ง ํธ๋ํฝ์ ์ ํํจ์ผ๋ก์จ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
์ด ์ ๋ต์ ์์ ์ ์ผ๋ก ์คํํ๋ ค๋ฉด ํ์ ์ธ ๊ฐ์ง ํต์ฌ ๊ตฌ์ฑ ์์๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค. ๋ ํ๊ฒฝ์ด ์ด๋ป๊ฒ ๊ตฌ์ถ๋๊ณ ์ ์ง๋๋์ง, ๋ฐฐํฌ ํ๋ก์ธ์ค๊ฐ ๋จ๊ณ๋ณ๋ก ์ด๋ป๊ฒ ์ํ๋๋์ง, ํธ๋ํฝ ๋ผ์ฐํ ์ด ์ ๋ฐํ๊ณ ์์ ํ๊ฒ ์ด๋ป๊ฒ ์กฐ์จ๋๋์ง์ ๋๋ค.
๋ ๊ฐ์ง ํ๊ฒฝ: ํ๋์ ๋ ๋ น์
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ๊ธฐ๋ฐ์ ํ๊ฒฝ ๋ณต์ ์ ๋๋ค. ๋ธ๋ฃจ์ ๊ทธ๋ฆฐ ๋ ํ๊ฒฝ์ ๋ณ๋ ฌ๋ก ์กด์ฌํด์ผ ํ๋ฉฐ ๋ ผ๋ฆฌ์ ๋ฐ ์ด์์ ์ผ๋ก ๋์ผํด์ผ ํฉ๋๋ค. ์ด๋ ๋จ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋๋ ๊ฐ์ ๋จธ์ ์ ๋ณต์ ํ๋ ๊ฒ์ ๋์ด์ญ๋๋ค. ๊ฐ ํ๊ฒฝ์ ์ปดํจํ , ๋คํธ์ํฌ ๊ตฌ์ฑ, ๋ฐํ์ ์ข ์์ฑ, ๋ฏธ๋ค์จ์ด, ๊ทธ๋ฆฌ๊ณ ๋ก๊น , ์ธ์ฆ, ์๋น์ค ๊ฒ์๊ณผ ๊ฐ์ ์ง์ ์๋น์ค๋ฅผ ํฌํจํ ์ ์ฒด ์ธํ๋ผ ์คํ์ ๋ณต์ ํด์ผ ํฉ๋๋ค.
๋๋ถ๋ถ์ ๊ตฌํ์์ ๋ธ๋ฃจ ํ๊ฒฝ์ ๋ผ์ด๋ธ ์ํ์ด๋ฉฐ ๋ชจ๋ ํ๋ก๋์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด, ๊ทธ๋ฆฐ ํ๊ฒฝ์ ์คํ๋ผ์ธ ์ํ์ด์ง๋ง ์์ ํ ํ์ฑํ๋์ด ์์ผ๋ฉฐ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ์ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋๋ฉด ๊ทธ๋ฆฐ ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ฉฐ, ๊ทธ๋ฆฐ ํ๊ฒฝ์ ์ปท์ค๋ฒ ์ ์คํ ์ด์ง ์กด ์ญํ ์ ํฉ๋๋ค. ๋ชจ๋ ํ ์คํธ, ๊ฒ์ฆ ๋ฐ ๊ด์ธก ๊ณ์ธก์ ์ฌ๊ธฐ์์ ์ด๋ฃจ์ด์ง๋๋ค. ์ค์ํ ์ ์ ๋ ํ๊ฒฝ์ด ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฆฐ ํ๊ฒฝ์ ์ฅ์ ๊ฐ ํ๋ก๋์ ์ ์ฆ๊ฐ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ๊ฒฉ๋ฆฌ๋ฅผ ํตํด ๊ฐ๋ฐ ๋ฐ ์ด์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต๋ฟ ์๋๋ผ ์์คํ ์์ค์์๋ ๋ณ๊ฒฝ ํ์ฑํ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
๋ฐฐํฌ ํ๋ก์ธ์ค ๋จ๊ณ๋ณ
๋ฐฐํฌ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ ๋จ๊ณ๋ ์ด์ ์ํ์ ์ต์ํํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ํ๋ก์ธ์ค์ ์ฃผ์ ๋จ๊ณ๋ฅผ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ๋ น์ ํ๊ฒฝ ์ค๋น
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ๋ชจ๋ ์ด์ ์ธก๋ฉด์์ ํ์ฌ ๋ธ๋ฃจ ํ๊ฒฝ์ ๋ฏธ๋ฌ๋งํ๋๋ก ๊ทธ๋ฆฐ ํ๊ฒฝ์ ํ๋ก๋น์ ๋ํ๊ณ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ธํ๋ผ ์ค์ (์ธ์คํด์ค, ์ปจํ ์ด๋, ๋คํธ์ํน), ๊ตฌ์ฑ ๊ฐ(ํ๊ฒฝ ๋ณ์, ์ํฌ๋ฆฟ, ์์คํ ์์ฑ) ๋ฐ ์ง์ ์๋น์ค ๋๋ ๋ฐํ์ ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋ฉ๋๋ค.
์ผ๊ด์ฑ๊ณผ ๋ฐ๋ณต์ฑ์ ๋ณด์ฅํ๋ ค๋ฉด ์ด ๋จ๊ณ๋ฅผ ์๋ํํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. Terraform, Pulumi, AWS CloudFormation๊ณผ ๊ฐ์ Infrastructure as Code ๋๊ตฌ๋ ํ๊ฒฝ์ ์ฌํ์ฑ๋ฟ๋ง ์๋๋ผ ๋ฒ์ ๊ด๋ฆฌ๋ ๋ณด์ฅํ๋ ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ค๋น ๋จ๊ณ๋ ๊ฒฐ์ ๋ก ์ ์ด๊ณ ๊ฒฉ๋ฆฌ๋ ๊ฒ์ฆ ํ๋ก์ธ์ค์ ํ ๋๋ฅผ ๋ง๋ จํฉ๋๋ค.
2. ์ ๋ฒ์ ๋ฐฐํฌ
๊ทธ๋ฆฐ ํ๊ฒฝ์ด ํ๋ก๋น์ ๋๋๋ฉด ๋ค์ ๋จ๊ณ๋ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ ๋ฐ์ดํธ๋ ๋ฐ์ด๋๋ฆฌ, ์ปจํ ์ด๋ ์ด๋ฏธ์ง, ๊ตฌ์ฑ ๋ณ๊ฒฝ ๋๋ ์์คํ ๋ฆฌํฉํ ๋ง์ด ํฌํจ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฆฐ ํ๊ฒฝ์ ์์ง ํ๋ก๋์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ์ง ์์ผ๋ฏ๋ก, ๊ธด๊ธ์ฑ์ด๋ ๋ผ์ด๋ธ ์ฅ์ ์ ๋ํ ์ฐ๋ ค ์์ด ๋ฐฐํฌ๋ฅผ ์งํํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์์ ํ์ ๋ชจ๋ ๋ฐ์ดํฐ ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์ด ์์ ํ๊ณ ๋ฒ์ ๊ด๋ฆฌ๋๋ ๋ฐฉ์์ผ๋ก ์คํ๋๋๋ก ํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ ํ ๊ณผ์ ์์ ๋ธ๋ฃจ ๋ฒ์ ๊ณผ ๊ทธ๋ฆฐ ๋ฒ์ ์ ๋ชจ๋ ์์ฉํ ์ ์๋๋ก ๊ฐ์ญ์ ๋ณ๊ฒฝ์ ์ง์ํ๊ฑฐ๋ ์ด์ค ์คํค๋ง ํธํ์ฑ์ ๊ตฌ์ถํ๋ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
3. ๊ฒ์ฆ ๋ฐ ํ ์คํธ ์ํ
์ด ๋จ๊ณ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ทธ๋ฆฐ ํ๊ฒฝ์ ์๋ก ๋ฐฐํฌ๋ ๋ฒ์ ์ ํ๋ก๋์ ํธ๋ํฝ์ ์์ ํ๊ธฐ ์ ์ ํฌ๊ด์ ์ธ ๊ฒ์ฆ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์๋๊ณ ์ฃผ์ ์๋ํฌ์ธํธ๊ฐ ์๋ตํ๋์ง ํ์ธํ๊ธฐ ์ํ ์ค๋ชจํฌ ํ ์คํธ์ ๋๋ค.
- ์๋น์ค ๊ฐ ํต์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค, API ๋์์ ๊ฒ์ฆํ๊ธฐ ์ํ ํตํฉ ํ ์คํธ์ ๋๋ค.
- ํ๊ท๋ ๋ฆฌ์์ค ๋ณ๋ชฉ ํ์์ ๊ฐ์งํ๊ธฐ ์ํ ์ฑ๋ฅ ๋ฒค์น๋งํฌ์ ๋๋ค.
- ์ค์ ํ๊ฒฝ์์์ ๋์์ ํ๊ฐํ๊ธฐ ์ํด ํ๋ก๋์ ๊ณผ ์ ์ฌํ ์์ฒญ์ ๋ น์ ํ๊ฒฝ์ ๋ง์ถฐ ์ฌ์ํ๋ ํฉ์ฑ ๋ชจ๋ํฐ๋ง ๋๋ ๋ฏธ๋ฌ๋ง ํธ๋ํฝ ๋ถ์์ ๋๋ค.
์ด ๋จ๊ณ์์๋ ๋ก๊ทธ ์ง๊ณ, ์ถ์ , ๋ฉํธ๋ฆญ ์์ง์ ํฌํจํ ๊ด์ฐฐ ๋๊ตฌ๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค. ๋ชฉํ๋ ์ด์ ์งํ๋ฅผ ์ฌ์ ์ ๊ฐ์งํ๊ณ ์ ํ ์ ์ ๋ชจ๋ ์์คํ ์ด ์์๋๋ก ์๋ํ๋์ง ๊ฒ์ฆํ๋ ๊ฒ์ ๋๋ค.
4. ํ๋ก๋์ ํธ๋ํฝ ์ ํ
ํ์ ์ด ํ๋ฆฝ๋๋ฉด ๋ค์ ๋จ๊ณ๋ ๋ผ์ด๋ธ ํธ๋ํฝ์ ๋ธ๋ฃจ ํ๊ฒฝ์์ ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋๋ค. ์ด ์ ํ์ ์์์ ์ด๊ณ ๋น ๋ฅด๋ฉฐ ๊ด์ฐฐ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค. ์ํคํ ์ฒ์ ๋ฐ๋ผ ์ผ๋ฐ์ ์ผ๋ก ๋ค์์ ์ ๋ฐ์ดํธํ์ฌ ์ํ๋ฉ๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์ ๋์ ๊ทธ๋ฃน ๋๋ ๋ฐฑ์๋ ํ
- ํ๊ฒฝ ์๋ํฌ์ธํธ๋ฅผ ๊ฐ๋ฆฌํค๋ DNS ๋ ์ฝ๋
- ์๋น์ค ๋ฉ์ ๋ผ์ฐํ ๊ตฌ์ฑ
๋์๋ณด๋์ ์๋ฆผ์ ํ์ฑํํ์ฌ ์ง์ฐ ์๊ฐ ๊ธ์ฆ, ์ค๋ฅ์จ ์ฆ๊ฐ ๋๋ ์ฒ๋ฆฌ๋ ๋ณํ๋ฅผ ๊ฐ์งํ๊ณ ์ ํ์ ๋ฉด๋ฐํ ์ถ์ ํด์ผ ํฉ๋๋ค. ๋ํ, ์ด์ ์ธ์ ๋ฐ ๊ท์ ํ๊ฒฝ์ ๊ท์ ์ค์๋ฅผ ์ํด ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ฌํ ์ ์์ด์ผ ํฉ๋๋ค.
5. ์ด์ ํ์ ๋ชจ๋ํฐ๋ง
์ ํ ํ์๋ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง์ด ํ์์ ์ ๋๋ค. ๋ น์ ํ๊ฒฝ์ ์ด์ ์ค์๊ฐ ๊ตํต์ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ์ ์ฌ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ์ฒ์ ๋ช ๋ถ์์ ๋ช ์๊ฐ ์ฌ์ด์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ ๋ค์์ ํฌํจํ ์ฃผ์ ์ํ ์งํ๋ฅผ ์ถ์ ํด์ผ ํฉ๋๋ค.
- HTTP ์ค๋ฅ์จ
- ์ง์ฐ ์๊ฐ ๋ถํฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์ฑ๋ฅ
- ์ธ๋ถ ์ข ์์ฑ ๋์
์ด ์์ ์ ํนํ ๊ณ ๊ฐ ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ด๋ถ ์ดํด๊ด๊ณ์ ๋๋ ํ ์คํธ ์ฌ์ฉ์๋ก๋ถํฐ ์ ์ฑ์ ์ธ ํผ๋๋ฐฑ์ ์์งํ๋ ์์ ์ด๊ธฐ๋ ํฉ๋๋ค. ๋ชจ๋ํฐ๋ง์ ์ ์ ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ฉฐ, ๋ธ๋ฃจ ํ๊ฒฝ์ ๊ธฐ์ค ๋์์ ๊ธฐ๋ฐ์ผ๋ก ํ ์๋ฆผ ์๊ณ๊ฐ์ ํฌํจํด์ผ ํฉ๋๋ค.
6. ํธ๋ฅธ ํ๊ฒฝ์ ํ๊ธฐํ๊ฑฐ๋ ๋ณด์กดํ์ธ์
์ปท์ค๋ฒ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๊ณ ์์ ํ ๊ธฐ๊ฐ ํ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋์ง ์์ผ๋ฉด ๋ธ๋ฃจ ํ๊ฒฝ์ ํ๊ธฐ๋ ์ ์์ต๋๋ค. ์ผ๋ถ ํ์์๋ ๋ค์ ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก ์ฌํ์ฉ๋๊ธฐ ์ ์ ํด๋ฐฑ ์ต์ ์ผ๋ก ์ผ์ ๊ธฐ๊ฐ ๋์ ๋ณด์กด๋ฉ๋๋ค.
์ด ๋ง์ง๋ง ๋จ๊ณ๋ ํ๊ณ ๋ฅผ ์ํํ๊ณ , ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ๋ฅผ ๊ฒํ ํ๊ณ , ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ํ์ํ ๊ฐ์ ์ฌํญ์ ๋ฌธ์ํํ๋ ์ ๋ต์ ์์ ์ด๊ธฐ๋ ํฉ๋๋ค. ์ฑ์ํ ํ์์๋ ๋ธ๋ฃจ ํ๊ฒฝ๊ณผ ๊ทธ๋ฆฐ ํ๊ฒฝ์ด ์ ๊ธฐ์ ์ผ๋ก ์ํํ๋ฉฐ, ๊ฐ ํ๊ฒฝ์ ์๋ ์ํ์ ๋ค์ ๊ธฐ์ค์ด ๋ฉ๋๋ค.
ํธ๋ํฝ ์ ํ ๋ฐ ๋กค๋ฐฑ ์ ๋ต
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ์์ ์ฑ์ ํ๊ฒฝ ๊ฐ ํธ๋ํฝ์ ์ํํ๊ฒ ์ ๋ฌํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํด๋น ๊ฒฐ์ ์ ์ ์ํ๊ฒ ๋๋๋ฆด ์ ์๋ ๋ฅ๋ ฅ์ ๋ฌ๋ ค ์์ต๋๋ค. ๋ผ์ฐํ ์ ๋จ์์ฑ๊ณผ ๊ฐ์ญ์ฑ์ ๊ณ ๋ คํ์ฌ ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ ์ ๋ฐ์ดํธ๋ ์ต์ํ์ ์ค๋จ์ผ๋ก ๊ฑฐ์ ์ฆ๊ฐ์ ์ธ ์ ํ์ ์ ๊ณตํ๋ฉฐ, ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ API ๋๋ ์ฝ๋ํ ์ธํ๋ผ(IaC) ๋๊ตฌ๋ฅผ ํตํด ์ ์ด๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. DNS ๊ธฐ๋ฐ ๋ผ์ฐํ ๋ ์ ์ฌํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ง๋ง, ์ ํ ์ง์ฐ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์๋น์ค ๋ฉ์ ์๋ฃจ์ ์ ์ธ๋ฐํ ํธ๋ํฝ ์ ์ด๋ฅผ ์ง์ํ์ฌ ํ์์ ๋ฐ๋ผ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ํ๋ ์์ํฌ ๋ด์์ ์นด๋๋ฆฌ์ ํจํด๊ณผ ์ ์ฌํ ํธ๋ํฝ ํ๋ฆ์ ํ์ฉํฉ๋๋ค.
์ปท์ค๋ฒ ์ดํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ๋กค๋ฐฑ์ ํธ๋ํฝ์ ๋ธ๋ฃจ ํ๊ฒฝ์ผ๋ก ๋ค์ ๋ผ์ฐํ ํ๊ณ ๊ทธ๋ฆฐ ์ธ์คํด์ค๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ์กฐ์ฌํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ์ง ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์์ ๊ณผ ๊ฐ์ด ํ๊ดด์ ์ด๊ฑฐ๋ ๋๋๋ฆด ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋์ ๋์ง ์๋๋ก ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ์ ๋กค๋ฐฑ ์๋๋ฆฌ์ค๋ฅผ ๋ฐฐํฌ ๊ณํ์ ์ผ๋ถ๋ก ์ค๊ณํด์ผ ํ๋ฉฐ, ๋์ค์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์๋๋๋ค.
๋ฆฌํฉํ ๋ง์์์ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ
๋ฆฌํฉํ ๋ง์ ์ฝ๋ ํ์ง ์ ์ง, ๊ธฐ์ ๋ถ์ฑ ํด์, ๊ทธ๋ฆฌ๊ณ ํฅํ ์ฑ์ฅ์ ๋๋นํ ์์คํ ์ค๋น๋ฅผ ์ํ ๊ธฐ๋ณธ์ ์ธ ์์ง๋์ด๋ง ๊ดํ์ ๋๋ค. ํ์ง๋ง ์ฅ๊ธฐ์ ์ธ ์ด์ ์๋ ๋ถ๊ตฌํ๊ณ ์ฆ๊ฐ์ ์ธ ์ด์์์ ์ํ์ ์๋ฐํฉ๋๋ค. ์ฝ๋๋ฒ ์ด์ค, ์ธํฐํ์ด์ค ๋๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ์ ์๋์น ์๊ฒ ์ข ์์ฑ์ ์์์ํค๊ฑฐ๋, ํ๊ท๋ฅผ ์ ๋ฐํ๊ฑฐ๋, ๋ช ํํ์ง ์์ ๋ฐฉ์์ผ๋ก ๋์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ํนํ ๊ธด๋ฐํ ๊ฒฐํฉ, ๋ ๊ฑฐ์ ์ฝ๋ ๋๋ ์ ํ๋ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๊ฐ์ง ์์คํ ์์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
๋ฆฌํฉํ ๋ง์ ํต์ฌ ๊ณผ์ ๋ ์ ๋ฒ์ ์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ์์ ํ๊ฒ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ๊ณผ ๋ฌ๋ฆฌ, ๋ฆฌํฉํ ๋ง์ ํ์ค ๊ธฐ๋ฅ ํ ์คํธ๋ฅผ ํตํด ์ฝ๊ฒ ๊ฒ์ฆํ ์ ์๋ ์ฌ์ฉ์๊ฐ ์ง์ ํ์ธํ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ญ ๋๋ค. ๋์ , ์ฑ๊ณต ๊ธฐ์ค์ ์ข ์ข ๋ด๋ถ์ ์ธ ์์, ์ฆ ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ ํฅ์, ๋ณต์ก์ฑ ๊ฐ์, ๋๋ ๋์์ธ ํจํด ์ค์์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ, ๊ธฐ์กด ๋ฐฐํฌ ๋ฐฉ์์ ๋ฐํ์ ์ค๋ฅ๋ก๋ถํฐ ๋ณดํธํด ์ฃผ์ง ๋ชปํฉ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ์ ๋ต์ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ฆฌํฉํ ๋ง๋ ์ฝ๋๋ฅผ ์ด์ ํ๊ฒฝ๊ณผ ๋ณํ๋๋ ํ๊ฒฝ์์ ๊ฒฉ๋ฆฌํ๊ณ ์ ์ด๋ ํธ๋ํฝ ์ ํ์ ํ์ฉํจ์ผ๋ก์จ, ํ์ ์๋น์ค ์ฐ์์ฑ์ ๋ฐฉํดํ์ง ์๊ณ ์ค์ํ ๋ด๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋ธ์ ์์ ํ ์คํ, ์ ์ํ ๋กค๋ฐฑ, ๊ทธ๋ฆฌ๊ณ ์ฒ ์ ํ ๊ฒ์ฆ์ ์ง์ํ๋ฉฐ, ์ด๋ ๋ชจ๋ ๊ณ ์ํ ๋ฆฌํฉํ ๋ง ํ๋ก์ ํธ์ ํ์์ ์ ๋๋ค.
๋ฆฌํฉํ ๋ง ์ค ๋ค์ดํ์ ์ต์ํ์ ์ญํ
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ๊ฐ์ฅ ์ค์ฉ์ ์ธ ์ฅ์ ์ค ํ๋๋ ๋ฐฐํฌ ๊ณผ์ ์์ ๋ค์ดํ์์ ์ ๊ฑฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฆฌํฉํ ๋ง์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์๋น์ค ์ค์ผ์คํธ๋ ์ด์ ๋ก์ง, ํต์ฌ ๋น์ฆ๋์ค ๊ท์น๊ณผ ๊ฐ์ ์์คํ ์ ๊ธฐ๋ฐ ๊ณ์ธต์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์๋ฆฌ์ ์ ์ฉํ๋ฉด ์ฐ์์ ์ธ ํจ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ํนํ ๋ชจ๋๋ฆฌ์ ์์คํ ์ด๋ ๋ณต์กํ ์ข ์์ฑ์ ๊ฐ์ง ๋ถ์ฐ ์ํคํ ์ฒ์์ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
๋ฆฌํฉํ ๋ง๋ ์์คํ ์ ๊ทธ๋ฆฐ ํ๊ฒฝ์์ ์คํ ์ด์งํ๋ฉด ํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฐฉํดํ์ง ์๊ณ ๋ฐฐํฌ๋ฅผ ๋ฆฌํ์ค, ๊ฒ์ฆ ๋ฐ ์๋ฃํ ์ ์์ต๋๋ค. ๋ธ๋ฃจ ํ๊ฒฝ์์ ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก์ ์ ํ์ ํธ๋ํฝ์ ๊ฐ๋จํ ๋ฆฌ๋๋ ์ ํ๋ ๊ฒ์ผ๋ก, ๋ช ๋ถ๋ฐ์ ๊ฑธ๋ฆฌ์ง ์์ผ๋ฉฐ ํต์ฌ ์๋น์ค๋ฅผ ์ฌ์์ํ๊ฑฐ๋ ์ด๊ธฐํํ ํ์๊ฐ ์์ต๋๋ค. ๋ฆฌํฉํ ๋ง ์ค์ธ ์์คํ ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ปค๋ ์ฅ๊ธฐ ํธ๋์ญ์ ๊ณผ ๊ฐ์ ์ํ ์ ์ฅ ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ํ์ฑ ์ธ์ ์ ์ค๋จํ์ง ์๊ณ ๋ ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ ์กฐ์ ๋ ๋ฐฉ์์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋ถ๋ฆฌ๋ฅผ ํตํด ํ์ ๋ฐฐํฌ ๊ธฐ๊ฐ, ์ ์ง ๊ด๋ฆฌ ์ค๋จ ๋๋ ๋กค๋ฐฑ ๋ถ์์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์์ง๋์ด๋ง ์ ํ์ฑ๊ณผ ๊ตฌ์กฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ง์คํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ API ๋ฆฌํฉํ ๋ง์ ์ํ ๊ฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ์๋น์ค API๋ฅผ ๋ฆฌํฉํ ๋งํ๋ฉด ํน๋ณํ ์ํ์ด ๋ฐ์ํฉ๋๋ค. ์ํ ๋น์ ์ฅ ์ฝ๋์ ๋ฌ๋ฆฌ, ๋ฐ์ดํฐ ๋ฐ ์ธํฐํ์ด์ค ๋ณ๊ฒฝ์ ์ข ์ข ๋ณต๊ตฌํ๊ธฐ ์ด๋ ค์ด ์ง์์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ด์ ํ๊ฒฝ์ ์ง์ ๋ฐฐํฌ๋ ์ฃผ์ ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฐ์ดํฐ๋ฅผ ์์์ํค๊ฑฐ๋ ์ข ์ ์๋น์ค๋ฅผ ์๋ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, API ๋ฆฌํฉํ ๋ง์ ์ฌ๋ฌ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ํ์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์์ต๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋จ๊ณ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ฑํํ์ฌ ์ด๋ฌํ ์ํ์ ์ค์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์คํค๋ง๋ฅผ ๊ธฐ์กด ๋ฐ ์ ๋ฐ์ดํฐ ํ์์ ๋ชจ๋ ์ง์ํ๋ ์ด์ค ๋ฒ์ ์ฝ๋์ ํจ๊ป ๊ทธ๋ฆฐ ํ๊ฒฝ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์๋ํ๋ ํ ์คํธ์ ๋ฏธ๋ฌ๋ง๋ ํธ๋ํฝ์ ํตํด ๋ง์ด๊ทธ๋ ์ด์ ๋ก์ง์ ๊ฒ์ฆํ๊ณ ์ค์๊ฐ์ผ๋ก ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค. ๋์ผํ ์์น์ด API์๋ ์ ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฆฐ ํ๊ฒฝ์ ๋ฒ์ ์ด ์ง์ ๋ ์๋ํฌ์ธํธ๋ฅผ ๋ ธ์ถํ ์ ์์ผ๋ฉฐ, ํตํฉ ๊ฒ์ฌ๋ฅผ ํตํด ๋ค์ด์คํธ๋ฆผ ์๋น์์ ์ ์์ ์ธ ๋์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ค ํ๊ฒฝ ์ํคํ ์ฒ๋ ๊ธฐ๋ฅ ํ ๊ธ, ํธํ์ฑ ๊ณ์ธต, ์์ ํ ์คํค๋ง ์งํ์ ๊ฐ์ ๊ดํ์ ์ฅ๋ คํฉ๋๋ค. ์ด๋ฌํ ๊ดํ๊ณผ ๊ธฐ์กด ์์คํ ์ผ๋ก ์ฆ์ ๋ณต๊ทํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฒฐํฉํจ์ผ๋ก์จ ํ์ ๋์ดํฌ ์ ์๋ ์์์ ๋ํ ๋๋ ค์ ์์ด ํต์ฌ ์์คํ ๊ตฌ์ฑ ์์๋ฅผ ๋ฆฌํฉํ ๋งํ ์ ์๋ ์์ ๊ฐ์ ์ป๊ฒ ๋ฉ๋๋ค.
์ฌ๋ก ์ฐ๊ตฌ: ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ํตํ ์ฑ๊ณต์ ์ธ ๋ฆฌํฉํ ๋ง
๊ณ์ข ์กฐ์ ์ ๋ด๋นํ๋ ๋ชจ๋๋ฆฌ์ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ฐ์ถ ์ค๊ฒฌ ํํ ํฌ ํ์ฌ๋ฅผ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ์์ง๋์ด๋ง ํ์ ์ฑ๋ฅ ํฅ์, ์ข ์์ฑ ๋ถ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ง์ดํฌ๋ก์๋น์ค๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ค๋นํ๊ธฐ ์ํด ์กฐ์ ๋ก์ง์ ๋ฆฌํฉํ ๋งํด์ผ ํ์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ด๋ถ ์๊ณ ๋ฆฌ์ฆ๋ฟ๋ง ์๋๋ผ ๋ฐฐ์น ์ฒ๋ฆฌ ๋ด๋น์์ ์ธ๋ถ ๊ฐ์ฌ ๋ด๋น์๊ฐ ์ฌ์ฉํ๋ API ๊ณ์ฝ์๋ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค.
์ง์ ๋ฐฐํฌ๋ฅผ ์๋ํ๋ ๋์ , ํ์ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ๊ตฌํํ์ต๋๋ค. ํ๋ก๋์ ํ๊ฒฝ์ ๋ณต์ ํ๊ณ ๋ฆฌํฉํ ๋ง๋ ์๋น์ค๋ฅผ ๊ทธ๋ฆฐ ์ธ์คํด์ค์ ๋ฐฐํฌํ์ต๋๋ค. ์ด ๋ฒ์ ์ ๋ํด ์ ์ฉ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ๊ณ , ํ๋ก๋์ ์์ ์บก์ฒํ ๋ฏธ๋ฌ๋ง ํธ๋ํฝ์ ํ์ฉํ์ฌ ๋ณด๊ฐํ์ต๋๋ค. API ์๋ต์ ์ ํ์ฑ ๋ฐ ์ง์ฐ ์๊ฐ ๋ฒค์น๋งํฌ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ณ๋ ฌ๋ก ๋ถ์๋์์ต๋๋ค.
๋ฉฐ์น ๊ฐ์ ํ ์คํธ ํ, ์ ์ํ ์๊ฐ๋์ ํธ๋ํฝ์ด ์ ์ง์ ์ผ๋ก ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก ์ ํ๋์์ต๋๋ค. ๋น์ฆ๋์ค์ ์ค์ํ ์งํ์ ๋ก๊ทธ ์ถ์ ์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์์ ํ ๊ด์ธก ๋๊ตฌ๊ฐ ๊ตฌ์ถ๋์์ต๋๋ค. ์ ํ ํ ํ ์๊ฐ ์ด๋ด์ ํ์ ์์ ์ฑ์ ํ์ธํ๊ณ ๋ธ๋ฃจ ํ๊ฒฝ์ ํ๊ธฐํ์ต๋๋ค. ์ํฅ์ ๋ฐ์ ์ฌ์ฉ์๋ ์์์ผ๋ฉฐ, ๋ฆฌํฉํ ๋ง๋ ์ฝ๋๋ฒ ์ด์ค๋ ํฅํ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ก์ด ๊ธฐ์ค์ด ๋์์ต๋๋ค.
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ํ์ ์ํํ ๋ฟ๋ง ์๋๋ผ ํฅํ ์ธํ๋ผ ํ๋ํ๋ฅผ ์ํ ์ธก์ ๊ฐ๋ฅํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ์ต๋๋ค. Blue-Green ๋ฐฐํฌ๋ฅผ ํตํด ํ์ ์์คํ ๊ฐ์ฉ์ฑ์ด๋ ์ฌ์ฉ์ ์ ๋ขฐ๋๋ฅผ ์ ํดํ์ง ์๊ณ ๋ฆฌํฉํ ๋งํ ์ ์์์ต๋๋ค.
๊ณผ์ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋ณํ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ฐ๋ ฅํ ์์ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ง๋ง, ์ด๋ ค์์ด ์๋ ๊ฒ์ ์๋๋๋ค. ์ด ์ ๋ต์ ์ํคํ ์ฒ ๊ท์จ, ์ด์์์ ์๊ฒฉํจ, ๊ทธ๋ฆฌ๊ณ ํจ๊ณผ์ฑ์ ์ ํดํ ์ ์๋ ๊ฒฝ๊ณ ์ฌ๋ก์ ๋ํ ์ธ์์ ์๊ตฌํฉ๋๋ค. ํนํ ๋์ ๋ณด์ด์ง ์๋ ๋ณํ๊ฐ ์ฑ๋ฅ, ์ํ ๊ด๋ฆฌ ๋ฐ ์๋น์ค ๊ฐ ํต์ ์ ๋ง๋ํ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ฆฌํฉํ ๋ง ์๋๋ฆฌ์ค์์ ์ด๋ ๋์ฑ ์ค์ํฉ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ๊ฐ์น๋ฅผ ๊ทน๋ํํ๋ ค๋ฉด ์ผ๋ฐ์ ์ธ ํจ์ ์ ์ดํดํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ๋ค์ ์น์ ์์๋ ์ด๋ฌํ ๊ณผ์ ๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ ์ค์ ์์คํ ์ ์ด ๋ชจ๋ธ์ ๋์ ํ๋ ํ์๊ฒ ์คํ ๊ฐ๋ฅํ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ํจ์ ๊ณผ ์ด๋ฅผ ํผํ๋ ๋ฐฉ๋ฒ
์ฑ๊ณต์ ์ธ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์๋ ์ด์ค ํ๊ฒฝ ๊ทธ ์ด์์ด ํ์ํฉ๋๋ค. ์ด์ ๊ฐ์ ์ ๊ฒฐํจ์ด ์๊ฑฐ๋ ์์ ์ฅ์น๊ฐ ์ทจ์ฝํ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ฅ์ ๋ชจ๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๊ตฌ์ฑ ๋๋ฆฌํํธ
ํ๊ฒฝ ๊ฐ์ ์ฌ์ํ ๋ถ์ผ์น์กฐ์ฐจ๋ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๋ฌดํจํํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์๊ฐ ๋๋ฝ๋์๊ฑฐ๋ ์ข ์์ฑ์ด ์ผ์นํ์ง ์์ผ๋ฉด ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ ํ ์ดํ์์ผ ๊ฐ์ง๋ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: Infrastructure as Code(IaC)๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ์์ค์์ ๋ ํ๊ฒฝ์ ์ ์ํฉ๋๋ค. Terraform์ด๋ AWS CDK์ ๊ฐ์ ๋๊ตฌ๋ ๋ฒ์ ๊ด๋ฆฌ ํ ํ๋ฆฟ์ ํตํด ๋๋ฑ์ฑ์ ๋ณด์ฅํฉ๋๋ค. - ๊ฒ์ฆ๋์ง ์์ ๊ฐ์
๋ฆฌํฉํ ๋ง๋ ๊ตฌ์ฑ ์์๊ฐ ํ๋ก๋์ ๋ถํ๋ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ๋ณต์ ํ์ง ์๊ณ ๋ ๋์ผํ๊ฒ ๋์ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ์ค์ ์ด์ ํธ๋ํฝ์ ๋ณต์ ํ์ฌ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ์ฃผ์ง ์๊ณ ๊ทธ๋ฆฐ ํ๊ฒฝ์ผ๋ก ๋ผ์ฐํ ํ๋ ์๋์ฐ ํ ์คํธ๋ฅผ ๊ตฌํํฉ๋๋ค. ๋ก๊ทธ์ ์ฑ๋ฅ ์งํ๋ฅผ ๋น๊ตํ์ฌ ๋๋ฆฌํํธ๋ฅผ ํ์ธํฉ๋๋ค. - ๊ณต์ ๋ฆฌ์์ค์์ ๊ธด๋ฐํ ๊ฒฐํฉ
๋ธ๋ฃจ ํ๊ฒฝ๊ณผ ๊ทธ๋ฆฐ ํ๊ฒฝ์ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํด์ผ ํ์ง๋ง, ๋ง์ ์์คํ ์ด ๋ฐ์ดํฐ ์ ์ฅ์, ์บ์ ๋๋ ํ๋ฅผ ๊ณต์ ํฉ๋๋ค. ์ด๋ก ์ธํด ํ๊ฒฝ ๊ฐ ๊ฐ์ญ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ํ๊ฒฝ ๊ฒฉ๋ฆฌ๋ฅผ ๊ณ ๋ คํ์ฌ ์ค๊ณํ์ธ์. ์์ ํ ๋ถ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ค์์คํ์ด์ค ๋ถ๋ฆฌ ๋๋ ์์ ๋ณต์ ์ ๋ต์ ์ฌ์ฉํ์ธ์. - ์กฐ๊ธฐ ์ ๋ฆฌ
์ ํ ํ ์ฆ์ ์๋์ ๋ธ๋ฃจ ํ๊ฒฝ์ ์ญ์ ํ๊ฑฐ๋ ์์ ํ๋ฉด ํ๋ฐ ๋จ๊ณ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋กค๋ฐฑ ์ต์ ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ์ ์๋ ์์ ํ ๊ธฐ๊ฐ์ด ์ง๋ ๋๊น์ง ํญ์ ์ด์ ํ๊ฒฝ์ ์ ์งํ์ญ์์ค. ์ง์ฐ ํ์ด๋จธ ๋๋ ์๋ ์น์ธ ๊ฒ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ํด์ฒด๋ฅผ ์๋ํํ์ญ์์ค.
๋ค์ํ ํ๊ฒฝ์์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ณด์ฅ
๋ฐ์ดํฐ ์ผ๊ด์ฑ ๊ด๋ฆฌ๋ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์์ ๊ฐ์ฅ ๋ณต์กํ ๋ถ๋ถ์ด๋ฉฐ, ํนํ ๋ฆฌํฉํ ๋ง ๊ณผ์ ์์ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง, ์ํ ์ ์ด, ๊ทธ๋ฆฌ๊ณ ๋ถ์์ฉ์ ์ ๋ฐํ๋ ์์ ๋ค์ ์ ์คํ๊ฒ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ๋ฏธ๋ฌํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฆฌํฉํ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์คํค๋ง ๋ฒ์ ์ด ํ์ํ ๊ฒฝ์ฐ, ๋ น์ ํ๊ฒฝ์ ์ ์์ ์ผ๋ก ์๋ํ ์ ์์ง๋ง, ํ๋์ ํ๊ฒฝ์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋กค๋ฐฑ์ด ํ์ํ ๋ ์คํจํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ ํธํ์ฑ์ ๊ณ ๋ คํ์ฌ ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
์: ์์ ํ ์ด์ค ํธํ ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์
-- Step 1: Add new column, but do not remove the old one
ALTER TABLE users ADD COLUMN full_name TEXT;
-- Step 2: Update green environment code to write to both
-- Step 3: After green stabilizes, deprecate the old field
์ ํ๋ฆฌ์ผ์ด์ ์ธก๋ฉด์์๋ ๊ธฐ๋ฅ ํ ๊ธ์ด๋ ์กฐ๊ฑด ๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋ฒ์ ์ ์์คํ ์ด ๋์ผํ ๋ฐ์ดํฐ์์ ์๋ํ ์ ์๋๋ก ํฉ๋๋ค.
if environment == "green":
db.write(full_name=user.get_full_name())
else:
db.write(first_name=user.first, last_name=user.last)
๋ํ, ์์ฝ๋ ์์ , ๋ฉ์์ง ํ ๋๋ ๋น๋๊ธฐ ์ํฌํ๋ก๋ ๋ ํ๊ฒฝ ๊ฐ์ ํธํ์ฑ์ ๊ฒํ ํด์ผ ํฉ๋๋ค. ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์ ๊ฐ ๋ถ์ผ์น๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์๋์น ์์ ๋์์ ํ์ํ์ธ์.
ํจ์จ์ ์ธ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ์ํ ์๋ํ ๋ฐ ํด๋ง
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ์ด์ ํจ์จ์ฑ์ ์๋ํ์์ ๋น๋กฏ๋ฉ๋๋ค. ์๋ ์์ ์ ํ์ดํ๋ผ์ธ ์๋๋ฅผ ์ ํ์ํฌ ๋ฟ๋ง ์๋๋ผ ์ธ์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. ํ๋ก๋น์ ๋, ๋ฐฐํฌ, ํ ์คํธ, ๋ชจ๋ํฐ๋ง ๋ฐ ๋กค๋ฐฑ์ ์๋ํํ๋ฉด ๋ฐ๋ณต ๊ฐ๋ฅํ๊ณ ์์ ์ ์ธ ํ๋ก์ธ์ค๊ฐ ๊ตฌ์ถ๋ฉ๋๋ค.
์ฃผ์ ๊ณต๊ตฌ ๋ฒ์ฃผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ธํ๋ผ ๊ด๋ฆฌ:
Terraform, Pulumi ๋๋ CloudFormation์ ์ฌ์ฉํ์ฌ ํ๊ฒฝ์ ์ ์ํ๊ณ ๋ณต์ ํ์ธ์. ํจ๋ฆฌํฐ๋ฅผ ๋ณด์ฅํ๋ ค๋ฉด ๊ตฌ์ฑ์ ๋งค๊ฐ๋ณ์ํํ์ธ์. - ๋ฐฐํฌ ์ค์ผ์คํธ๋ ์ด์
:
CI/CD ํ์ดํ๋ผ์ธ์ ํ๊ฒฝ๋ณ ๋จ๊ณ๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค. GitHub Actions, GitLab CI, Jenkins์ ๊ฐ์ ํ๋ซํผ์ ํ๊ฒฝ ์ ํ์ ๋ฐฐํฌ ๋จ๊ณ๋ก ํตํฉํ ์ ์์ต๋๋ค. - ํธ๋ํฝ ๊ด๋ฆฌ:
๋์ ๋ผ์ฐํ ์ ๊ฒฝ์ฐ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋๊ตฌ๋ ์๋น์ค ๋ฉ์๋ฅผ ํ์ฉํ์ธ์. ์๋ฅผ ๋ค์ด AWS ALB๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
{
"Type": "AWS::ElasticLoadBalancingV2::ListenerRule",
"Properties": {
"Actions": [
{
"Type": "forward",
"TargetGroupArn": { "Ref": "GreenTargetGroup" }
}
]
}
}
- ๋ชจ๋ํฐ๋ง ๋ฐ ๊ด์ฐฐ:
Prometheus, Grafana, OpenTelemetry ๋๋ ์์ฉ APM์ ํตํฉํ์ฌ ์๋ต ์๊ฐ, ์ค๋ฅ์จ ๋ฐ ์ด์ ํจํด์ ์ถ์ ํฉ๋๋ค. ์ ํ ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ๋ผ ์๋ฆผ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. - ๋กค๋ฐฑ ์๋ํ:
๋กค๋ฐฑ์ ๋น์ ์กฐ์น๊ฐ ์๋, ์ต์ฐ์ ๊ธฐ๋ฅ์ผ๋ก ์ค๊ณํด์ผ ํฉ๋๋ค. ๋ฒ์ ์ด ์ง์ ๋ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ, ํ ๊ธ, ์ํ ํ์ธ์ ๋ชจ๋ ์ฆ๊ฐ์ ์ธ ๋๋๋ฆผ์ ์ง์ํด์ผ ํฉ๋๋ค.
์๋ํ๋ ๊ฐ์ฌ ๊ฐ๋ฅ์ฑ๊ณผ ๊ท์ ์ค์๋ ํฅ์์ํต๋๋ค. ๋ชจ๋ ์์ ์ ์ฒด๊ณํํจ์ผ๋ก์จ ํ์ ํฌ๋ช ์ฑ๊ณผ ์ผ๊ด์ฑ์ ํ๋ณดํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์ง์์ ์ผ๋ก ๊ฐ์ ํ ์ ์์ต๋๋ค.
SMART TS XL ๋ฆฌํฉํ ๋ง ๋๊ตฌ๋ก์
๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง์ ๋จ์ํ ์ฝ๋ ๋ณํ ์์ ์ด ์๋๋ผ ์์คํ ์์ค์ ๋ณ๊ฒฝ ๊ด๋ฆฌ ์์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ์ธต์ ์ธ ์ข ์์ฑ์ ์ดํดํ๊ณ , ์ ์ฌ์ ์ธ ํ๊ท ์ง์ ์ ํ๊ฐํ๊ณ , ์ฌ๋ฌ ๋ฐฐํฌ ์์ญ์ ์กฐ์ ํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ๋งฅ๋ฝ์์ ๋ค์๊ณผ ๊ฐ์ ์๋ํ ๋๊ตฌ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. SMART TS XL ์ด์ ๊ฐ์๊ธฐ ์ญํ ์ ํฉ๋๋ค. ์๋ ๋ถ์์ผ๋ก๋ ๋ฌ์ฑํ ์ ์๋ ์์ค์ ์ธ๋ฐํ ํต์ฐฐ๋ ฅ, ์ ์ด ๋ฐ ๊ฒ์ฆ์ ์ ๊ณตํฉ๋๋ค.
SMART TS XL ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ฆฌํฉํ ๋ง์ ์ํด ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. ์์ค ์ ์ฅ์, ์ข ์์ฑ ๊ทธ๋ํ, CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํตํฉ๋์ด ์ ์ ๋ฐ ๋์ ๋ถ์, ์๋ ๋ฆฌํฉํ ๋ง ์ ์, ์ํ ๋ชจ๋ธ๋ง์ ์ ๊ณตํฉ๋๋ค. Blue-Green ๋ฐฐํฌ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ฝ๋ ์์ค์ ์์ ์ฑ๊ณผ ํ๋ก๋์ ์์ค์ ์ ๋ขฐ๋ ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ ์ ์์ต๋๋ค.
SMART TS XL? (๊ฐ์ ๋ฐ ์ฃผ์ ๊ธฐ๋ฅ)
SMART TS XL ๋๊ท๋ชจ ๊ณ์ธตํ ์ฝ๋๋ฒ ์ด์ค, ํนํ TypeScript, JavaScript ๋ฐ ํด๋ฆฌ๊ธ๋กฏ ํ๊ฒฝ์ผ๋ก ์์ฑ๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ํด ์ค๊ณ๋ ๋ฆฌํฉํ ๋ง ์๋ํ ๋ฐ ์ฝ๋ ์ธํ ๋ฆฌ์ ์ค ํ๋ซํผ์ ๋๋ค. ๊ตฌ์กฐ ๋ถ์ ๋ฐ ์๋ํ๋ ๋ณํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ํต์ฌ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ์ ์ฝ๋ ๋ถ์: ์ํคํ ์ฒ ์๋ฐ, ์ํ ์ข ์์ฑ, ์ฌ์ฉ๋์ง ์๋ ์ฝ๋ ๊ฒฝ๋ก, ๊น์ด ์ค์ฒฉ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๊ฐ์งํฉ๋๋ค.
- ์๋ฏธ๋ก ์ ๋ฆฌํฉํ ๋ง ์์ง: ํ ์คํธ ํจํด๋ฟ๋ง ์๋๋ผ ๊ตฌ๋ฌธ ๋ฐ ์ฌ์ฉ ๋งฅ๋ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์์ ํ ์ฝ๋ ๋ณํ์ ์ ๊ณตํฉ๋๋ค.
- ์ํ ํ๋ฉด ๋งคํ: ์ข ์์ฑ ์ค์ฌ์ฑ๊ณผ ๋์ฐ๋ณ์ด ๊น์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํฅ ์ ์๋ฅผ ์ง์ ํ์ฌ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ํฅ์ ๊ฐ์ฅ ๋ง์ด ๋ฐ๋ ์ฝ๋๋ฒ ์ด์ค ์์ญ์ ์๋ณํฉ๋๋ค.
- ์๋ํ๋ ํ ์คํธ ์ํฅ ๋ถ์: ํน์ ์ฝ๋ ์์ ์ ์ด๋ค ํ ์คํธ ์ผ์ด์ค๊ฐ ์คํจํ ๊ฐ๋ฅ์ฑ์ด ์๋์ง ํ๋ณํฉ๋๋ค.
- ๋ฒ์ ์ธ์ ๋ฒ์ ์ง์ : ๋ธ๋์น, ์ปค๋ฐ ๋๋ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ฐจ๋ฑ ๋ถ์์ ์ง์ํ์ฌ ๋ ์์ ํ ๋ณํฉ๊ณผ ์ถฉ๋ ๋ฐฉ์ง๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
SMART TS XL ๋ฒ์ ์ ์ด ์์คํ , ๋น๋ ํ์ดํ๋ผ์ธ, ๊ด์ฐฐ ์คํ๊ณผ ํตํฉํ์ฌ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์ํ ๊ฐ์ ์ ๋ ฌ์ ์ ์งํฉ๋๋ค.
๋ฐฉ๋ฒ SMART TS XL ๋ฆฌํฉํ ๋ง(์ฝ๋ ๋ถ์, ์๋ํ, ์ํ ๊ฐ์)์ ๋์์ด ๋ฉ๋๋ค.
๋ฆฌํฉํ ๋ง์ ์์คํ ์ ๊ตฌ์กฐ์ ๋์์ ๋ํ ์ ํํ ์ดํด๋ก ์์ํ ๋ ๊ฐ์ฅ ์์ ํฉ๋๋ค. SMART TS XL ์ ์ ๋ถ์ ๋ฐ ์ค์๊ฐ ์ง๋จ์ ํตํด ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ๊ฑฐ์ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ชจ๋ํํ ๋ ํ๋ซํผ์ ์ด๋ค ๋ชจ๋์ด ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ด์ ์ผ๋ก ์์กดํ๋์ง, ์ด๋ค ํจ์ ์๊ทธ๋์ฒ๊ฐ ๊ฐ์ฅ ์ทจ์ฝํ์ง, ์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ๊ฐํ ํ๊ท๋ฅผ ์ ๋ฐํ๋์ง ํ์ ํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ก ์์ :
smart-ts-xl analyze --target=src/utils --risk-threshold=medium
์ด ๋ช ๋ น์ ์ํฅ์ ๋ฐ์ ๋ชจ๋ ํ์ผ์ ๊ทธ๋ํ๋ฅผ ๊ฒฐํฉ ์ ์์ ์ฝ๋ ๋ณ๋์ฑ๋ณ๋ก ์ ๋ ฌํ์ฌ ์์ฑํ๊ณ , ์๋ ค์ง ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ๊ฐญ์ด ์๋ ํ์ผ์๋ ์ฃผ์์ ์ถ๊ฐํฉ๋๋ค. ์ด๋ฌํ ํต์ฐฐ๋ ฅ์ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ์ ๋ต์ ํตํด ๋ฐฐํฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณํํ ๋ ๋งค์ฐ ์ค์ํ๋ฉฐ, ํนํ ์๋ ค์ง์ง ์์ ์ข ์์ฑ์ด ์ฅ์ ์ ์ฃผ์ ์์ธ์ธ ์์คํ ์์ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
SMART TS XL ๋ํ ์์ ํ ์ผ๊ด ๋ฆฌํฉํ ๋ง, ์ฝ๋ ํ์ค ์ ์ฉ, ํธ๋์ญ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฐ์ถ ์ฝ๋๋ฒ ์ด์ค ์ ๋ฐ์ ์ฌ์ฉ๋์ง ์๋ ์ธํฐํ์ด์ค ๊ต์ฒด๋ฅผ ์ํ ์ฝ๋๋ชจ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํตํฉ SMART TS XL ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ํตํด
์ด์ ๊ฐ์น SMART TS XL ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์ง์ ํตํฉํ๋ฉด ํจ์จ์ฑ์ด ํฅ์๋ฉ๋๋ค. ๋ฐฐํฌ ์ ์ํ ๋ถ์, ๊ตฌ์กฐ์ ๊ฒ์ฌ ๋ฐ ๋ณํ ๊ฒ์ฆ์ CI/CD ์ํฌํ๋ก์ ํฌํจํจ์ผ๋ก์จ ํ์ ํ๋ก๋์ ํ๊ฒฝ์ ์์ ํ ๋ฆฌํฉํ ๋ง๋ง ์นํ๊ฒฝ ํ๊ฒฝ์ ๋๋ฌํ๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
CI ํตํฉ ๋จ๊ณ ์์ :
- name: Static Analysis
run: smart-ts-xl analyze --ci --exit-on-risk
์ด ๊ฒ์ดํธ๋ ๊ณ ์ํ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ๋์ ๊ฐ๋ ์์ด ๋ฐฐํฌ ๋จ๊ณ๋ก ๋์ด๊ฐ์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋ํ ์ํฅ์ ๋ฐ๋ ๋ชจ๋, ํ ์คํธ ์์ ์ฑ, ๋กค๋ฐฑ ๋ฏผ๊ฐ๋์ ๋ํ ์์ฝ ์ ๋ณด๋ฅผ ํ ๋ฆฌํ์คํธ๋ ๋ฐฐํฌ ๋์๋ณด๋์ ์๋์ผ๋ก ์ฃผ์์ผ๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
Blue-Green ๋ฐฐํฌ์ ํจ๊ป ์ฌ์ฉํ๋ฉด SMART TS XL ์ธ ๊ฐ์ง ์ฃผ์ ์ด์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋นจ๋ฆฌ ์คํจ: ์์ ํ์ง ์์ ๋ฆฌํฉํ ๋ง์ด ์นํ๊ฒฝ ํ๊ฒฝ์๋ ๋ฐฐํฌ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ๋กค๋ฐฑ ์ธํ ๋ฆฌ์ ์ค: ๊ณต์ ๋ฐ์ดํฐ ๊ณ์ฝ์ด๋ ๋ณํ๋ ์ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌํฉํฐ๋ง์ ์ด๋ค ๋ถ๋ถ์ ๋๋๋ฆด ์ ์๊ณ ์ด๋ค ๋ถ๋ถ์ ๋๋๋ฆด ์ ์๋์ง ํ๊ฐํฉ๋๋ค.
- ๊ฒ์ฆ ํผ๋๋ฐฑ ๋ฃจํ: ๋ น์ ํ๊ฒฝ์์ ์ป์ ์๊ฒฉ ์ธก์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ๋ฏธ๋์ ์ํ ๋ชจ๋ธ์ ๊ฐ์ ํ๊ณ ์์ธก ์ ํ๋๋ฅผ ๋์ ๋๋ค.
์ผ๋ฐ์ ์ธ ๋ฆฌํฉํ ๋ง ๋ฌธ์ ํด๊ฒฐ SMART TS XL (๋ ๊ฑฐ์ ์ฝ๋, ์ข ์์ฑ ์ถฉ๋, ์ฑ๋ฅ ๋ณ๋ชฉ ํ์)
๋ฆฌํฉํ ๋ง ๋ ธ๋ ฅ์ ์ข ์ข ์ธ ๊ฐ์ง ๋ฒ์ฃผ์ ์์คํ ์ ๋ฌธ์ , ์ฆ ๋ ๊ฑฐ์ ์ฝ๋์ ๋ณต์ก์ฑ, ์ฝํ ์ข ์์ฑ, ๋์ ๋ณด์ด์ง ์๋ ์ฑ๋ฅ ์ ํ๋ก ์ธํด ํ์ ๋ฉ๋๋ค. SMART TS XL ๊ฐ๊ฐ์ ๋ํ ์ฃผ์:
- ๋ ๊ฑฐ์ ์ฝ๋: ์ด์ ๊ตฌ์กฐ, ์ฌ์ฉ๋์ง ์๋ ๋ชจ๋, ๊ทธ๋ฆฌ๊ณ ์ธ๋ชจ์๋ ๋ธ๋์น๋ฅผ ํ์ ํฉ๋๋ค. ๋ฆฌํฉํ ๋ง์ ๋งน๋ชฉ์ ์ธ ์ฌ์์ฑ์ด ์๋ ์ ๋ต์ ์ ๊ฑฐ ํ์๊ฐ ๋ฉ๋๋ค.
- ์ข ์์ฑ ์ถฉ๋: ์ถฉ๋ํ๊ฑฐ๋ ์ค๋๋ ํจํค์ง ์ฌ์ฉ์ ํ๋ฉดํํ๊ณ ํ์ฌ ์ ์ฝ ์กฐ๊ฑด๊ณผ ํธํ๋๋ ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฑ๋ฅ ๋ณ๋ชฉ ํ์: ํ์ค ๋ฆฐํ ์ด๋ ๋จ์ ํ ์คํธ์์ ์ข ์ข ๊ฐ๊ณผ๋๋ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ํซ ํจ์ค์ ๋นํจ์จ์ ์ธ ํจํด์ ์๋ณํฉ๋๋ค.
์์ ์ธ์ฌ์ดํธ ์ถ๋ ฅ :
{
"module": "auth/sessionManager.ts",
"refactorImpact": "high",
"conflicts": ["utils/logger", "legacy/authAdapter"],
"recommendedAction": "Decouple sessionManager from logger using DI pattern"
}
์ด๋ฌํ ํต์ฐฐ๋ ฅ์ ํตํด ํ์ ๋ ์์ ํ ๋ฐฐํฌ๋ฅผ ๊ณํํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉ๋ ํ๊ท๋ฅผ ๋ฐฉ์งํ์ฌ ์ฅ๊ธฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ๋น์ฉ์ ์ค์ผ ์ ์์ต๋๋ค.
SMART TS XL ๋ฆฌํฉํ ๋ง์ ๋จ์ํ ์ถ์ธก ํ๋์์ ์ธก์ ๊ฐ๋ฅํ ์์ง๋์ด๋ง ์์ ์ผ๋ก ์ ํํฉ๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ(Blue-Green Deployment)์ ๊ฒฐํฉํ์ฌ ๊ด์ฐฐ ๊ฐ๋ฅํ๊ณ , ๊ฐ์ญ์ ์ด๋ฉฐ, ์ฆ๊ฑฐ๋ก ๋ท๋ฐ์นจ๋๋ ๊ตฌ์กฐ์ ๋ณํ๋ฅผ ์ํ ์๋ ํฌ ์๋ ํ๋ ์์ํฌ๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์ ๋ํ ๋์
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ์์คํ ๋ณ๊ฒฝ ์ ์ํ์ ๊ด๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ํจ๊ณผ์ ์ธ ์ ๋ต์ด์ง๋ง, ๋ชจ๋ ๊ฒฝ์ฐ์ ์ต์ ์ ์ ๋ต์ ์๋๋๋ค. ํน์ ์ํคํ ์ฒ, ์ด์์์ ์ ์ฝ ๋๋ ํ ๊ตฌ์กฐ์์๋ ๋ค๋ฅธ ๋ฐฐํฌ ๋ชจ๋ธ์ด ๋ ๋์ ์ ์ด, ๋ ๋ฎ์ ๋น์ฉ ๋๋ ๋ ์ธ๋ฐํ ์ธ๋ถ์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋์์ ๋ฆฌํฉํ ๋ง์ ๋จ๊ณ์ ์ผ๋ก ์ ๊ณตํ๊ฑฐ๋, ์ ์ง์ ์ผ๋ก ๊ฒ์ฆํ๊ฑฐ๋, ๋ถ์ฐ๋ ํ ๊ฐ์ ์กฐ์จํด์ผ ํ๋ ๊ฒฝ์ฐ์ ํนํ ์ค์ํฉ๋๋ค.
์ด๋ฌํ ์ ๋ต ๊ฐ์ ์ฅ๋จ์ ์ ์ดํดํ๋ฉด ์์ง๋์ด๋ง ๋ฆฌ๋๊ฐ ์ํํ๋ ํน์ ์ ํ์ ๋ฆฌํฉํ ๋ง์ ์ ํฉํ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋์์ผ๋ก๋ ์นด๋๋ฆฌ์ ๋ฐฐํฌ, ๋กค๋ง ๋ฐฐํฌ, ๊ธฐ๋ฅ ํ๋๊ทธ ๊ธฐ๋ฐ ์ ๋ต ๋ฑ์ด ์์ต๋๋ค.
์นด๋๋ฆฌ์ ๋ฐฐํฌ vs. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ
์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ ์๋ก์ด ์ฝ๋๋ฅผ ๊ด๋ฒ์ํ๊ฒ ๋ฐฐํฌํ๊ธฐ ์ ์ ์์์ ์ฌ์ฉ์ ๋๋ ์์คํ ์ ์ ์ง์ ์ผ๋ก ์ ์ฉํฉ๋๋ค. ํ๊ฒฝ ์์ค์์ ์๋ํ๋ ๋ธ๋ฃจ-๊ทธ๋ฆฐ๊ณผ ๋ฌ๋ฆฌ, ์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ ํธ๋ํฝ ๋๋ ์ฌ์ฉ์ ์ธ๋ถํ ์์ค์์ ์๋ํฉ๋๋ค. ๋ฐ๋ผ์ ์ ์ฒด ์ฌ์ฉ์๋ฅผ ์ํ์ ๋ ธ์ถ์ํค์ง ์๊ณ ๋ ์ค์ ์ฌ์ฉ์ ํ๋์ด ์ ํธ๋ฅผ ์ ๊ณตํ ์ ์๋ ๊ธฐ๋ฅ ๋ณ๊ฒฝ์ ํนํ ์ ์ฉํฉ๋๋ค.
๋ฆฌํฉํ ๋ง ๋งฅ๋ฝ์์ ์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ํ ๋น์ ์ฅ์ด๊ฑฐ๋ ์ธํฐํ์ด์ค์ ํธํ๋๋ ๊ฒฝ์ฐ ํจ๊ณผ์ ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด๋ถ ๋ฆฌํฉํ ๋ง, ์คํค๋ง ๋ณ๊ฒฝ ๋๋ ์ฑ๋ฅ์ ๋ฏผ๊ฐํ ๊ฒฝ๋ก์ ๊ฐ์ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ ๋จ์๋ก ํ๊ฐํ๊ธฐ๊ฐ ๋ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
์: Kubernetes๋ฅผ ์ฌ์ฉํ Canary ๋ฐฐํฌ
apiVersion: apps/v1
kind: Deployment
metadata:
name: service-canary
spec:
replicas: 2
selector:
matchLabels:
app: my-service
track: canary
์ฌ๊ธฐ์์๋ ์ผ๋ถ ํฌ๋๊ฐ ์ ๋ฒ์ ์ ๋ด๋นํฉ๋๋ค. ์๋น์ค ๋ฉ์ ๋๋ ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค๋ฌ๋ฅผ ํตํ ํธ๋ํฝ ๋ผ์ฐํ ์ ํตํด ์ด ๋ฒ์ ์๋ ์ผ๋ถ ํธ๋ํฝ๋ง ์ ๋ฌ๋ฉ๋๋ค.
์ฒญ๋ก์ ์๋์ง์์ ๋น๊ต์์ ๋ํ๋๋ ์ฅ๋จ์ :
- ์ฅ์ : ์ธํ๋ผ ์ค๋ฒํค๋ ๊ฐ์, ๋ณด๋ค ์ฌ์ธํ ๋กค๋ฐฑ, ์ค์๊ฐ ํธ๋ํฝ ํ์์ ์ง์์ ์ธ ๊ฒ์ฆ
- ๋จ์ : ๊ฒฉ๋ฆฌ ๊ฐ์, ์์ง ์ผ์ด์ค ํ๊ท ๊ฐ์ง ์ด๋ ค์, ๊ฒ์ฆ ์ค ๋ณต์กํ ๋ฉํธ๋ฆญ ์์ฑ
์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ ๋ฆฌํฉํ ๋ง์ ์ค๋จ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋๊ฑฐ๋ ์ ์ฒด ํ๊ฒฝ์ ๊ฒฉ๋ฆฌํ๋ ๊ฒ๋ณด๋ค ์ ์ง์ ์ธ ์ํ ๋ ธ์ถ์ด ์ ํธ๋๋ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
๋กค๋ง ๋ฐฐํฌ ๋ฐ ๊ธฐ๋ฅ ํ๋๊ทธ
๋กค๋ง ๋ฐฐํฌ๋ ํ๋ก๋์ ํ๊ฒฝ์ ์ธ์คํด์ค๋ฅผ ์ ์ง์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ฌ ์ด์ ๋ฒ์ ์ ์ ๋ฒ์ ์ผ๋ก ์์ฐจ์ ์ผ๋ก ๊ต์ฒดํฉ๋๋ค. ์ด ๊ธฐ๋ฒ์ ์์คํ ์ด ์ผ๊ด์ฑ ๋ฌธ์ ์์ด ๋ถ๋ถ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ํ์ฉํ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ฐ๋ ฅํ CI/CD ํตํฉ์ ๊ฐ์ถ ์ํ ๋น์ ์ฅ ์๋น์ค ์ํคํ ์ฒ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐ๋ฉด, ๊ธฐ๋ฅ ํ๋๊ทธ๋ ์ฝ๋ ๋ฆด๋ฆฌ์ค์ ๊ธฐ๋ฅ ๋ ธ์ถ์ ๋ถ๋ฆฌํฉ๋๋ค. ํ์ ํ๋๊ทธ ๋ค์ ๋นํ์ฑ ๋ก์ง์ด ํฌํจ๋ ๋ฆฌํฉํ ๋ง๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ฐฐํฌํ์ฌ ์ฌ์ฉ์, ํ ๋๋ ์์ฒญ ์ํฉ์ ๋ฐ๋ผ ์ ์ง์ ์ผ๋ก ํ์ฑํ ๋๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ก: ๋ฆฌํฉํ ๋ง๋ ๋ ผ๋ฆฌ์ ๋ํ ๊ธฐ๋ฅ ํ๋๊ทธ
if (flags.useNewReconciler) {
return newReconciliationEngine.run();
} else {
return legacyReconciler.run();
}
๋ด๋ถ ๋ ผ๋ฆฌ๋ฅผ ๋ฆฌํฉํ ๋งํ ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ฐํ์ ์ ์ด๋ฅผ ํตํด ์ด์ ๋์๊ณผ ์ ๋์์ด ์์ ํ๊ฒ ๊ณต์กดํ ์ ์์ต๋๋ค.
๋กค๋ง ๋ฐฐํฌ: ์ฅ๋จ์
- ์ฅ์ : ์ง์์ ์ธ ์ ๋ฌ, ๋ฎ์ ์ค๋ฒํค๋, ๋ค์ํ ์ค์ผ์คํธ๋ ์ด์ ํ๋ซํผ์์์ ๊ธฐ๋ณธ ์ง์
- ๋จ์ : ๋ช ํํ ๋กค๋ฐฑ ๊ฒฝ๊ณ ์์, ๋ถ๋ถ์ ๋กค์์ ์ค ๋ ธ์ถ ์ฆ๊ฐ, ์ํ ๋ถ์ผ์น ๊ฐ๋ฅ์ฑ
๊ธฐ๋ฅ ํ๋๊ทธ: ์ฅ๋จ์
- ์ฅ์ : ์คํ ๊ฒฝ๋ก์ ๋ํ ์ ํํ ์ ์ด, ๊ตฌ์ฑ ์ ํ์ ํตํ ์ฌ์ด ๋กค๋ฐฑ, ์คํ ๊ฐ๋ฅ
- ๋จ์ : ์ค๋๋ ํ๋๊ทธ, ๋ณต์กํ ํ ์คํธ ๋งคํธ๋ฆญ์ค, ๋ฐํ์ ๋ถ๊ธฐ๋ก ์ธํ ๊ธฐ์ ๋ถ์ฑ๋ก ์ธํด ๋ ผ๋ฆฌ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
์ธ๋ถ ๋์์ ๋ณ๊ฒฝํ์ง ์๋ ๊ตฌ์กฐ์ ๋ฆฌํฉํ ๋ง์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ ํ๋๊ทธ๊ฐ ์ด์์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ด๋ จ๋ ๊ฒฝ์ฐ, ๋ฆฌํฉํ ๋ง์ด ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ณ ์ํ๋ฅผ ์ ์งํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ๋กค๋ง ๋ฐฐํฌ๊ฐ ์ ํฉํฉ๋๋ค.
๋ฆฌํฉํ ๋ง ์๊ตฌ ์ฌํญ์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ์ ๋ต ์ ํ
๋ฆฌํฉํ ๋ง ์ด๋์ ํฐ๋ธ์ ์ ํฉํ ๋ฐฐํฌ ์ ๋ต์ ์ ํํ๋ ๊ฒ์ ๋ณ๊ฒฝ์ ์ฑ๊ฒฉ๊ณผ ๋ฒ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค์ ์ฌํญ์ ๊ณ ๋ คํ์ญ์์ค.
- ๋ฆฌํฉํฐ๋ง์ ๋ฒ์: ์์ ๋ด๋ถ ๋ณ๊ฒฝ์๋ ์ ์ฒด ํ๊ฒฝ์ ๊ฒฉ๋ฆฌํ ํ์๊ฐ ์์ง๋ง, ์ํคํ ์ฒ ๋ฆฌํฉํฐ๋ง์๋ ํ์ํฉ๋๋ค.
- ์ํ ํ๋กํ: ์ํ์ฑ์ด ๋์ ๋ณ๊ฒฝ(์: ๋ฐ์ดํฐ ๋ณํ, ๋์์ฑ ๋ชจ๋ธ ์ฌ์์ฑ)์ ์์ ํ ๋๋๋ฆผ ๊ธฐ๋ฅ์ ํตํด ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
- ์ด์ ์ฑ์๋: ๊ฐ๋ ฅํ ๊ด์ฐฐ์ฑ๊ณผ ์๋ํ๋ ํ ์คํธ๋ฅผ ๊ฐ์ถ ํ์ ์นด๋๋ฆฌ์ ๋๋ ๋กค๋ง ๋ฐฐํฌ๋ฅผ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์์คํ ์ํคํ ์ฒ: ๋ชจ๋๋ฆฌ์ ์์คํ ์ ํญ๋ฐ ๋ฐ๊ฒฝ์ ๋ถ๋ฆฌํ๊ธฐ ์ํด Blue-Green์ด ํ์ํ ์ ์์ง๋ง, ๋ง์ดํฌ๋ก์๋น์ค๋ ์ ์ง์ ์ธ ์ถ์๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
์ ๋ต ์ ํ ๋งคํธ๋ฆญ์ค :
| ๋ฆฌํฉํ ๋ง ์ ํ | ๊ถ์ฅ ์ ๋ต |
|---|---|
| API ๋ฒ์ ๊ด๋ฆฌ | ์ฒญ๋ก์ ๋๋ ํน์ง ํ๋๊ทธ |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ | ํธํ์ฑ ๋ ์ด์ด๊ฐ ์๋ ์ฒญ๋ก์ |
| ์ฑ๋ฅ ์ต์ ํ | ์นด๋๋ฆฌ์ |
| ์ข ์์ฑ ๊ฒฉ๋ฆฌ | ๊ธฐ๋ฅ ํ๋๊ทธ |
| ๋ชจ๋๋ฆฌ์ค ๋ถํด | ํธ๋ฅธ ๋ น์ |
๊ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ์ ์ด, ์๋, ๊ทธ๋ฆฌ๊ณ ์์ ์ฑ์ ๊ท ํ์ ์ ๊ณตํฉ๋๋ค. ๋ง์ ๊ฒฝ์ฐ ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋ธ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ ๋ฆฌํฉํ ๋ง๋ ์ฝ๋๋ฅผ ๊ทธ๋ฆฐ ํ๊ฒฝ์ ๋ฐฐํฌํ๊ณ , ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ ํ, ์นด๋๋ฆฌ์ ๋ผ์ฐํ ์ ์ฌ์ฉํ์ฌ ํ๋ก๋์ ์ถ์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ทจ์ฝํ ๋ฐฐํฌ์์ ์์ ๊ฐ ์๋ ๋ฆฌํฉํ ๋ง๊น์ง: ๋ธ๋ฃจ-๊ทธ๋ฆฐ ์์ ๋ง๋ค๊ธฐ
๋ฆฌํฉํ ๋ง์ ์์คํ ์ํคํ ์ฒ๋ฅผ ๊ฐํํ๊ณ , ์ฝ๋ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๋ฉฐ, ์ฅ๊ธฐ์ ์ธ ํ์ฅ์ฑ์ ํ๋ณดํ๋ ๊ณ ํจ์จ ํ๋์ ๋๋ค. ํ์ง๋ง ๋ฐฐํฌ์ ๋ํ ์ฒด๊ณ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด ์๋ค๋ฉด, ์๋ฌด๋ฆฌ ์ข์ ์๋๋ก ์ํ๋ ๋ฆฌํฉํ ๋ง์ด๋ผ๋ ํ๊ท๋ฅผ ์ ๋ฐํ๊ณ , ์๋น์ค๋ฅผ ์ค๋จ์ํค๊ฑฐ๋, ์๋ก์ด ๊ธฐ์ ๋ถ์ฑ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ์ ์์ ํ๊ณ ์์ธก ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋ฐ ํ์์ ์ธ ํ๊ฒฝ ์์ค ๊ฒฉ๋ฆฌ, ์๋ํ๋ ๊ฒ์ฆ, ์ ์ํ ๋กค๋ฐฑ ๊ธฐ๋ฅ์ ๋์ ํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ ๋ฉด์ผ๋ก ํด๊ฒฐํฉ๋๋ค.
์ฃผ์ ์์ฌ์ ์์ฝ
- Blue-Green ๋ฐฐํฌ๋ ๋ณ๊ฒฝ ์ ๋ฌ๊ณผ ์ฌ์ฉ์ ๋ ธ์ถ์ ๋ถ๋ฆฌํฉ๋๋ค.์ด๋ฅผ ํตํด ํ์ ๋ผ์ด๋ธ ํธ๋ํฝ์ ๋ฐฉํดํ์ง ์๊ณ ๋ ์ด์ ํ๊ฒฝ๊ณผ ๋์ผํ ํ๊ฒฝ์์ ์๋ก์ด ์ฝ๋๋ฅผ ๊ฒ์ฆํ ์ ์์ต๋๋ค.
- ํนํ ์ฌ์ธต ๋ฆฌํฉํ ๋ง ์ค์ ํจ๊ณผ์ ์ ๋๋ค.๋จ์ ํ ์คํธ๋ ์คํ ์ด์ง ํ๊ฒฝ๋ง์ผ๋ก๋ ์ํ์ ํฌ์ฐฉํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- ๋ฐฐํฌ ํ๋ก์ธ์ค๋ ์ธํ๋ผ ๋๋ฑ์ฑ, ํ ์คํธ ์๋ํ ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ๋ฌ๋ ค ์์ต๋๋ค.์ด๋ฌํ ๋ชจ๋ ์์๋ ๋ถํ์ค์ฑ์ ์ค์ด๊ณ ๋น ๋ฅด๊ณ ์์ ๊ฐ ์๋ ์์ฌ ๊ฒฐ์ ์ ์ง์ํฉ๋๋ค.
- ๊ฐ์ ๋๊ตฌ SMART TS XL ์ฝ๋ ์ธํ ๋ฆฌ์ ์ค, ์ํฅ ๋ถ์ ๋ฐ ๋ฐฐํฌ ์ธ์ ์๋ํ๋ฅผ ์ถ๊ฐํ์ฌ ์ด ๋ชจ๋ธ์ ํฅ์์ํต๋๋ค.์ด๋ฅผ ํตํด ๋๊ท๋ชจ๋ก ์ํ์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฌ์์ก์ต๋๋ค.
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ฅผ ์ ํธํ๋ ๊ฒฝ์ฐ
๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค.
- ๋ฆฌํฉํ ๋ง ์ค์ธ ์์คํ ์ ๊ฐ์ฉ์ฑ ์๊ตฌ ์ฌํญ์ด ๋๊ฑฐ๋ ๊ฐ๋ ์ค์ง์ ๋ํ ํ์ฉ ๋ฒ์๊ฐ ๋ฎ์ต๋๋ค.
- ๋์ ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์ํ ์ํฌํ๋ก, ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋๋ ์๋น์ค ๊ณ์ฝ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- ๋กค๋ฐฑ์ ์ฝ๋์ ์์กดํ๋ ๊ฒ์ด ์๋๋ผ ๋น ๋ฅด๊ณ ๊น๋ํ๋ฉฐ ์ธํ๋ผ ๊ธฐ๋ฐ์ด์ด์ผ ํฉ๋๋ค.
- ํ์ ์์ฐ์ ์ํ์ ์ด๋ํ์ง ์๊ณ ์ค์ ์ฌ์ฉ์ ๋ฐ์ํ๋ ํ๊ฒฝ์์ ํ ์คํธํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๋ฌ ํ์ด๋ ์๋น์ค๊ฐ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์กฐ์ ํด์ผ ํ๊ณ , ๋ถ๋ถ ๋ฐฐํฌ์ ์ํ์ด ๋๋ฌด ๋์ ์ฆ๋ถ์ ์ ๋ต์ ์ ๋นํํ ์ ์๋ ๊ฒฝ์ฐ์๋ ๊ฐ๋ ฅํ ํ๋ณด์ ๋๋ค.
์์ ํ ๋ฆฌํฉํ ๋ง์ ๋ํ ๋ง์ง๋ง ์๊ฐ
๋ฆฌํฉํ ๋ง ์์ฒด๊ฐ ์ํํ ๊ฒ์ ์๋๋๋ค. ์คํ๋ ค ๋ฐฐํฌ, ๊ฒ์ฆ, ๋กค๋ฐฑ์ ์ํ ์ด์ ์ ๋ต์ด ๋ถ์ฌํ๋ค๋ ์ ์ด ์ํ ์์์ ๋๋ค. ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ๋ ์๋๋ณด๋ค๋ ์์ ์ฑ, ์ ๋ขฐ์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต์ฑ์ ์ค์ํ๋ ๋ฐฐํฌ ๋ชจ๋ธ์ ๊ตฌ์ถํ์ฌ ์ด๋ฌํ ๊ณต๋ฐฑ์ ๋ฉ์๋๋ค.
Blue-Green Deployment๋ ์๋ํ๋ ๋ฆฌํฉํ ๋ง ๋๊ตฌ, ์ฝ๋ํ ์ธํ๋ผ(IaC) ๋ฐฉ์, ๊ทธ๋ฆฌ๊ณ ์ง์์ ์ธ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ๊ณผ ํจ๊ป ์ฌ์ฉ๋์ด ๋ฆฌํฉํ ๋ง์ ์ทจ์ฝํ ํ๋์์ ์ต๊ณ ์ ์์ง๋์ด๋ง ์์ ์ผ๋ก ํ๋ฐ๊ฟ์ํต๋๋ค. ๊ฐ๋ฐ์์ ์๋์ ์ด์ ์ ์ด๋ฅผ ์ผ์น์์ผ ๋๊ท๋ชจ ๋ณ๊ฒฝ์ ๊ฐ๋ฅํ๊ฒ ํ ๋ฟ๋ง ์๋๋ผ ๋ฐ๋ณต ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.