์ด ๊ธฐ์ฌ์์๋ ์ ๊ฐ ์์ ์ค์ธ ํ๋ก์ ํธ๊ฐ ์ด๋ป๊ฒ ๋๊ท๋ชจ ๋จ์ผ์ฒด์์ ๋ง์ดํฌ๋ก์๋น์ค ์ธํธ๋ก ๋ณํ๋์๋์ง์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ด ํ๋ก์ ํธ์ ์ญ์ฌ๋ ๊ฝค ์ค๋์ ์ธ 2000๋ ์ด์ ์์๋์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ Visual Basic 6์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด์ IDE๊ฐ ์ธ์ด ์์ฒด๊ฐ ์ ๋๋ก ๊ฐ๋ฐ๋์ง ์์์ต๋๋ค. 2000๋ ๋ ๋ง์๋ ๋์ฑ ์ ๋งํ C#์ผ๋ก ์ ํํ๊ธฐ๋ก ๊ฒฐ์ ๋์์ต๋๋ค. ์ ๋ฒ์ ์ ์ด์ ๋ฒ์ ์ ๊ฐ์ ํ๊ณผ ๋ณํํ์ฌ ์์ฑ๋์์ผ๋ฉฐ ์ ์ฐจ์ ์ผ๋ก .NET์์ ์ ์ ๋ ๋ง์ ์ฝ๋๊ฐ ์์ฑ๋์์ต๋๋ค. C#์ ๋ฐฑ์๋๋ ์ฒ์์๋ ์๋น์ค ์ํคํ ์ฒ์ ์ค์ ์ ๋์์ง๋ง ๊ฐ๋ฐ ์ค์๋ ๋ก์ง์ด ํฌํจ๋ ๊ณต์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋น์ค๊ฐ ๋จ์ผ ํ๋ก์ธ์ค์์ ์์๋์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ฐ๋ฆฌ๊ฐ "์๋น์ค ๋ชจ๋๋ฆฌ์ค"๋ผ๊ณ ๋ถ๋ฅด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์ํ์ต๋๋ค.
์ด ์กฐํฉ์ ๋ช ๊ฐ์ง ์ฅ์ ์ค ํ๋๋ ์๋น์ค๊ฐ ์ธ๋ถ API๋ฅผ ํตํด ์๋ก ํธ์ถํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ณด๋ค ์ ํํ ์๋น์ค, ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ก์ ์ ํ์ ์ํด์๋ ๋ช ํํ ์ ์ ์กฐ๊ฑด์ด ์์์ต๋๋ค.
์ฐ๋ฆฌ๋ 2015๋
๊ฒฝ์ ๋ถํด ์์
์ ์์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ง ์ด์์ ์ธ ์ํ์ ๋๋ฌํ์ง ๋ชปํ์ต๋๋ค. ๋๊ท๋ชจ ํ๋ก์ ํธ์๋ ์์ง ๋ชจ๋๋ฆฌ์ค๋ผ๊ณ ํ ์ ์๋ ๋ถ๋ถ์ด ์์ง๋ง ๋ง์ดํฌ๋ก์๋น์ค์ฒ๋ผ ๋ณด์ด์ง๋ ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ง์ ์ ์๋นํฉ๋๋ค.
๊ธฐ์ฌ์์ ์ด์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
๋ด์ฉ
๊ธฐ์กด ์๋ฃจ์ ์ ์ํคํ ์ฒ์ ๋ฌธ์ ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ํ ๊ธฐ๋ ์ ํ ๋ฌธ์ -
๋ชจ๋๋ฆฌ์ค์์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์์ค ์ฝ๋ ์์ ์ธํ๋ผ ๋ฌธ์
๊ธฐ์กด ์๋ฃจ์ ์ ์ํคํ ์ฒ์ ๋ฌธ์ ์
์ฒ์์ ์ํคํ
์ฒ๋ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค. UI๋ ๋ณ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ด๊ณ ๋ชจ๋๋ฆฌ์ ๋ถ๋ถ์ Visual Basic 6์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ .NET ์ ํ๋ฆฌ์ผ์ด์
์ ์๋นํ ํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ํ๋ ๊ด๋ จ ์๋น์ค ์ธํธ์
๋๋ค.
์ด์ ์๋ฃจ์ ์ ๋จ์
๋จ์ผ ์คํจ ์ง์
๋จ์ผ ์คํจ ์ง์ ์ด ์์์ต๋๋ค. .NET ์ ํ๋ฆฌ์ผ์ด์
์ด ๋จ์ผ ํ๋ก์ธ์ค์์ ์คํ๋์์ต๋๋ค. ๋ชจ๋ ํ๋๋ผ๋ ์คํจํ๋ฉด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํจํ๊ณ ๋ค์ ์์ํด์ผ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ํ ์ฌ์ฉ์๋ฅผ ์ํด ์๋ง์ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ค ํ๋์ ์ค๋ฅ๋ก ์ธํด ๋ชจ๋ ์ฌ๋์ด ํ๋์ ์์
์ ํ ์ ์์์ต๋๋ค. ์ํํธ์จ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ฐฑ์
๋ ๋์์ด ๋์ง ์์์ต๋๋ค.
๊ฐ์ ๋๊ธฐ์ด
์ด ๋จ์ ์ ๋ค์ ์กฐ์ง์ ์
๋๋ค. ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์
์๋ ๋ง์ ๊ณ ๊ฐ์ด ์์ผ๋ฉฐ, ๊ทธ๋ค์ ๋ชจ๋ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๊ฐ์ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด์ ์๋ ๋ณ๋ ฌ๋ก ์งํํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ณ , ๋ชจ๋ ๊ณ ๊ฐ์ด ์ค์ ์ ์์์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ ์์ ์ ์
๋ฌด๊ฐ ๊ฐ์น ์๋ค๋ ๊ฒ์ ์
์ฆํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์
์๊ฒ๋ ๋ถ์ ์ ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐํ์ ์ด ๋๊ธฐ์ด์ ์ ๋ฆฌํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ด ํ์ํ๊ณ ๊ฒฐ๊ตญ ์ ํ์ ์ํ๋ ๋งํผ ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝ๋์ง ๋ชปํ์ต๋๋ค.
์ต์ ์ด ์๋ ๋ฆฌ์์ค ์ฌ์ฉ
๋จ์ผ ํ๋ก์ธ์ค์์ ์๋น์ค๋ฅผ ํธ์คํ
ํ ๋ ์ฐ๋ฆฌ๋ ํญ์ ์๋ฒ์์ ์๋ฒ๋ก ๊ตฌ์ฑ์ ์์ ํ ๋ณต์ฌํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฆฌ์์ค๋ฅผ ๋ญ๋นํ์ง ์๊ณ ๋ฐฐํฌ ๊ณํ์ ๋ณด๋ค ์ ์ฐํ๊ฒ ์ ์ดํ ์ ์๋๋ก ๊ฐ์ฅ ๋ถํ๊ฐ ๋์ ์๋น์ค๋ฅผ ๋ณ๋๋ก ๋ฐฐ์นํ๊ณ ์ถ์์ต๋๋ค.
ํ๋ ๊ธฐ์ ์ ๊ตฌํํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ์น์ํ ๋ฌธ์ ์
๋๋ค. ํ๋ก์ ํธ์ ์ต์ ๊ธฐ์ ์ ๋์
ํ๊ณ ์ถ์ง๋ง ๊ธฐํ๊ฐ ์์ต๋๋ค. ๋๊ท๋ชจ ๋ชจ๋๋ฆฌ์ ์๋ฃจ์
์ ์ฌ์ฉํ๋ฉด ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์ ์ ํ์ ๋งํ ๊ฒ๋ ์๊ณ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ชจ๋ ์
๋ฐ์ดํธ๊ฐ ๋ค์ ์ค์ํ์ง ์์ ์์
์ผ๋ก ๋ณํฉ๋๋ค. ์ด๊ฒ์ด ๋ญ๋น๋๋ ์ ๊ฒฝ๋ณด๋ค ๋ ๋ง์ ๋ณด๋์ค๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ผ๋ ๊ฒ์ ํ ๋ฆฌ๋์๊ฒ ์ฆ๋ช
ํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
๋ณ๊ฒฝ์ฌํญ ๋ฐํ์ ์ด๋ ค์
์ด๊ฒ์ด ๊ฐ์ฅ ์ฌ๊ฐํ ๋ฌธ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ ๋ฌ์ ํ ๋ฒ์ฉ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ต๋๋ค.
๊ฐ๋ฐ์์ ํ
์คํธ์ ๋
ธ๋ ฅ์๋ ๋ถ๊ตฌํ๊ณ ๊ฐ ๋ฆด๋ฆฌ์ค๋ ์ํ์ ํฐ ์ฌ์์ด ๋์์ต๋๋ค. ํ์ฌ์์๋ ์ด๋ฒ ์ฃผ๊ฐ ์์๋ ๋ ์ผ๋ถ ๊ธฐ๋ฅ์ด ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๋ ์ ์ ์ดํดํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๋ค์ ์ผ์ฃผ์ผ ๋์ ์ฌ๊ฐํ ์ฌ๊ฑด์ด ๊ธฐ๋ค๋ฆฌ๊ณ ์์์ ์ดํดํ์ต๋๋ค.
๋ชจ๋๊ฐ ์ํฉ์ ๋ฐ๊พธ๊ณ ์ถ์ดํ์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค์ ๋ํ ๊ธฐ๋
์ค๋น๋๋ฉด ๊ตฌ์ฑ์์ ๋ฐํ. ์๋ฃจ์
์ ๋ถํดํ๊ณ ๋ค์ํ ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ค๋น๊ฐ ์๋ฃ๋๋ฉด ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๊ท๋ชจ ์ ํ ํ. ์ค๋๋ ๋จ์ผ์ฒด๋ฅผ ์์ ํ๋ ๋๊ท๋ชจ ํ์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์ ๊ธฐ ๋๋ฌธ์ ์ด๋ ์ค์ํฉ๋๋ค. ์ด๋ฌํ ํ์ ์๊ฒฉํ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์์ ํด์ผ ํ์ง๋ง ๋ ๋ง์ ์ฐฝ์์ฑ๊ณผ ๋ ๋ฆฝ์ฑ์ ์ํ์ต๋๋ค. ์๊ท๋ชจ ํ๋ง์ด ์ด๋ฅผ ๊ฐ๋นํ ์ ์์ต๋๋ค.
๋ณ๋์ ํ๋ก์ธ์ค๋ก ์๋น์ค๋ฅผ ๊ฒฉ๋ฆฌํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ์ด๋ฅผ ์ปจํ ์ด๋์ ๊ฒฉ๋ฆฌํ๊ณ ์ถ์์ง๋ง .NET Framework๋ก ์์ฑ๋ ๋ง์ ์๋น์ค๋ Windows์์๋ง ์คํ๋ฉ๋๋ค. ์ด์ .NET Core ๊ธฐ๋ฐ ์๋น์ค๊ฐ ๋ํ๋๊ณ ์์ง๋ง ์์ง์ ๊ทธ ์๊ฐ ์ ์ต๋๋ค.
๋ฐฐํฌ ์ ์ฐ์ฑ. ์ฐ๋ฆฌ๋ ์ฝ๋๊ฐ ๊ฐ์ ํ๋ ๋ฐฉ์์ด ์๋ ํ์ํ ๋ฐฉ์์ผ๋ก ์๋น์ค๋ฅผ ๊ฒฐํฉํ๊ณ ์ถ์ต๋๋ค.
์๋ก์ด ๊ธฐ์ ์ ์ฌ์ฉ. ์ด๊ฒ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ์๊ฒ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
์ ํ ๋ฌธ์
๋ฌผ๋ก , ๋ชจ๋๋ฆฌ์ค๋ฅผ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋๋๋ ๊ฒ์ด ์ฝ๋ค๋ฉด ์ปจํผ๋ฐ์ค์์ ์ด์ ๋ํด ์ด์ผ๊ธฐํ๊ฑฐ๋ ๊ธฐ์ฌ๋ฅผ ์ธ ํ์๊ฐ ์์ ๊ฒ์
๋๋ค. ์ด ๊ณผ์ ์๋ ๋ง์ ํจ์ ์ด ์๋๋ฐ, ์ฐ๋ฆฌ๋ฅผ ๋ฐฉํดํ๋ ์ฃผ์ ํจ์ ์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋๋ถ๋ถ์ ๋ชจ๋๋ฆฌ์ค์ ์ผ๋ฐ์ ์: ๋น์ฆ๋์ค ๋ก์ง์ ์ผ๊ด์ฑ. ์ฐ๋ฆฌ๋ ๋ชจ๋ ธ๋ฆฌ์ค๋ฅผ ์์ฑํ ๋ ๋ถํ์ํ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ธฐ ์ํด ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ ํํ ๋ ์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ๋ชจ๋ ์ฝ๋๊ฐ ์๋นํ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์๊ณ ์๋น์ค๋ฅผ ๋ถ๋ฆฌํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์์ ์์ ๋น์ ์ ์ฅ์์๋ 500๊ฐ ์ด์์ ํ๋ก์ ํธ์ 700๋ง ๊ฐ ์ด์์ ์ฝ๋ ๋ผ์ธ์ด ์์์ต๋๋ค. ์ด๊ฑด ๊ฝค ํฐ ๊ฒฐ์ ์ด๊ณ , ๋ ๋ฒ์งธ ๋ฌธ์ . ๋จ์ํ ๊ฐ์ ธ์์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ์ต๋๋ค.
์ธ ๋ฒ์งธ ๋ฌธ์ โ ํ์ํ ์ธํ๋ผ๊ฐ ๋ถ์กฑํฉ๋๋ค. ์ฌ์ค ์ฐ๋ฆฌ๋ ์์ค ์ฝ๋๋ฅผ ์๋ฒ์ ์๋์ผ๋ก ๋ณต์ฌํ๊ณ ์์์ต๋๋ค.
๋ชจ๋๋ฆฌ์ค์์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ
๋ง์ดํฌ๋ก์๋น์ค ํ๋ก๋น์ ๋
์ฒซ์งธ, ์ฐ๋ฆฌ๋ ๋ง์ดํฌ๋ก์๋น์ค ๋ถ๋ฆฌ๊ฐ ๋ฐ๋ณต์ ์ธ ํ๋ก์ธ์ค๋ผ๋ ๊ฒ์ ์ฆ์ ์ค์ค๋ก ํ๋จํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํญ์ ๋น์ฆ๋์ค ๋ฌธ์ ๋ฅผ ๋์์ ๊ฐ๋ฐํด์ผ ํ์ต๋๋ค. ์ด๊ฒ์ ๊ธฐ์ ์ ์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํํ ์ง๋ ์ด๋ฏธ ์ฐ๋ฆฌ์ ๋ฌธ์ ์ ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฐ๋ณต์ ์ธ ๊ณผ์ ์ ์ค๋นํ์ต๋๋ค. ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๊ณ ์ฒ์์ ๋ค์ ์์ฑํ ์ค๋น๊ฐ ๋์ด ์์ง ์์ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์๋ํ์ง ์์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๊น?
์๋น์ค๋ ๊ณตํต ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ๊ณตํต ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ ํ๊ธฐ ๋๋ฌธ์ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ์ ๋ฐ๋ผ ์ฐ๊ฒฐ๋์์ต๋๋ค. ์์ํ ํํ๋ก๋ ๋ง์ดํฌ๋ก์๋น์ค๋ผ๊ณ ๋ถ๋ฅผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์๋น์ค๋ฅผ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ๋ณ๋๋ก ์ ๊ณตํ ์๋ ์์ต๋๋ค. ์ด๊ฒ๋ง์ผ๋ก๋ ์๋ก์ ๋ํ ์ํฅ๋ ฅ์ ์ค์ผ ์ ์์๊ณ , ๋ณ๋ ฌ ๊ฐ๋ฐ ๋ฌธ์ ์ ๋จ์ผ ์คํจ ์ง์ ๋ฌธ์ ๋ ์ค์ผ ์ ์์์ต๋๋ค.
ํธ์คํธ์์ ์ด์ ๋ธ๋ฆฌ๋ Program ํด๋์ค์ ์ฝ๋ ํ ์ค์ ๋ถ๊ณผํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ณด์กฐ ์์ ์์ Topshelf ์์ ์ ์จ๊ฒผ์ต๋๋ค.
namespace RBA.Services.Accounts.Host
{
internal class Program
{
private static void Main(string[] args)
{
HostRunner<Accounts>.Run("RBA.Services.Accounts.Host");
}
}
}
๋ง์ ์ฌ๋๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ๋ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ์๋น์ค๋ก ์์ํ์ต๋๋ค. ๊ทธ๋ค์ ์ด๊ฒ์ ์๋ฒฝํฉ๋๋ค. ๊ทธ๋ค์ ๋ ๋ฆฝ์ ์ด๋ฉฐ ์์น์ ์ผ๋ก ๋ณ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ค ์์ ์ ๋จ์ผ์ฒด์ ์ํธ ์์ฉํ์ง ์์ผ๋ฉฐ ๋จ์ง ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํฉ๋๋ค. ์ด๋ฌํ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ก์ด ์ํคํ ์ฒ๋ก์ ์ ํ์ ์์ํ๊ณ , ์ธํ๋ผ๋ฅผ ๋๋ฒ๊น ํ๊ณ , ๋คํธ์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ์๋ํด ๋ณผ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ ์กฐ์ง์๋ ์ธ์ฆ ์๋น์ค๋ฅผ ๋ง๋ค ์ ์๋ ํ์ด ์์ต๋๋ค.
UI ๋ถ๋ถ์ ์ฝ๋์์ ์ค์ ์์ ๋ฅผ ์ดํด๋ณด๋ฉด ์ด ์๋ฃจ์ ์ ๋๋ถ๋ถ์๋ ๋จ์ํ UI ์์์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ์ ์ฉํ ์ค์ ๋น์ฆ๋์ค ๋ก์ง์ด ํฌํจ๋์ด ์์์ ์ ์ ์์ต๋๋ค.
์ค์ UI ๋ก์ง์ ๋ง์ง๋ง ๋ช ์ค์๋ง ์์ต๋๋ค. ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ์๋ฒ๋ก ์ ์กํ์ฌ UI๋ฅผ ์ค์ด๊ณ ์ฌ๋ฐ๋ฅธ ์ํคํ
์ฒ๋ฅผ ๊ตฌํํ์ต๋๋ค.
์๋น์ค์ ์ฒ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ ์ ํ๋ ์ปจํ ์คํธ์ ๊ฐ๋ ๊ณผ ๋ถ๊ฐ๋ถ์ ๊ด๊ณ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ Domain Driven Design์ ๊ฐ๋ ์ ๋๋ค. ๋จ์ผ ์ธ์ด์ ๋ชจ๋ ์ฉ์ด๊ฐ ๊ณ ์ ํ๊ฒ ์ ์๋์ด ์๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ํ ๋ถ๋ถ์ ์๋ฏธํฉ๋๋ค. ๋ณดํ๊ณผ ์ฒญ๊ตฌ์์ ๋งฅ๋ฝ์ ์๋ก ๋ค์ด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๊ณ ์์ผ๋ฉฐ ๋ณดํ ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์์ ํด์ผ ํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ๋ค๋ฅธ ์ด์ ๋ธ๋ฆฌ์์ ๊ธฐ์กด Account ํด๋์ค๋ฅผ ์ฐพ์ ์ด๋ฅผ Insurance ํด๋์ค์์ ์ฐธ์กฐํ๋ฉด ์์ ์ฝ๋๊ฐ ์์ฑ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. DRY ์์น์ด ์กด์ค๋๋ฉฐ ๊ธฐ์กด ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์ด ๋ ๋น ๋ฅด๊ฒ ์๋ฃ๋ฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ณ์ ๊ณผ ๋ณดํ์ ๋งฅ๋ฝ์ด ์ฐ๊ฒฐ๋์ด ์์์ด ๋ฐํ์ก์ต๋๋ค. ์๋ก์ด ์๊ตฌ ์ฌํญ์ด ๋ํ๋๋ฉด ์ด๋ฌํ ๊ฒฐํฉ์ ๊ฐ๋ฐ์ ๋ฐฉํดํ์ฌ ์ด๋ฏธ ๋ณต์กํ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ์ ๋ณต์ก์ฑ์ ์ฆ๊ฐ์ํต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ฝ๋์์ ์ปจํ ์คํธ ๊ฐ์ ๊ฒฝ๊ณ๋ฅผ ์ฐพ์ ์๋ฐ ์ฌํญ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ณดํ์ ๊ฒฝ์ฐ 20์๋ฆฌ ์ค์์ํ ๊ณ์ข๋ฒํธ์ ๊ณ์ข ๊ฐ์ค ๋ ์ง๋ง์ผ๋ก ์ถฉ๋ถํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ด๋ฌํ ์ ํ๋ ์ปจํ ์คํธ๋ฅผ ์๋ก ๋ถ๋ฆฌํ๊ณ ๋ชจ๋๋ฆฌ์ ์๋ฃจ์ ์์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ถ๋ฆฌํ๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ธ๋ถ API๋ฅผ ์์ฑํ๋ ๋ฑ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ต๋๋ค. ์ผ๋ถ ๋ชจ๋์ด ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๋์ด์ผ ํ๊ณ ํ๋ก์ธ์ค ๋ด์์ ์ด๋ป๊ฒ๋ ์์ ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์๋ค๋ฉด ์ธ๋ถ ํธ์ถ์ ํตํด ๋ค๋ฅธ ์ ํ๋ ์ปจํ ์คํธ์ ์ํ๋ ๋ก์ง์ ์ฆ์ ํธ์ถํ์ต๋๋ค. ์๋ฅผ ๋ค์ด REST ๋๋ WCF๋ฅผ ํตํด.
์ฐ๋ฆฌ๋ ๋ถ์ฐ ํธ๋์ญ์ ์ด ํ์ํ ์ฝ๋๋ฅผ ํผํ์ง ์๊ฒ ๋ค๊ณ ๊ตณ๊ฒ ๊ฒฐ์ฌํ์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ด ๊ท์น์ ๋ฐ๋ฅด๋ ๊ฒ์ด ๋งค์ฐ ์ฌ์ด ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์๊ฒฉํ ๋ถ์ฐ ํธ๋์ญ์ ์ด ์ค์ ๋ก ํ์ํ ์ํฉ์ ์์ง๊น์ง ๋ฐ์ํ์ง ์์์ต๋๋ค. ๋ชจ๋ ๊ฐ์ ์ต์ข ์ผ๊ด์ฑ์ ์๋นํ ์ถฉ๋ถํฉ๋๋ค.
๊ตฌ์ฒด์ ์ธ ์๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ "์ ํ๋ฆฌ์ผ์ด์ "์ ์ํฐํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํ์ดํ๋ผ์ธ์ธ ์ค์ผ์คํธ๋ ์ดํฐ๋ผ๋ ๊ฐ๋ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ ๊ณ ๊ฐ, ๊ณ์ข ๋ฐ ์ํ ์นด๋๋ฅผ ์ฐจ๋ก๋ก ๋ง๋ญ๋๋ค. ํด๋ผ์ด์ธํธ์ ๊ณ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์ผ๋ ์นด๋ ์์ฑ์ ์คํจํ ๊ฒฝ์ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ '์ฑ๊ณต' ์ํ๋ก ์ด๋ํ์ง ์๊ณ '์นด๋ ์์ฑ ์ ๋จ' ์ํ๋ก ์ ์ง๋ฉ๋๋ค. ์์ผ๋ก๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋์ด ์ด๋ฅผ ์ ํํ์ฌ ์๋ฃํ ๊ฒ์ ๋๋ค. ํ๋์ ์์คํ ์ด ์ผ๊ด์ฑ์ด ์๋ ์ํ์์ง๋ง, ์ฐ๋ฆฌ๋ ๋์ฒด๋ก ์ด์ ๋ง์กฑํ๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ์ ์ผ๋ถ๋ฅผ ์ง์์ ์ผ๋ก ์ ์ฅํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๋ฉด ์ด๋ฅผ ํ๋์ ํ๋ก์ธ์ค๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ์๋น์ค ํตํฉ์ ์งํํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ํ ๋น์ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ป๊ฒ ๋น๊ต์ ์์ ํ๊ฒ ์์ฐ์ ํฌ์ ํ ์ ์๋์? ์ด ์์๋ ์์คํ ์ ๋ณ๋ ๋ถ๋ถ์ธ ๊ธ์ฌ ์๋น์ค ๋ชจ๋์ด ์์ผ๋ฉฐ, ์ด ๋ชจ๋์ ์ฝ๋ ์น์ ์ค ํ๋๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ ํฉ๋๋ค.
์ฐ์ , ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค. ๋ง์กฑ์ค๋ฝ์ง ๋ชปํ ๋ถ๋ถ์ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณ ๊ฐ์ ์๋ก์ด ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ๊ตฌํํฉ๋๋ค. UI์ ๋ฐฑ์๋ ๊ฐ์ ์ฐ๊ฒฐ์ API ๊ฒ์ดํธ์จ์ด๋ฅผ ์ถ๊ฐํ์ฌ ํตํ ์ ๋ฌ์ ์ ๊ณตํฉ๋๋ค.
๋ค์์ผ๋ก ์ด ๊ตฌ์ฑ์ ์๋ํ๋๋ก ์ถ์ํ์ง๋ง ํ์ผ๋ฟ ์ํ์
๋๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์ฌ์ ํ ์ค๋๋ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ๊ท ์ฌ์ฉ์๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ๋ ์ด์ ์ด ํ๋ก์ธ์ค๋ฅผ ํฌํจํ์ง ์๋ ์๋ก์ด ๋ฒ์ ์ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ฐ๋ฆฌ๋ ํ์ผ๋ฟ์ผ๋ก ์๋ํ๋ ๋ชจ๋๋ฆฌ์ค์ ๋ง์ดํฌ๋ก์๋น์ค์ ์กฐํฉ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฑ๊ณต์ ์ธ ํ์ผ๋ฟ์ ํตํด ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ตฌ์ฑ์ด ์ค์ ๋ก ์คํ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ดํดํ๊ณ ๋ฐฉ์ ์์์ ๊ธฐ์กด ๋ชจ๋๋ฆฌ์ค๋ฅผ ์ ๊ฑฐํ๊ณ ๊ธฐ์กด ์๋ฃจ์
๋์ ์ ๊ตฌ์ฑ์ ๋จ๊ฒจ ๋ ์ ์์ต๋๋ค.
์ ์ฒด์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ชจ๋๋ฆฌ์ค์ ์์ค ์ฝ๋๋ฅผ ๋ถํ ํ๊ธฐ ์ํด ๊ฑฐ์ ๋ชจ๋ ๊ธฐ์กด ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ค ๋ชจ๋๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ถ๋ถ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ์ด๋ฅผ ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ณํํ์ฌ ๋ ๋์ ์์ค ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ํ์ฌ ์คํค๋ง๋ฟ๋ง ์๋๋ผ ๋์ ๋ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์ค ์ฝ๋๋ณด๋ค ๋ ๋์๊ฒ ๋ถํ ๋ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ ๋ค๋ฅธ ์ค์ํ ๋จ์ ์ด ์์์ต๋๋ค. ๋ฐ๋ก ํฌ๊ธฐ๊ฐ ์์ฒญ๋ฌ์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ชจ๋๋ฆฌ์ค์ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ค์ํ ๊ฒฝ๊ณ ์ปจํ ์คํธ์ ํ ์ด๋ธ ์ฌ์ด์ ์ถ์ ๋ ๊ด๊ณ์ ๋ฐ๋ผ ์ค๊ณ๋์์ต๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฌธ์ (๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ง์ ์ฐ๊ฒฐ, ๋๋ก๋ ํ ์ด๋ธ ๊ฐ ๊ฒฝ๊ณ๊ฐ ๋ถ๋ถ๋ช ํจ) ์ธ์๋ ๋ง์ ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ธ ๊ณต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ํ๋ฆฟ ์ฌ์ฉ์ด ๋ฐ์ํ์ต๋๋ค. ๋ฐ์ดํฐ๋ ๋ณด๊ธฐ์ ๋ณต์ ๋ฅผ ํตํด ํ ์ด๋ธ์์ ๊ฐ์ ธ์จ ํ ์ด ๋ณต์ ๊ฐ ํ์ํ ๋ค๋ฅธ ์์คํ ์ผ๋ก ์ ๋ฌ๋์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์ด๋ธ์ด ํ๋ฐํ ์ฌ์ฉ๋์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์คํค๋ง๋ก ์ด๋ํ ์ ์์์ต๋๋ค.
์ฝ๋์์ ์ ํ๋ ์ปจํ ์คํธ๋ก ๋์ผํ ๋ถํ ์ด ๋ถ๋ฆฌ์ ๋์์ด ๋ฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ถ๋ฅํ๋์ง์ ๋ํ ๊ฝค ์ข์ ์์ด๋์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ค ํ ์ด๋ธ์ด ํ๋์ ์ ํ๋ ์ปจํ ์คํธ์ ์ํ๊ณ ์ด๋ค ํ ์ด๋ธ์ด ๋ค๋ฅธ ์ปจํ ์คํธ์ ์ํ๋์ง ์ดํดํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํํฐ์ ๋์ ๋ ๊ฐ์ง ๊ธ๋ก๋ฒ ๋ฐฉ๋ฒ, ์ฆ ๊ธฐ์กด ํ ์ด๋ธ ํํฐ์ ๋๊ณผ ์ฒ๋ฆฌ๋ฅผ ํตํ ํํฐ์ ๋์ ์ฌ์ฉํ์ต๋๋ค.
๊ธฐ์กด ํ ์ด๋ธ์ ๋ถํ ํ๋ ๊ฒ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ํธํ๊ณ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ฉฐ ๋ชจ๋๊ฐ ๋ง์กฑํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ธฐ์กด ํ ์ด๋ธ์ ๋ณ๋์ ์คํค๋ง๋ก ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
๋น์ฆ๋์ค ๋ชจ๋ธ์ด ํฌ๊ฒ ๋ฐ๋๊ณ ํ ์ด๋ธ์ด ๋ ์ด์ ์ฐ๋ฆฌ๋ฅผ ์ ํ ๋ง์กฑ์ํค์ง ๋ชปํ๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌ ๋ถ์๊ฐ ํ์ํฉ๋๋ค.
๋ ๊ฐ์ ๋ชจ๋๋ฆฌ์ค ๋ชจ๋์ด ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ ์์ฉํ๋ ์๋ฃจ์ ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ํ๋์ ๋ชจ๋๋ง ๋ถ๋ฆฌ๋ ํ ์ด๋ธ ์น์ ๊ณผ ์ํธ ์์ฉํ๊ณ ๋ค๋ฅธ ๋ชจ๋์ API๋ฅผ ํตํด ์ํธ ์์ฉ์ ์์ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ฐ์ , API๋ฅผ ํตํด์๋ง ๋ น์๋ง ํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ด๋ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ ๋ฆฝ์ฑ์ ๋ ผํ๊ธฐ ์ํ ํ์ ์กฐ๊ฑด์ ๋๋ค. ํฐ ๋ฌธ์ ๊ฐ ์๋ ํ ๋ ์ ์ฐ๊ฒฐ์ ์ ์ง๋ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ ์ฒ๋ฆฌ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ถ๋ฆฌ๋ ํ
์ด๋ธ์ ์ฌ์ฉํ์ฌ ์๋ํ๋ ์ฝ๋ ์น์
์ ๋ณ๋์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ถ๋ฆฌํ๊ณ ์ด๋ฅผ ๋ณ๋์ ํ๋ก์ธ์ค์ธ ์ปจํ
์ด๋์์ ์คํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ ๋ชจ๋๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ด์ ์ง์ ๊ด๋ จ๋์ง ์์ ํ
์ด๋ธ์ ์ฐ๊ฒฐ๋ ๋ณ๋์ ์๋น์ค์
๋๋ค. ๋ชจ๋๋ฆฌ์ค๋ ์ฌ์ ํ ๋ถ๋ฆฌ ๊ฐ๋ฅํ ๋ถ๋ถ๊ณผ ์ฝ๊ธฐ๋ฅผ ์ํด ์ํธ ์์ฉํฉ๋๋ค.
๋์ค์ ์ด ์ฐ๊ฒฐ์ ์ ๊ฑฐํ ๊ฒ์
๋๋ค. ์ฆ, ๋ถ๋ฆฌ๋ ํ
์ด๋ธ์ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ๋ API๋ก ์ ์ก๋ฉ๋๋ค.
๋ค์์ผ๋ก, ์๋ก์ด ๋ง์ดํฌ๋ก์๋น์ค๋ง ์๋ํ๋ ํ
์ด๋ธ์ ์ผ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ํํฉ๋๋ค. ํ
์ด๋ธ์ ๋ณ๋์ ์คํค๋ง๋ก ์ด๋ํ๊ฑฐ๋ ๋ณ๋์ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ ์๋ ์์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค์ ๋ชจ๋๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์๋ ์ฌ์ ํ ์ฝ๊ธฐ ์ฐ๊ฒฐ์ด ์์ง๋ง ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๊ตฌ์ฑ์์๋ ์๋นํ ์ค๋ซ๋์ ์ง์๋ ์ ์์ต๋๋ค.
๋ง์ง๋ง ๋จ๊ณ๋ ๋ชจ๋ ์ฐ๊ฒฐ์ ์์ ํ ์ ๊ฑฐํ๋ ๊ฒ์
๋๋ค. ์ด ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํด์ผ ํ ์๋ ์์ต๋๋ค. ๋๋ก๋ ์ธ๋ถ ์์คํ
์์ ๋ณต์ ๋ ์ผ๋ถ ๋ฐ์ดํฐ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ ๋๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค.
์ด ๊ณํ์ด ์๋ํ๋ ค๋ฉด ์ ํ ๊ธฐ๊ฐ์ด ํ์ํ ๊ฒ์
๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ ๊ฐ์ง ๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
์ฒ์์ผ๋ก: ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์ค๋ณต์ฑ๊ณผ ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ ๋ช ์ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ํ๋๋ ์ ๋ฒ์ ์์ ์๋ํ๊ณ ๋ค๋ฅธ ํ๋๋ ์ด์ ๋ฒ์ ์์ ์๋ํฉ๋๋ค.
์ด: ์ผ๋ถ ๋น์ฆ๋์ค ๊ธฐ์ค์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋๋๋๋ค. ์๋ฅผ ๋ค์ด, ์์คํ ์๋ ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ 5๊ฐ์ ์ ํ์ด ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋น์ฆ๋์ค ์์ ๋ด์ ์ฌ์ฏ ๋ฒ์งธ ํญ๋ชฉ์ ๋ฐฐ์นํฉ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์ด๋์ ๋ฌด์์ ์ป์์ง ๋ณด์ฌ์ค API ๊ฒ์ดํธ์จ์ด๊ฐ ํ์ํฉ๋๋ค.
๋ ์ ๊ทผ ๋ฐฉ์ ๋ชจ๋ ์๋ํ๋ฏ๋ก ์ํฉ์ ๋ฐ๋ผ ์ ํํ์ธ์.
๋ชจ๋ ๊ฒ์ด ์๋ํ๋ค๊ณ ํ์ธํ ํ์๋ ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์์ ์๋ํ๋ ๋ชจ๋๋ฆฌ์ค ๋ถ๋ถ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
๋ง์ง๋ง ๋จ๊ณ๋ ์ด์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์
๋๋ค.
์์ฝํ์๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ์์ค ์ฝ๋์ ๋นํด ์์
ํ๊ธฐ๊ฐ ์ด๋ ต๊ณ ๊ณต์ ํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ง๋ง ์ํํ ์ ์๊ณ ์ํํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋งค์ฐ ์์ ํ๊ฒ ์ํํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐพ์์ง๋ง ์ฌ์ ํ ์์ค ์ฝ๋๋ณด๋ค ๋ฐ์ดํฐ๋ก ์ค์ํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
์์ค ์ฝ๋ ์์
์ด๊ฒ์ด ๋ชจ๋๋ฆฌ์ ํ๋ก์ ํธ ๋ถ์์ ์์ํ์ ๋์ ์์ค ์ฝ๋ ๋ค์ด์ด๊ทธ๋จ์ ๋ชจ์ต์
๋๋ค.
๋๋ต 10๊ฐ์ ์ธต์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ์ด๋ ์คํ๋ ๋ชจ๋, ํ๋ฌ๊ทธ์ธ, ์๋น์ค ๋ฐ ๊ฐ๋ณ ํ๋์ ๊ณ์ธต์
๋๋ค. ์ค์ ๋ก ์ด๋ ๋ชจ๋๋ฆฌ์ ์๋ฃจ์
๋ด์ ์ง์
์ ์ด์์ต๋๋ค. ๋ชจ๋ Common ๋ ์ด์ด๋ก ๋จ๋จํ ๋ฐ๋ด๋์ด ์์์ต๋๋ค. ์๋น์ค๊ฐ ๊ณต์ ํ๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ง์ ์ฐ๊ฒฐ์ด ์์์ต๋๋ค. ๊ฐ ์๋น์ค์ ํ๋ฌ๊ทธ์ธ์ ๊ท๋ชจ์ ๊ฐ๋ฐ์์ ์์ฌ์ ๋ฐ๋ผ ์ต๋ XNUMX๊ฐ ์ด์์ ๊ณตํต ์ด์
๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๋ณ๋๋ก ์ฌ์ฉํ ์ ์๋ ์ธํ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค๋ ๊ฒ์ ํ์ด์ด์์ต๋๋ค.
์ผ๋ถ ๊ณตํต ๊ฐ์ฒด๊ฐ ์ค์ ๋ก ์ด ๊ณ์ธต์ ์ํ์ง ์๊ณ ์ธํ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ์ํฉ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด ํด๊ฒฐ๋์์ต๋๋ค.
๊ฐ์ฅ ํฐ ๊ด์ฌ์ฌ๋ ์ ํ๋ ์ปจํ ์คํธ์์ต๋๋ค. 3~4๊ฐ์ ์ปจํ ์คํธ๊ฐ ํ๋์ ๊ณตํต ์ด์ ๋ธ๋ฆฌ์ ํผํฉ๋์ด ๋์ผํ ๋น์ฆ๋์ค ๊ธฐ๋ฅ ๋ด์์ ์๋ก ์ฌ์ฉ๋๋ ์ผ์ด ๋ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ด ์ด๋์์ ์ด๋ค ๊ฒฝ๊ณ๋ฅผ ๋ฐ๋ผ ๋ถํ ๋ ์ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด ๋ถํ ์ ์์ค ์ฝ๋ ์ด์ ๋ธ๋ฆฌ์ ๋งคํํ์ฌ ๋ค์์ ์ํํ ์์ ์ ์ดํดํ๋ ๊ฒ์ด ํ์ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฝ๋ ๋ถํ ํ๋ก์ธ์ค์ ๋ํ ๋ช ๊ฐ์ง ๊ท์น์ ๊ณต์ํํ์ต๋๋ค.
์ฒซ ๋ฒ์งธ: ์ฐ๋ฆฌ๋ ๋ ์ด์ ์๋น์ค, ํ๋ ๋ฐ ํ๋ฌ๊ทธ์ธ ๊ฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ณต์ ํ๊ณ ์ถ์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์ดํฌ๋ก์๋น์ค ๋ด์์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ง๋ค๊ณ ์ถ์์ต๋๋ค. ๋ฐ๋ฉด์ ๋ง์ดํฌ๋ก์๋น์ค๋ ์ด์์ ์ผ๋ก๋ ์์ ํ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ ์๋น์ค๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๋๋ ์ด ์ ๊ทผ ๋ฐฉ์์ด ๋ค์ ๋ญ๋น์ ์ด๋ฉฐ ๋ฌ์ฑํ๊ธฐ ์ด๋ ต๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด C#์ ์๋น์ค๋ ์ด๋ค ๊ฒฝ์ฐ์๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ์ฐ๊ฒฐ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ ์์คํ ์ C#์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ ์์ง ๋ค๋ฅธ ๊ธฐ์ ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๊ณตํต ๊ธฐ์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ฌ์ ๊ฐ ์๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ผ๋ถ๊ฐ ํฌํจ๋์ด ์์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ์ฉ ์ค์ธ ORM์ ๋ํ ํธ๋ฆฌํ ๋ํผ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์๋น์ค ๊ฐ์ ๋ณต์ฌํ๋ ๋ฐ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค.
์ฐ๋ฆฌ ํ์ ๋๋ฉ์ธ ์ค์ฌ ๋์์ธ์ ํฌ์ด๋ฏ๋ก ์ด๋์ธ ์ํคํ ์ฒ๋ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ ํฉํ์ต๋๋ค. ์ฐ๋ฆฌ ์๋น์ค์ ๊ธฐ๋ณธ์ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ด ์๋๋ผ ๋น์ฆ๋์ค ๋ก์ง๋ง ํฌํจํ๊ณ ์ธํ๋ผ์ ์ฐ๊ฒฐ๋์ง ์๋ ๋๋ฉ์ธ ๋ก์ง์ด ํฌํจ๋ ์ด์ ๋ธ๋ฆฌ์ ๋๋ค. ๋์์ ๋๋ฉ์ธ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ์ฌ ํ๋ ์์ํฌ์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ด ๋จ๊ณ์์ ์ฐ๋ฆฌ๋ ์ฒซ ๋ฒ์งธ ์ฌ๊ฐํ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์๋น์ค๋ ํ๋์ ๋๋ฉ์ธ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํด์ผ ํ๊ณ , ์ฐ๋ฆฌ๋ ๋ ผ๋ฆฌ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ง๋ค๊ณ ์ถ์๊ณ , ์ฌ๊ธฐ์๋ DRY ์์น์ด ์ฐ๋ฆฌ๋ฅผ ํฌ๊ฒ ๋ฐฉํดํ์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ค๋ณต์ ํผํ๊ธฐ ์ํด ์ธ์ ํ ์ด์ ๋ธ๋ฆฌ์ ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ ๋๋ฉ์ธ์ด ๋ค์ ์ฐ๊ฒฐ๋๊ธฐ ์์ํ์ต๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ ๊ฒฐ๊ณผ ์๋ง๋ ์์ค์ฝ๋ ์ ์ฅ์ฅ์น ์์ญ์๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋จ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์์ค ์ฝ๋๋ฅผ ํฌํจํ๋ ๋๊ท๋ชจ ์ ์ฅ์๋ฅผ ๊ฐ๊ณ ์์์ต๋๋ค. ์ ์ฒด ํ๋ก์ ํธ์ ๋ํ ์๋ฃจ์ ์ ๋ก์ปฌ ์ปดํจํฐ์์ ์กฐ๋ฆฝํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ค์ ์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ก์ ํธ์ ์ผ๋ถ์ ๋ํด ๋ณ๋์ ์๊ท๋ชจ ์๋ฃจ์ ์ด ์์ฑ๋์์ผ๋ฉฐ ์ฌ๊ธฐ์ ๊ณตํต ๋๋ ๋๋ฉ์ธ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ๊ธ์งํ๋ ์ฌ๋์ ์๋ฌด๋ ์์์ต๋๋ค. ์ด๋ฅผ ํ์ฉํ์ง ์๋ ์ ์ผํ ๋๊ตฌ๋ ์ฝ๋ ๊ฒํ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ก๋ ์คํจํ๊ธฐ๋ ํ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ณ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์๋ ๋ชจ๋ธ๋ก ์ด๋ํ๊ธฐ ์์ํ์ต๋๋ค. ๋น์ฆ๋์ค ๋ก์ง์ ๋ ์ด์ ์๋น์ค์์ ์๋น์ค๋ก ํ๋ฅด์ง ์์ผ๋ฉฐ, ๋๋ฉ์ธ์ ์ง์ ์ผ๋ก ๋ ๋ฆฝ์ ์ด ๋์์ต๋๋ค. ์ ํ๋ ์ปจํ ์คํธ๊ฐ ๋ ๋ช ํํ๊ฒ ์ง์๋ฉ๋๋ค. ์ธํ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฌ์ฉํฉ๋๊น? ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋ณ๋์ ์ ์ฅ์๋ก ๋ถ๋ฆฌํ ๋ค์ Nuget ํจํค์ง์ ๋ฃ์๊ณ ์ด๋ฅผ Artifactory์ ๋ฃ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉด ์ด์ ๋ธ๋ฆฌ ๋ฐ ๊ฒ์๊ฐ ์๋์ผ๋ก ์ํ๋ฉ๋๋ค.
์ฐ๋ฆฌ ์๋น์ค๋ ์ธ๋ถ ์ธํ๋ผ ํจํค์ง์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ด๋ถ ์ธํ๋ผ ํจํค์ง๋ฅผ ์ฐธ์กฐํ๊ธฐ ์์ํ์ต๋๋ค. Nuget์์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ด๋ฌํ ํจํค์ง๋ฅผ ๋ฐฐ์นํ Artifactory๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ ๊ฐ์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์๊ท๋ชจ ์ ์ฅ์์์๋ Nuget๋ ์ฌ์ฉํ์ต๋๋ค. ์ฌ๋ฌ ์๋น์ค๊ฐ ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ์์๋ ๋ชจ๋ ๊ฐ์ ๋ ๋ง์ ๋ฒ์ ์ผ๊ด์ฑ์ ์ ๊ณตํ๋ Paket์ ์ฌ์ฉํ์ต๋๋ค.
๋ฐ๋ผ์ ์์ค ์ฝ๋ ์์
, ์ํคํ
์ฒ ์ฝ๊ฐ ๋ณ๊ฒฝ ๋ฐ ์ ์ฅ์ ๋ถ๋ฆฌ๋ฅผ ํตํด ์๋น์ค๋ฅผ ๋์ฑ ๋
๋ฆฝ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
์ธํ๋ผ ๋ฌธ์
๋ง์ดํฌ๋ก์๋น์ค๋ก ์ ํํ ๋ ๋ฐ์ํ๋ ๋๋ถ๋ถ์ ๋จ์ ์ ์ธํ๋ผ์ ๊ด๋ จ๋์ด ์์ต๋๋ค. ์๋ํ๋ ๋ฐฐํฌ๊ฐ ํ์ํ๊ณ ์ธํ๋ผ๋ฅผ ์คํํ๋ ค๋ฉด ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
์ฒ์์๋ ํ๊ฒฝ์ฉ ์๋ฃจ์ ์ ์๋์ผ๋ก ์ค์นํ์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ CI/CD ํ์ดํ๋ผ์ธ์ ๋ง๋ค์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๊ด์ ์์ ์ง์์ ์ธ ๋ฐฐํฌ๊ฐ ์์ง ํ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ง์์ ์ธ ์ ๊ณต ํ๋ก์ธ์ค๋ฅผ ์ ํํ์ต๋๋ค. ๋ฐ๋ผ์ ์์ ์ ์ก์ ๋ฒํผ์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ํ ์คํธ๋ฅผ ์ํด ์ํ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ์์ค ์ฝ๋ ์ ์ฅ์ ์ํด Atlassian, Bitbucket์ ์ฌ์ฉํ๊ณ ๋น๋๋ฅผ ์ํด Bamboo๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ C#๊ณผ ๋์ผํ๊ธฐ ๋๋ฌธ์ Cake๋ก ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ๊ธฐ์ฑํ ํจํค์ง๋ Artifactory๋ก ์ ๊ณต๋๋ฉฐ Ansible์ ์๋์ผ๋ก ํ
์คํธ ์๋ฒ์ ๋๋ฌํ ํ ์ฆ์ ํ
์คํธํ ์ ์์ต๋๋ค.
๋ณ๋์ ๋ก๊น
ํ๋ ๋ชจ๋๋ฆฌ์ค์ ์์ด๋์ด ์ค ํ๋๋ ๊ณต์ ๋ก๊น
์ ์ ๊ณตํ๋ ๊ฒ์ด์์ต๋๋ค. ๋ํ ๋์คํฌ์ ์๋ ๊ฐ๋ณ ๋ก๊ทธ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์ดํดํด์ผ ํ์ต๋๋ค. ์ฐ๋ฆฌ์ ๋ก๊ทธ๋ ํ
์คํธ ํ์ผ๋ก ๊ธฐ๋ก๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ์ค ELK ์คํ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณต๊ธ์๋ฅผ ํตํด ELK์ ์ง์ ๊ธฐ๋กํ์ง ์์์ง๋ง ํ
์คํธ ๋ก๊ทธ๋ฅผ ์์ ํ๊ณ ์ถ์ ID๋ฅผ ์๋ณ์๋ก ๊ธฐ๋กํ์ฌ ๋์ค์ ์ด๋ฌํ ๋ก๊ทธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋๋ก ์๋น์ค ์ด๋ฆ์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
Filebeat๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ์์ ๋ก๊ทธ๋ฅผ ์์งํ ๋ค์ ์ด๋ฅผ ๋ณํํ๊ณ , Kibana๋ฅผ ์ฌ์ฉํ์ฌ UI์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์๋น์ค ๊ฐ์ ํธ์ถ์ด ์ด๋ป๊ฒ ์งํ๋์๋์ง ํ์ธํ ์ ์๋ ๊ธฐํ๋ฅผ ์ป์ต๋๋ค. Trace ID๋ ์ด์ ๋ง์ ๋์์ด ๋ฉ๋๋ค.
๊ด๋ จ ์๋น์ค ํ ์คํธ ๋ฐ ๋๋ฒ๊น
์ฒ์์๋ ๊ฐ๋ฐ ์ค์ธ ์๋น์ค๋ฅผ ๋๋ฒ๊น
ํ๋ ๋ฐฉ๋ฒ์ ์์ ํ ์ดํดํ์ง ๋ชปํ์ต๋๋ค. ๋ชจ๋๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๊ฐ๋จํด ๋ก์ปฌ ๋จธ์ ์์ ์คํํ์ต๋๋ค. ์ฒ์์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ฌ์ฉํด ๋์ผํ ์์
์ ์ํํ๋ ค๊ณ ํ์ง๋ง ๋๋ก๋ ํ๋์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ ํ ์์ํ๋ ค๋ฉด ์ฌ๋ฌ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ํด์ผ ํ๋๋ฐ ์ด๋ ๋ถํธํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋๋ฒ๊น
ํ๋ ค๋ ์๋น์ค๋ง ๋ก์ปฌ ์์คํ
์ ๋จ๊ฒจ๋๋ ๋ชจ๋ธ๋ก ์ด๋ํด์ผ ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๋๋จธ์ง ์๋น์ค๋ prod์ ๊ตฌ์ฑ์ด ์ผ์นํ๋ ์๋ฒ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋๋ฒ๊น
ํ, ํ
์คํธํ๋ ๋์ ๊ฐ ์์
์ ๋ํด ๋ณ๊ฒฝ๋ ์๋น์ค๋ง ํ
์คํธ ์๋ฒ์ ๋ฐ๊ธ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๋ฃจ์
์ ํฅํ ํ๋ก๋์
์ ๋ํ๋ ํํ๋ก ํ
์คํธ๋ฉ๋๋ค.
ํ๋ก๋์ ๋ฒ์ ์ ์๋น์ค๋ง ์คํํ๋ ์๋ฒ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์๋ฒ๋ ์ฌ๊ณ ๋ฐ์ ์ ๋ฐฐํฌ ์ ๋ฐฐ์ก ํ์ธ ๋ฐ ๋ด๋ถ ๊ต์ก์ ์ํด ํ์ํฉ๋๋ค.
๋๋ฆฌ ์ฌ์ฉ๋๋ Specflow ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํ๋ ํ ์คํธ ํ๋ก์ธ์ค๋ฅผ ์ถ๊ฐํ์ต๋๋ค. Ansible์์ ๋ฐฐํฌํ ํ ์ฆ์ NUnit์ ์ฌ์ฉํ์ฌ ํ ์คํธ๊ฐ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค. ์์ ๋ฒ์๊ฐ ์์ ์๋์ด๋ฉด ์๋ ํ ์คํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋๋ก๋ ์ถ๊ฐ ์๋ ํ ์คํธ๊ฐ ์ฌ์ ํ ํ์ํ์ง๋ง. ์ฐ๋ฆฌ๋ Jira์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋ฌธ์ ์ ๋ํด ์คํํ ํ ์คํธ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ํ ๋ถํ ํ ์คํธ์ ๋ํ ํ์์ฑ์ด ์ฆ๊ฐํ์ผ๋ฉฐ ์ด์ ์๋ ๋๋ฌธ ๊ฒฝ์ฐ์๋ง ์ํ๋์์ต๋๋ค. JMeter๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์คํํ๊ณ , InfluxDB๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ ์ฅํ๊ณ , Grafana๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค ๊ทธ๋ํ๋ฅผ ์์ฑํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌด์์ ๋ฌ์ฑํ๋์?
์ฒซ์งธ, '๋ฆด๋ฆฌ์ค'๋ผ๋ ๊ฐ๋
์ ์์ด์ต๋๋ค. ์ด ๊ฑฐ๋ ๊ธฐ์
์ด ํ๋ก๋์
ํ๊ฒฝ์ ๋ฐฐํฌ๋์ด ์ผ์์ ์ผ๋ก ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์ค๋จ์์ผฐ์ ๋ 1,5๊ฐ์์ ๊ฑธ์น ์์ฒญ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์ฌ๋ผ์ก์ต๋๋ค. ์ด์ ๋ ์น์ธ ํ ์ด์๋๊ธฐ ๋๋ฌธ์ ํ๊ท XNUMX์ผ๋ง๋ค ์๋น์ค๋ฅผ ๋ฐฐํฌํ๊ณ ๊ทธ๋ฃนํํฉ๋๋ค.
์ฐ๋ฆฌ ์์คํ ์๋ ์น๋ช ์ ์ธ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ๋ฒ๊ทธ๊ฐ ์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ถ์ํ๋ฉด ์ด์ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ด ์ค๋จ๋๊ณ ๋ค๋ฅธ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
๋ฐฐํฌ ํจํด์ ์ ์ดํ ์ ์์ต๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์๋ฃจ์ ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ๋ณ๋๋ก ์๋น์ค ๊ทธ๋ฃน์ ์ ํํ ์ ์์ต๋๋ค.
๋ํ ๋๊ท๋ชจ ๊ฐ์ ๋๊ธฐ์ด์ ํตํด ๋ฌธ์ ๋ฅผ ํฌ๊ฒ ์ค์์ต๋๋ค. ์ด์ ์ผ๋ถ ์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ๋ ๋ณ๋์ ์ ํ ํ์ด ์์ต๋๋ค. ์คํฌ๋ผ ํ๋ก์ธ์ค๋ ์ด๋ฏธ ์ฌ๊ธฐ์ ์ ํฉํฉ๋๋ค. ํน์ ํ์๋ ์์ ์ ํ ๋นํ๋ ๋ณ๋์ ์ ํ ์์ ์๊ฐ ์์ ์ ์์ต๋๋ค.
๊ฐ์
- ๋ง์ดํฌ๋ก์๋น์ค๋ ๋ณต์กํ ์์คํ ์ ๋ถํดํ๋ ๋ฐ ๋งค์ฐ ์ ํฉํฉ๋๋ค. ๊ทธ ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ ์์คํ ์ ๋ฌด์์ด ์๋์ง, ์ ํ๋ ์ปจํ ์คํธ๊ฐ ๋ฌด์์ธ์ง, ๊ฒฝ๊ณ๊ฐ ์ด๋์ ์๋์ง ์ดํดํ๊ธฐ ์์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ชจ๋ ๊ฐ์ ๊ฐ์ ์ฌํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐฐํฌํ๊ณ ์ฝ๋ ํผ๋์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ๋ง์ดํฌ๋ก์๋น์ค๋ ์กฐ์ง์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ข ์ข ์ํคํ ์ฒ๋ก๋ง ์ธ๊ธ๋์ง๋ง ๋ชจ๋ ์ํคํ ์ฒ๋ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ๋ ๋ฐ ํ์ํ๋ฉฐ ๊ทธ ์์ฒด๋ก๋ ํ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ ์คํฌ๋ผ์ด ๋งค์ฐ ์ธ๊ธฐ๊ฐ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ๋ง์ดํฌ๋ก์๋น์ค๋ ์๊ท๋ชจ ํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋งค์ฐ ์ ํฉํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
- ๋ถ๋ฆฌ๋ ๋ฐ๋ณต์ ์ธ ๊ณผ์ ์
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ ธ์์ ๋จ์ํ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋๋ ์๋ ์์ต๋๋ค. ๊ฒฐ๊ณผ ์ ํ์ ๊ธฐ๋ฅํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ ์ฉ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ธฐ์กด ๋ ๊ฑฐ์๋ฅผ ๋ค์ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฆ, ๊ธฐ๋ฅ๊ณผ ์๋ ์ธก๋ฉด์์ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ๋ ์ ์ถฉ์กฑํ๊ณ ์ํ๋ ์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ ์ฃผ์์ฌํญ: ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ ํํ๋ ๋ฐ ๋๋ ๋น์ฉ์ ์๋นํ ํฝ๋๋ค. ์ธํ๋ผ ๋ฌธ์ ๋ฅผ ํผ์์ ํด๊ฒฐํ๋๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๋ฐ๋ผ์ ํน์ ํ์ฅ์ด ํ์ํ์ง ์์ ์๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๊ณ ํ์ ๊ด์ฌ๊ณผ ์๊ฐ์ ๋๊ธฐ ์ํด ๊ฒฝ์ํ๋ ๊ณ ๊ฐ์ด ๋ง์ง ์๋ค๋ฉด ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ํ์ฌ ํ์ํ ๊ฒ์ด ์๋ ์๋ ์์ต๋๋ค. ๊ฝค ๋น์ธ์. ๋ง์ดํฌ๋ก์๋น์ค๋ก ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ฉด ์ฒ์์๋ ๋ชจ๋๋ฆฌ์ค ๊ฐ๋ฐ๋ก ๋์ผํ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฒ๋ณด๋ค ๋น์ฉ์ด ๋ ๋์์ง๋๋ค.
PS ์ข ๋ ๊ฐ์ฑ์ ์ธ ์ด์ผ๊ธฐ(๊ฐ์ธ์ ์ผ๋ก๋) - ์ ๋ฐ๋ฅด๋ฉด
๋งํฌ .
๋ณด๊ณ ์์ ์ ์ฒด ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ถ์ฒ : habr.com