ํ๋ก์๊ฐ 100๋ง๋ช ์ธ ์ ์ ๊ฐ ์๋(๊ฒ์ ๊ฐ์ ํ) SNS ์๋น์ค์ด๋ค. ๋์ฉ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ณ , ํนํ ๋์์ฑ ์ ์ด์ ๋ํ ๊ณ ๋ฏผ๊ณผ ํ์ต์ด ์ฃผ๋ ๋ชฉํ์ด๋ค.
์ด ํ๋ก์ ํธ๋ ์๋์ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ(Hexagonal Architecture)๋ฅผ ๋ฐํ์ผ๋ก ์ค๊ณ๋์๋ค.
- ์ธ๋ถ ์์คํ ๊ณผ ์ธํ๋ผ์์ ์์กด์ฑ์ ๋ฎ์ถ ์ ์ฐํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌํ
- ๋น์ฆ๋์ค์ ๊ธฐ์ ์ ๋ถ๋ฆฌ
- ์ ์ค์ผ์ด์ค๋ฅผ ํตํด ์์ฌ์ด ํต์ฌ ๋น์ฆ๋์ค ์ดํด
- ์์ ์ ์ธ ํ ์คํธ
- ์ด ์ํคํ ์ฒ์ ์ฃผ์ ๋ชฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ธ๋ถ ์ธ๊ณ๋ก๋ถํฐ ๊ฒฉ๋ฆฌ์์ผ ์ ์ฐํ๊ณ ํ ์คํธํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ๊ฒ
- ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์ค์์ ๋๋ฉ์ธ ์์ญ์ ์์นํ๋ฉฐ, ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๋ ํฌํธ์ ์ด๋ํฐ๋ฅผ ํตํด ์ธ๋ถ์ ์ํตํจ
- ๋๋ฌธ์ ํฌํธ์ ์ด๋ํฐ ์ํคํ ์ฒ(Ports and Adapters Architecture)๋ผ๊ณ ๋ ๋ถ๋ฆผ
์ด ํ๋ก์ ํธ์์๋ ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๋ฃจํธ ํจํค์ง(dev.hoon.deepdive.heavytraffic.flitter
) ํ์์ ํจํค์ง ๋จ์๋ก ๊ตฌ๋ถํ๊ณ ์๋ค.
์ธ๋ถ ์์ญ์ ํด๋นํ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์
์ฝ์ด๋ฅผ ํธ์ถํ๋ ์ด๋ํฐ(adapter.in
ํจํค์ง ํ์ ํด๋์ค)์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ์ด์ ์ํด ํธ์ถ๋๋ ์ด๋ํฐ(adapter.out
ํจํค์ง ํ์ ํด๋์ค)๊ฐ ์๋ค.
์ด๋ํฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ํต์ ์ ๋ด๋นํ๋ ํฌํธ(application.port
)์ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ ์๋น์ค(application.service
)๋ก ๊ตฌ์ฑ๋์ด์๋ค.
ํฌํธ๋ in
/out
์ผ๋ก ๋๋์ด์๋๋ฐ ๊ฐ๊ฐ ์ ์ค์ผ์ด์ค ์ธํฐํ์ด์ค, ์ด๋ํฐ์ ์ํด ๊ตฌํ๋๊ณ ์ฝ์ด์ ์ํด ํธ์ถ๋๋ ์ธํฐํ์ด์ค๊ฐ ๋๋ค.
ํ๋ก์ ํธ์ ๋๋ฉ์ธ ์ํฐํฐ๋ฅผ ํฌํจํ๊ณ ์๋ค.