๐๏ธ [NHN] ํด๋ฆฐ ์ํคํ ์ฒ ์ ๋งคํ ๋ถ๋ถ ์ ๋ฆฌํด ๋๋ฆฝ๋๋ค ์์ ์ ๋ฆฌ
์ฒ์ ์ปฌ๋ฆฌ์ ์ ์ฌํ์ ๋ ํ ๋ด์์๋ Java/Spring ์คํ์ผ๋ก ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์งํํ๊ณ ์์์ต๋๋ค. ์ด์ ํ์ฌ์์๋ ๊ฐ์ ์คํ์ ์ฌ์ฉํด์ ์ ์ํ๊ธฐ์ ๋ณ ๋ฌด๋ฆฌ ์๊ฒ ๊ตฌ๋~ ํ๋๋ฐ ์ฌ๊ฑธ, ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ ๊ทธ๋์ ๋ด์๋ ๊ฒ๊ณผ๋ ์์ดํ๋ ๊ฑฐ์์ฃ .ย ย ์๋๋ ๊ณ์ธตํ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. ํํ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์์ํ๋ฉด ๋ฐฐ์ฐ๊ฒ ๋๋ ๊ทธ Controller/Service/Repository ๊ตฌ์กฐ์ ๋๋ค. ๊ฐ์ฅ ๋จ์ํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ์ฌ์ ๊ทธ๋ฐ์ง ํ์๋ค์ ๊ฐ๋ฅด์น ๋๋ ๋ง์ด ์ฌ์ฉํ์ฃ . ์ ๋ ์์ธ๋ ์๋์์ต๋๋ค. ย ๊ทธ๋ฌ๋ ๋ง์ฃผ์น ๊ฒ์ ์ด๋ฆ์กฐ์ฐจ๋ ๋ฏ์ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ(Hexagonal Architecture)์์ต๋๋ค. ์ด๋ํฐ, ์ ์ค์ผ์ด์ค, ํฌํธ ๋ฑ ํ๋ํ ์ฉ์ด๋ค ์ฌ์ด์์ ์ ๋ ์ ์ ์ ์ฐจ๋ฆด ์๊ฐ ์์์ต๋๋ค. ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ๋ฅผ ์ฒ์ ๋์ ํ๋ ํ์๋ค์ ํ์ฌ๋ฅผ ๋ ๋ฌ๊ณ , ๋จ๊ฒจ์ง ์ ํฌ๋ค์ ํ์ต๋ ๋ด์ฉ์ด ์๋ ์ํ์์ ๋๋ฌ๋๋ฌ ๊ธฐ์กด ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ์ฝ๋๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฒ์จ 1๋ ์ด ๋์๋ค์. ๋ฌธ๋ ํ์ ํ ๋ถ์ด ๊ทธ๋ฐ ๋ง์์ ํ์ ๊ฒ๋๋ค.ย ์ฐ๋ฆฌ๋ ์ง๊ธ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ ๊ตฌ์กฐ๋ฅผ ์ ๋ฐ๋ผ๊ฐ๊ณ ์์๊น? ์ฌ์ค ์์ ์๊ฒ ๊ทธ๋ ๋ค๊ณ ๋ตํ ์ ์๋ ์ํ์์ต๋๋ค. ์ ํํ ๊ฐ๋ ๋ ๋ชจ๋ฅด๊ณ , ์ ๋์ ํ๋์ง ์ด์ ๋ ๋ชจ๋ฅธ ์ฑ ์ด์ฉ๋ค ๋ณด๋ ์ฌ๊ธฐ๊น์ง ์๋ฒ๋ ธ์ผ๋๊น์. ย ์ญ์ ์ ํ๋ธ ๋งํ ๊ฒ ์์ฃ . NHN์์ ์งํํ ์ฝํผ๋ฐ์ค์์ ํด๋ฆฐ ์ํคํ ์ฒ์ ๋ํ ๋ฐํ๋ฅผ ์งํํ ์ ์ด ์์์ต๋๋ค. ์ ๋ชฉ์ ํด๋ฆฐ ์ํคํ ์ฒ์ง๋ง, ๊ทธ ์์ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ์ ๊ดํ ๋ด์ฉ๋ ๋ค์ด์๋ ๊ฒ ๊ฐ์ ํด๋น ๋ด์ฉ์ ์ ๋ฆฌํ๊ฒ ๋์์ต๋๋ค.