Wake Up Call
๊ฐ์ด์ ๋ฐํ ํ ๋ฉด์ ํ๊ธฐโฆ
์ ๊ฐ๋ฐ์ด ์ฌ๋ฐ์ง?
๋ด ๊ฐ๋ฐ์ ์ฌ๋ฅ์ ๋ญ๊น?
๋ธ๋ก๊ทธ ๊ฐ๋ฐ ํ๊ธฐ
๊ณ์ํด์ ๋ฏธ๋ค์ค๋ ๊ฐ์ธ ์น์ฌ์ดํธ ์ฌ์ ๋น๋ฅผ ์์ํ๋ฉฐ
์ด๋ค ๊ฐ๋ฐ์๊ฐ ๋ ๊ฒ์ธ๊ฐ?
๊ฐ๋ฐ์ ์ธํฐ๋ทฐ๋ฅผ ํ๋ค๋ณด๋ฉด ์ด ์ง๋ฌธ์ ๊ผญ ๋ฐ๊ฒ๋๋ค. ์ค์ํ๋ฉด์๋ ์ด๋ ค์ด ์ง๋ฌธ์ธ๋ฐ ์ง๊ธ์ ๋๋ ์ด๋ ๊ฒ ์๊ฐํ๋ค.
JSON API
๋น๊ต์ ์ต๊ทผ์ ๋ฑ์ฅํ API ์คํ์ผ์ธ JSON API์ ๋ํด ์์๋ณด์๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] GraphQL
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] REST API
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] WAS์ ๋ฐฑ์๋ ํ๋ ์์ํฌ
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ์น์๋ฒ
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] JSON๊ณผ ๊ทธ ์ธ ๋ฐ์ดํฐ ํฌ๋งท
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ์ฟ ํค
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization)
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ๋์นญํค / ๋น๋์นญํค
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] SSL / TLS
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] HTTP
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] TCP / UDP
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ํ๋กํ ์ฝ
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] OSI 7๊ณ์ธต
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
[๋ฐฑ์๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ] ๋คํธ์ํฌ
์ด๋ฏธ ์๊ณ ๋ ์์์ง๋ง ๋ง๋ก ๋ช ํํ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๋ฐฑ์๋ ๋ก๋๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ์ ๊ฐ๋ ๋ค์ ๋ค์ ์ ๋ฆฌํด๋ด ๋๋ค.
์ธ ๋ฒ์งธ ํด์ฌ
๋ณํ์ง ์๋ ๊ฒ์ ๋ณํ๋ค๋ ์ฌ์ค ๋ฟ
๊ณ ๋ฏผ์ ์ค์ผ ๊ฒ
๋ฌด์์ ์ํด ๊ฐ๋ฐํ๋๊ฐ
ํ๊ณ ๋ฅผ ์์ํฉ๋๋ค
[DDD] DDD์ ์ํคํ ์ฒ
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ๋ช ์ธ, Specification
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ, Aggregate
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ์์กด ๊ด๊ณ ์ ์ด
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
๋์ ๊ณต๋ถ๋ฅผ ํ์ฌ๋ ๊ธฐ๋ค๋ ค์ฃผ์ง ์๋๋ค
์์ฆ ๋ด๊ฐ ๊ฐ์ฅ ๊ณ ๋ฏผํ๊ณ ์๋ ๊ฒ์ ์ ๋ฌด์ ๊ฐ์ธ์๊ฐ ์ฌ์ด์ ๋ฐธ๋ฐ์ค๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค. ์๋ผ๋ฐธ์ด๋ผ๋ ํํ์ด ์๊ธฐ๋ ํ์ง๋ง ๋ด๊ฐ ๊ณ ๋ฏผํ๊ณ ์๋ ๋ถ๋ถ์ ์ผ๊ณผ ์ถ/์ผ์ ์ฌ์ด์ ๊ท ํ์ ์ฐพ๋ ๊ฒ๊ณผ๋ ์กฐ๊ธ ์ฐจ์ด๊ฐ ์๋ค. ์ ํํ๋ ๊ฐ๋ฐ์ ์๋ ์ ์ฒด ์๊ฐ ์ค์์ ์ผ๋ง ๋งํผ์ ์๊ฐ์ ๊ฐ์ธ ๋ฅ๋ ฅ ํฅ์์ ํฌ์ํ ๊ฒ์ธ๊ฐ์ ๋ํ ๊ณ ๋ฏผ์ด๋ค.
[DDD] ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค, Application Service
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ๋ฆฌํฌ์งํ ๋ฆฌ, Repository
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ๋๋ฉ์ธ ์๋น์ค, Domain Service
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ๊ฐ ๊ฐ์ฒด์ ์ํฐํฐ์ ๊ตฌ๋ถ
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ์ํฐํฐ, Entity
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ๊ฐ ๊ฐ์ฒด, Value Object
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[DDD] ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ๋?
โ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์ ๋ฌธโ์ ์ฝ์ผ๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค.
[๊ฐ๋ฐ์ฉ์ด์ ๋ฆฌ] ๋ฐํ์(Runtime)
๊ฐ๋ฐ์ฉ์ด์ฌ์ โ ์์ฃผ ์ฌ์ฉ๋์ง๋ง ํผ์ ์ ์ฃผ๋ ๊ฐ๋ฐ ์ฉ์ด๋ค์ ์ ํํ ๊ณต๋ถ ๋ชฉ์ ์ผ๋ก ๋ค์ ์ ๋ฆฌํฉ๋๋ค.
๋ธ๋ก๊ทธ๋ฅผ ์ฎ๊ฒผ๋ค
๋ฃจ์นด์ฐ๋ก๊ทธ v2.0์ ์์ํฉ๋๋ค