์ค๋ ๊ณต๋ถํ ๋ด์ฉ
- ๊นํ๋ธ ๊ฐ์ ์น์ 8, 9 ๋ฃ๊ธฐ(diff์ stash)
๐ญ ๋๋ ์ & ๋ฐฐ์ด ์
stash๊ฐ ์ธํ ๋ฆฌ์ ์ด์ shelve์ ๋งค์ฐ ๋น์ทํด ๋ณด์๋๋ฐ, stash๋ฅผ ๊ณต๋ถํ๊ณ ๋ณด๋ ๋ง์ด ๋ฌ๋๋ค๋ ๊ฒ์ ์์๋ค.
๋ญ๊ฐ ์ข๋ค๊ณ ํ๊ธฐ๋ ๋ญ ํ์ง๋ง, ์๋ฌด๋๋ shelve๋ฅผ ์ข ๋ ๋ง์ด ์ธ ๊ฒ ๊ฐ๋ค.
์ค๋๋ถํฐ ํผ์์ ํ๋ก์ ํธ๋ฅผ ๋ค์ ์์ํ๋ค.
๋ด ๋จธ๋ฆฌ๋ก๋ ์ข์ ์์ด๋์ด๊ฐ ๋์ ํ ์ ๋ ์ฌ๋ผ์ ๊ทธ๋ฅ ๋์๋ฆฌ ๊ด๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋๋ก ๋ง๋ค์ด๋ณด๋ ค ํ๋ค.
์ด๋ฒ์๋ ๋ง๋ค๋ฉด์ ์ฌ๋ฌ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด๊ฐ๋ฉฐ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
์ค๋์ ํ์๋ ์ฝ๋๋ฅผ ์กฐ๊ธ ์ฐธ๊ณ ํด๊ฐ๋ฉด์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ์ง์ง ์ฝ๋ ๋๋ฌด ์ ์ง์ ๋ค.
์ถ๊ฐ๋ก ํ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ๊ถ๊ธํ๋ ๊ฒ๋ค์ด ์๊ฒจ ๋ฐ๋ก ์ง๋ฌธ ๋๋ ธ๋๋ฐ ๋๋ฌด ์น์ ํ๊ฒ ์ ๋ต๋ณํด ์ฃผ์ จ๋ค.
Q. ๊ฐ๋จํ ํ์ ์ด๋/์์ฑ ์๋ฝ ๊ฐ๋จ ์์ ์ ๋ํ ์ง๋ฌธ์ธ๋ฐ, domain ๋ชจ๋์์ InviteWorkspace์ ๋ํ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ์ด infrastructure ๋ชจ๋๋ก์จ์ ์์กด์ฑ์ ๊ฐ์ง๋ ๊ฒ์ ๋ณด๊ณ ์๋ฌธ์ด ๋ค์์ต๋๋ค. domain ๋ชจ๋์์ infrastructrue ๋ชจ๋๋ก์ ์์กด์ฑ์ ๊ฐ์ง๋ ๊ฒ ๋ณด๋ค, infrastructure ๋ชจ๋์์ Member๋ฅผ ๋ฐํํ๋๋ก ํ์ฌ ์์กด์ฑ ๋ฐฉํฅ์ ๋ฐ๊พธ๋ ๊ฒ์ด ๋ ์ข์ง ์์๊น๋ ์๊ฐ์ด ์์ด์ heli๋์ ์๊ฐ์ ๋ฃ๊ณ ์ ์ฐ๋ฝ ๋๋ ธ์ต๋๋ค. infrastructure ๋ชจ๋์์ domain ๋ชจ๋๋ก์จ ์์กด์ฑ์ ๊ฐ์ง๋ ๊ฒ์ด ๋ฌธ์ ๋์ง ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
A. ์ฐ์ ํด๋น ํ์ ์ ๊ตฌ์กฐ๋ ํํ ๋งํ๋ ๋ ์ด์ด๋ ์ํคํ ์ฒ์ธ๋ฐ์. ์ง๊ธ ๊ตฌ์กฐ๋ domain ๋ชจ๋์์ ๋๋ฉ์ธ ์ํฐํฐ์ ์ ์ฆ์ผ์ด์ค๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ Infrastructure์์ domain์ ์ฐธ์กฐํ๋ ค๋ฉด ์ ์ฆ์ผ์ด์ค์ ๋๋ฉ์ธ ์ํฐํฐ ๋ชจ๋ธ๋ฅผ ์๋ก ๋ค๋ฅธ ๋ชจ๋๋ก ๋ถ๋ฆฌ ํด์ผํฉ๋๋ค. ex) application layer: usecase domain layer: domain entity ๊ฐ ๋ ์ด์ด๋ณ ๋ชจ๋ธ์ ์ด๋๊น์ง ์ ํ์ํฌ ๊ฒ์ธ์ง๋ ๋ง๋ ํ ์ ๋ต์ด ์์ง๋ ์๊ณ , ์ง๋ฆ๊ธธ์ ์ผ๋ง๋ ํ์ฉํ ์ง์ ์ฐจ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ฆฌ๋ฅผ ํตํ ์ด์ ์ด ๋ ํฌ๋ค๊ณ ํ๋จ๋๋ฉด ๋ถ๋ฆฌํ๊ณ ๋ชจ๋ ์์ญ์ ์ต์ข ๋ฐํ ๋ชจ๋ธ์ ๋๋ฉ์ธ ์ํฐํฐ๋ก ํต์ผํ๋ ๊ฒ๋ ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค์ ๋ก ๊ทธ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ์ ์ผ๋ก ์ ์ํ๋๊ฒ ํด๋ฆฐ ์ํคํ ์ฒ์ด๊ณ , ํด๋ฆฐ ์ํคํ ์ฒ์ ๊ธฐ์กฐ๊ฐ ๋๋ hexagonal architecture๊ฐ ์ต๋ํ ์ง๋ฆ๊ธธ์ ๋ฐฐ์ ํ๊ณ ์๋ ๋ชจ์ต์ ๋ณด์ธ๋ค๊ณ ์๊ฐํฉ๋๋น
Q. ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ํฌ๋ฆฌ๋์ ๋ต๋ณ ์ค์์ ์ถ๊ฐ์ ์ผ๋ก ๊ถ๊ธํ ๋ถ๋ถ์ด ์์ต๋๋ค. '์ง๊ธ ๊ตฌ์กฐ๋ domain ๋ชจ๋์์ ๋๋ฉ์ธ ์ํฐํฐ์ ์ ์ฆ์ผ์ด์ค๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ Infrastructure์์ domain์ ์ฐธ์กฐํ๋ ค๋ฉด ์ ์ฆ์ผ์ด์ค์ ๋๋ฉ์ธ ์ํฐํฐ ๋ชจ๋ธ๋ฅผ ์๋ก ๋ค๋ฅธ ๋ชจ๋๋ก ๋ถ๋ฆฌ ํด์ผํฉ๋๋ค.' ๋ผ๊ณ ๋ง์ํด์ฃผ์ จ๋๋ฐ, ํ์ฌ ๊ตฌ์กฐ์์ domain ๋ชจ๋์ด ๋๋ฉ์ธ ์ํฐํฐ์ ์ ์ฆ์ผ์ด์ค๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ค๋ ๋ถ๋ถ์ด ์ดํด๊ฐ ์ ๋์ง ์์ ๋ค์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค. ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ํ์ฌ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด domain ๋ชจ๋์์๋ ์ ์ฆ์ผ์ด์ค๋ฅผ, infrastructure ๋ชจ๋์์๋ ๋๋ฉ์ธ ์ํฐํฐ๋ฅผ ๊ฐ์ง๋๋ก ๋ถ๋ฆฌ๋์ด ์๋ค๊ณ ์๊ฐํ๋๋ฐ ํน์ ์ด๋๊ฐ ์๋ชป๋ ์๊ฐ์ธ์ง ๋ฐ๋ก์ก์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค..!
A. ์ํฐํฐ๋ ๊ฐ๋ ์ ์ธ ๋ด์ฉ์ด๊ณ , DDD์์ ๋งํ๋ ๋๋ฉ์ธ ๋ชจ๋ธ(๋๋ฉ์ธ ์ํฐํฐ)์ JpaEntity๋ ๋ค๋ฆ ๋๋ค. domain๋ชจ๋์ domain ํจํค์ง์ ์๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ด ๋๋ฉ์ธ ์ํฐํฐ์ด๊ณ , infrastructure->persistence ๋ชจ๋์ ์๋ ์ํฐํฐ๋ ์์์ฑ ๊ณ์ธต์ ์ํฐํฐ์ ๋๋ค๐
Jpa๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์์์ฑ ๊ณ์ธต์ ์ํฐํฐ๋ฅผ ๋๋ฉ์ธ ์ํฐํฐ๋ก ์ทจ๊ธํ์ฌ ์ฌ์ฉํ๊ธฐ ์์ํ ๊ตฌ์กฐ๊ฐ ๋๊ธฐ๋ํ์ง๋ง, ๊ทธ์ ๋ฐ๋ฅธ ์ฌ์ด๋ ์ดํํธ๋ ํจ๊ป ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๋ ํธ์ ๋๋ค.
Q. ํฌ๋ฆฌ๋ ๋ต๋ณ์ด ์กฐ๊ธ ์ด๋ ต์ง๋ง, ์ด๋์ ๋ ์ดํด๋ ๋ฏ ์ถ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ง์ง๋ง์ผ๋ก Infrastructure์์ domain์ ์ฐธ์กฐํ๋ ค๋ฉด ์ ์ฆ์ผ์ด์ค์ ๋๋ฉ์ธ ์ํฐํฐ ๋ชจ๋ธ๋ฅผ ์๋ก ๋ค๋ฅธ ๋ชจ๋๋ก ๋ถ๋ฆฌ ํด์ผํ๋ ์ด์ ์ ๋ํด์ ์ง๋ฌธ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ํด๋น ์ด์ ๊ฐ ํ์ฌ ๋๋ฉ์ธ ๋ชจ๋์ service(usecase ๊ตฌํ)์์ infrastructure๋ชจ๋๋ก์ ์์กด์ฑ์ด ์ด๋ฏธ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ infrastructure์์ domain ๋ชจ๋์ ์์กดํ๋ฉด ์์กด์ฑ ์ํ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด ๋ง๋ ๊ฒ์ธ๊ฐ์?
A. ๋ต๋ต ์ง๊ธ์ domain<-infrastructure ์ด๊ธฐ๋๋ฌธ์ ๊ทธ ๋ฐ๋๋ก ์ฐธ์กฐ๋ฅผ ํ๊ฒ๋๋ฉด ์ํ ์ฐธ์กฐ๊ฐ ๋ฐ์ํฉ๋๋ค.
(๊ฐ์ฌํฉ๋๋ค..!)
๋ํ๋ฅผ ํ๋ฉด์ DDD๋ ๊ณต๋ถํด์ผ์ง ํ๋ค๊ฐ ์ฐํ ์ฝ ์ค๋นํ๋ค๊ณ ์ ์ ๋ฏธ๋ค๋์ด๋๋ ๊ฒ์ด ์๊ฐ๋์ ๋ด์ผ๋ถํฐ๋ DDD๋ ๊ณต๋ถ๋ฅผ ๋ค์ ํด๋ณด๋ ค ํ๋ค.
๐ฅ ๋ด์ผ ๊ณต๋ถํ ๋ด์ฉ
- ๊น 10, 11๊ฐ ๊ณต๋ถํ๊ธฐ
- ํ๋ก์ ํธ ๊ฐ๋ฐ
- DDD ์ฑ ์ฝ๊ธฐ
๐ฅ ์ธ์ ๊ฐ..
- ๋ก๊ทธ ๊ด๋ จ ์ ๋ฆฌํ๊ธฐ
- Red-Black Tree
- MethodSecurityInterceptor
- StatementInspector
- EnumMap ์ ๋ฆฌ
- llvm ๊ณต๋ถ
- ์๋ฐ ํด๋์ค๋ก๋์ resources ๊ด๊ณ ํ์
์ค๋ ๊ณต๋ถํ ๋ด์ฉ ํฌ์คํ
'๐ณ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 2022-12-24 (0) | 2022.12.25 |
---|---|
[TIL] 2022-12-23 (0) | 2022.12.24 |
[TIL] 2022-12-21 (0) | 2022.12.21 |
[TIL] 2022-12-20 (0) | 2022.12.21 |
[TIL] 2022-12-19 (2) | 2022.12.20 |