tobyilee
@tobyilee
Students
15,923
Reviews
1,055
Course Rating
5.0
ํธ์ฃผ์ ์ด๊ณ ์๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋๋ค. 30๋ ๊ฐ ๋ค์ํ ๋ถ์ผ์ ์์คํ ๊ณผ ์๋น์ค๋ฅผ ๊ฐ๋ฐํด๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค.
์คํ๋ง ํ๋ ์์ํฌ์ ๊ด๋ จ ๊ธฐ์ ์ ์ข์ํ๊ณ JVM ๊ธฐ๋ฐ ์ธ์ด๋ฅผ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
ํ๊ตญ์คํ๋ง์ฌ์ฉ์๋ชจ์(KSUG)์ ์ค๋ฆฝํ๊ณ ํ๋ํ๊ณ , ํ ๋น์ ์คํ๋ง์ด๋ผ๋ ์ฑ ์ ์ฐ๊ธฐ๋ ํ์ต๋๋ค.
๊ฐ๋ฐ๊ณผ ๊ด๋ จ๋ ๋ค์ํ ์ฃผ์ ์ ๊ดํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
Courses
Reviews
- Toby's Clean Spring - Domain Model Pattern and Hexagonal Architecture Part 1
- Toby's Clean Spring - Domain Model Pattern and Hexagonal Architecture Part 1
fain9301
ยท
[Meetup VOD] A 31-year veteran developer shares "How to live as a developer in the AI era"[Meetup VOD] A 31-year veteran developer shares "How to live as a developer in the AI era"- Toby's Clean Spring - Domain Model Pattern and Hexagonal Architecture Part 1
- Toby's Clean Spring - Domain Model Pattern and Hexagonal Architecture Part 1
Posts
Q&A
ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ์์์ ๋ฐฐ์น, ์ํ๋ฆฌํฐ, ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ ์ด๋ป๊ฒ ํ๋์?
์๋ ํ์ธ์. ๋ง์ ์ง๋ฌธ์ ์ฃผ์ จ๋ค์. ๐๋ฐฐ์น ํ๋ก์ธ์ค ์์ฒด๋ ํฅ์ฌ๊ณ ๋ ์ ์ด์ฉํ๋ ์ด๋ํฐ๋ก ๊ตฌํํ๋ฉด ๋ฉ๋๋ค. ๋ฐฐ์น์์ ํ์๋ก ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค ๊ธฐ๋ฅ๊ณผ ๊ด๋ จ ๋๋ฉ์ธ์ ๋ด๋ถ์์ ๊ตฌํํ๊ฒ ์ฃ . ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ณด์, ์ธ์ฆ ๋ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฅ์ฌ๊ณ ๋ ๋ฐ์์ ์ฒ๋ฆฌํ๊ฒ ๋๊ฒ ์ฃ . ํฅ์ฌ๊ณ ๋ ๋ด๋ถ์๋ ๋ณด์ ๊ฒ์ฆ์ด ์๋ฃ๋ ์์ฒญ์ด ์ ๋ฌ์ด ๋๋๊ฒ ์ผ๋ฐ์ ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ฉ์ธ ๋ ๋ฒจ์์๋ ์ผ์ข ์ ๋ณด์์ด ํ์ํ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ค๊ณํ๋ค ๋ณด๋ฉด, ํนํ ๊ถํ๊ณผ ๊ด๋ จํด์ ๋ก์ง์ด ์๋ฆฝ๋ ์๊ฐ ์๊ณ ์ด๊ฑด ๋๋ฉ์ธ์ ๊ด์ฌ์ฌ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒ์๊ธ์ ์์ฑ์์ ๊ด๋ฆฌ์๋ง ์์ ํ ์ ์๋ค ๊ฐ์ ๊ฒ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ฒ๋ฆฌ๋๋ ๊ฒ์ด ์์ฐ์ค๋ฝ์ต๋๋ค. ํฅ์ฌ๊ณค ์ธ๋ถ์ ์กํฐ์ ์ด๋ํฐ๋ ํญ์ ์๋ฒฝํ์ง ์๊ณ , ๋ฒ๊ทธ๊ฐ ์์ ์๋ ์๊ณ , ์ ์์ ์ธ ์์ฒญ์ด ์นจํฌํ ์๋ ์์ต๋๋ค. ๋๋ฉ์ธ์ ์ ํฉ์ฑ๊ณผ ๊ท์น์ ๊นจ๋จ๋ฆด ์ ์๋ ํ์๋ ํฅ์ฌ๊ณค ๋ด๋ถ์์ ๋ค๋ฃจ์ด์ผ ํฉ๋๋ค. ์ด๋ฒคํธ ์์ฒด๋ ์์ฃผ ๊ธฐ์ด์ ์ธ ๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฒ์ผ๋ก ๋ถ๋ฅํ๋ค๊ณ ์ ํด์ ธ์์ง๋ ์์ต๋๋ค. ๋ค์ํ ์ข ๋ฅ์ ์ด๋ฒคํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ๊ทธ์ค์์ ๋๋ฉ์ธ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค๋ฉด, ๊ทธ๊ฑด ๋น์ฐํ ๋๋ฉ์ธ ๋ด๋ถ์ ๋ฑ๋กํ๊ณ ๊ฐ๋ฅํ๋ฉด ๋๋ฉ์ธ ๊ณ์ธต์์ ๋ฐํ์ ํฉ๋๋ค. ์ฃผ๋ฌธ์ด ์ ์๋๋ค๋ ์ด๋ฒคํธ๊ฐ ์๋ค๋ฉด ์ฃผ๋ฌธ ์ ์๋ก ์ํ๋ฅผ ๋ณํํ๋ ๋ก์ง์์ ์ด๋ฒคํธ๊ฐ ๋์ ธ์ง๋ฉด ๋๊ฒ ์ฃ .๋๋ฉ์ธ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌํ๋ ๊ณณ์ ๋ค์ํฉ๋๋ค. ์ผ์ฐจ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฒคํธ ์คํ ๋ฐ์ ํด๋ณด๋ฉด ์ด๋ฐ ์ผ์ด์ค๋ฅผ ๋ง์ด ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ์ด๊ฑธ ์ด๋ฒคํธ๋ก ์ฒ๋ฆฌํ ์ง, ์๋๋ฉด ์ง์ ํธ์ถ๋ก ์ฒ๋ฆฌํ ์ง ๋ฑ์ ๊ณ ๋ฏผํด๋ณผ ์ฃผ์ ์ ๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์ ๋๋ฉ์ธ ์ด๋ฒคํธ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด๋ํฐ ๋ด๋ถ์์ ์ด๋ฒคํธ๋ฅผ ์ ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค. ์ธ๋ถ ์์คํ ๊ณผ ์ฐ๋, ๋ ํธ๋์ญ์ ๋ฐ์์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๋๋ฉ์ธ ์ด๋ฒคํธ ์ธ์๋ ์คํ๋ง์ ์ด๋ฒคํธ ์์คํ ์ ํ์ฉํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋, ์ด๋ฒคํธ๋ฅผ ๋ค๋ฅธ ์์คํ ์ผ๋ก ์ ์กํด์ผ ํ๋ ํ์๋ ์์ต๋๋ค.์ด์ ๊ด๋ จํด์๋ ํด๋ฆฐ ์คํ๋ง์ ๋ ๋ฒ์งธ ์ฃผ์ ์์ ์ค๋ช ๋๋ฆด ๊ณํ์ ๋๋ค.
- 0
- 2
- 74
Q&A
์ด๋ํฐ์์ ๋๋ฉ์ธ์ ์ง์ ์์กดํ๋ ๊ฒฝ์ฐ์ ๋ํด
์ฌ์ค ์ค๋ฌด์์๋ ๊ณ์ธต๊ฐ ์์กด ๋ฐฉํฅ์ฑ์ด๋ ๋ ๋ฆฝ์ฑ์ด ๊ทธ๋ ๊ฒ ์๊ฒฉํ๊ฒ ์ง์ผ์ง์ง ์๊ณ ๊ฐ๋ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค ๊ณ์ธต์ ํญ์ DTO๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ก ๋ง๋๋ ์์น์ ๊ฐ์ง๊ณ ๊ฐ๋ฐํ๋ ์ ๋ช ๊ธฐ์ ๊ฐ๋ฐํ๋ ๋ง์ด ๋ดค์ต๋๋ค.๊ทธ๋ผ์๋ ์ด๋ฒ ๊ฐ์๊ฐ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ๊ฐ ์ ๊ณตํ๋ ์ ์ต๊ณผ ๊ฐ์น๋ฅผ ์ ๋ฐ๋ฅด๋ ค๋ฉด ์ด๋ค ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ง์ ๋ํด์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ด๋๋งํผ, ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ, ๋ ํด๋ฆฐ ์ํคํ ์ฒ๊ฐ ์ถ๊ตฌํ๋ ์์กด ๊ด๊ณ๋ฅผ ์ ์งํค๋ฉด ์ด๋ป๊ฒ ๋ ์ง๋ฅผ ๊ณ์ ์ดํด๋ณด๋ ค๊ณ ํ๊ณ , ๊ทธ ๊ธฐ์ค์ ๋ฐ๋ผ์ ์ด๋ค ๋ชจ์ต์ด ๋์ค๋์ง ํ๊ตฌํด๋ณด๊ณ ์ถ์์ต๋๋ค.์ธ์ ๋ถํด๊ฐ ๋ง์ ๋ถ๋ค์ด ๋๋ฉ์ธ ๊ณ์ธต์ ์์๊ฐ ์ด๋ํฐ ๊ณ์ธต(์ธํ๋ผ, ์ปจํธ๋กค๋ฌ ๋ฑ๋ฑ)์ ๋ ธ์ถ๋๋ ๊ฒ์ ๋ฌธ์ ๋ผ๊ณ ์ด์ผ๊ธฐํ๋ ๊ฒ์ ์ ์๊ณ ์์ต๋๋ค. ์ํฐํฐ๋ฅผ ์ปจํธ๋กค๋ฌ์์ ์ง์ ๋ฆฌํดํ๋ ์ด๊ฐ๋จ ๋ฐฉ์์ด ๊ฒฐ๊ตญ ํฐ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ธฐ๋ ํ๊ณ , ๋ทฐ ์ญํ ์ ํ๋ ์ฝ๋๋ API ์๋ต ์์ฑ๋ง ํด์ผ ํ๋ ์ฝ๋์์ ๋๋ฉ์ธ ๋ก์ง์ ๊ฑด๋๋ฆฌ๋ ๋ฌธ์ ๋ฑ๋ฑ๋ ๋ง์ด ์ด์ผ๊ธฐ ๋๊ณ ์์ฃ . ๊ทธ๋์ ๋ง๋งํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ DTO๋ก ๋ณํ๋ ์ด๋ํฐ๊ฐ ํ์๋ก ํ๋ ์ ๋ณด๋ง ๋ ธ์ถํ๋ค๋ ๊ฒ์ ํด๊ฒฐ์ฑ ์ผ๋ก ์ผ์ต๋๋ค. ํ์ง๋ง ์ ๋ ์ด ๋ฐฉ์์ด ๋จ์ํ ๊ฒฝ์ฐ์ ๋ณ ์ฐจ์ด๊ฐ ์๊ฒ ์ง๋ง, ์๊ฐ์ด ํ๋ฌ์ ๋์ผ ํฌํธ๋ฅผ ์ด์ฉํ๋ ์ด๋ํฐ๊ฐ ์ฌ๋ฟ์ด ๋๊ณ (์น API, ๋ฐฐ์น, ๋ค๋ฅธ ๋ฉ์์ง ํด๋ผ์ด์ธํธ ๋ฑ๋ฑ), ๊ทธ๋๋ง๋ค DTO๊ฐ ์๊พธ ์๋ก ๋ง๋ค์ด์ง๊ฑฐ๋, ๋ณ๊ฒฝ์ด ๋๋ ๊ฒ์ ์์ฃผ ๊ด์ฐฐํ์ต๋๋ค. ์ด๋ํฐ ์ ๋จ์ ์กํฐ์ ์๊ตฌ ๋ณ๊ฒฝ์ด๋ ๋ฐฐ์น ๋ก์ง ๋ฑ์ ๋ณ๊ฒฝ์ด ์์ ๋๋ง๋ค ์ด๋ ๊ฒ DTO๊ฐ ๋ฐ๋๊ณ , ๋ ๋์๊ฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ก์ง๋ ๋ฐ๋ผ์ ๋ฐ๋๋ ๋ฑ์ ์๋ ์ ๋ง ์์ฃผ ์ค๋ ์ ๋ถํฐ, DB SQL์ UI ๋ก์ง๊น์ง ๋ฐ์๋๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐํ๋ ์์ ์ ์ ๋ฌผ์ด๊ธฐ๋ ํฉ๋๋ค. ๊ฐ์์์ ์ ๊ฐ ๊ฐ์กฐํ๋ ๊ฒ์ฒ๋ผ ๊ทธ๋ฐ DTO์ ๊ณผ๋ํ ์ฌ์ฉ์ ๊ฒฐ๊ตญ ์ด๋ํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค์ ๊ฐํ ์์กด๋ฅผ ๋ง๋ค๊ณ , ๊ทธ์ ๋ฐ๋ฅธ ์ฆ์ ๋ณ๊ฒฝ์ด ์ฌ๋ฌ ๊ณ์ธต์์ ์ผ์ด๋๊ฒ ๋ง๋ ๋ค๊ณ ๋ด ๋๋ค. ์ด๊ฒ DTO๋ผ๋ ์์ฃผ ์ฌํํ ๊ตฌ์กฐ์ฌ์ ๊ทธ๋ ์ง, ์ค๋์ ์๋น์ค ๊ณ์ธต์์ ๋ทฐ์์ ์กฐ๋ฆฝํ HTML ์กฐ๊ฐ์ ์์ฑํด์ ๋ณด๋ด์ฃผ๋ ๊ฒ๊ณผ ์์งํ ๋ค๋ฅด์ง ์๋ค๊ณ ๋ด ๋๋ค. ์ดํญํฐ๊ฐ ๋๋ฉ์ธ์ ์ด์ฉํ๋ ๊ฒ์ ์ฌ์ค ์์ฐ์ค๋ฝ์ต๋๋ค. ๋๋ฉ์ธ ์ค์ฌ์ ๊ฐ๋ฐ์์ ๋ชจ๋ ์ฝ๋๋ ๋๋ฉ์ธ์ ๊ฐ๋ ๊ณผ ๋ณดํธ์ธ์ด, ๋๋ฉ์ธ ๋ก์ง ๋ฑ์ ์์กดํ๋ ๊ฒ์ด ์์ฐ์ค๋ฝ์ต๋๋ค. ํ๋ฒ ๋ชจ๋ธ์ด ์ ์ค๊ณ๋๋ฉด ๊ฐ์ฅ ๋ณํ์ง ์๊ณ ์ ์ง๋๋ ๊ฒ์ด ๋๋ฉ์ธ์ด๊ณ , ๊ทธ ๋ถ๋ถ์ด ๋ณ๊ฒฝ๋๋ ํฌ๋ฆฌํฐ์ปฌํ ์ค๊ณ ๋ณ๊ฒฝ์ด ์๋ค๋ฉด ๊ทธ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ณ์ธต์ ๋ณํ๋ ์์ฐ์ค๋ฝ๊ฒ ์ด์ด์ง๋ ๊ฒ์ด ๋ง๋ค๊ณ ๋ด ๋๋ค. ๋ฌผ๋ก ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํฌํธ ์ ์ฅ์์ ๋จ์ํ ๊ฐ์ ๋ฆฌํดํ๋ ๊ฒ์ผ๋ก ๊ทธ ์๋๋ฅผ ์ ๋ํ๋ผ ์ ์๋ค๋ฉด ๊ฐ๋จํ ๊ฐ์ด๋ ์์ DTO๋ฅผ ๋ฆฌํดํ๊ฒ ํ๋๊ฒ ๋ง์ต๋๋ค. ์ด๊ฑด ๋จ์ง ์ํฐํฐ๋ฅผ ์ฝ๊ธฐ์ ์ฉ์ผ๋ก ๋ง๋ ์ค๋ธ์ ํธ์ ์ฎ๊ฒจ ๋ด๋ ๊ฒ๊ณผ๋ ๋ค๋ฅด๊ณ , ์ด๋ํฐ์ ๊ทธ ์์ ์๊ตฌ ๋ณํ์ ๋ฐ๋ผ ๋๋ฉ์ธ์ด ๋ณ๊ฒฝ๋์ง ์์์์๋ ์๋น์ค๊ณ์ธต์ DTO๊ฐ ์๊พธ ๋ฐ๋๋ ์ผ์ด ์ผ์ด๋์ง๋ ์์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋๋ถ๋ถ์ ์ ๊ทธ๋ฆฌ๊ฑฐํธ๋ ์ํฐํฐ๋ฅผ ๋ฆฌํดํ๊ณ , ์ด๋ฅผ ์ด๋ป๊ฒ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด์ฌ์ค์ง๋ ์ปจํธ๋กค๋ฌ ์ฝ๋ ๋ด์ ๋ทฐ ๋ก์ง์ ๋ด๋นํ๋ ์๋ต ๊ฐ์ฒด ์์ฑ ์์ ์ ๊ฒฐ์ ๋๋ ๊ฒ์ด ํจ์ฌ ๋ซ๋ค๊ณ ๋ด ๋๋ค.๋๋ฉ์ธ์ ๊ฐ์ฅ ์์คํ๊ณ ์ค์ํ๊ณ , ๊ทธ๋ฆฌ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ ์์ญ์ด ์ด์ ์์กดํ๋ ๊ฒ์ด ๋๋ฌด ์์ฐ์ค๋ฝ์ต๋๋ค. ๋ฌผ๋ก ์์ฆ์ ์ ๊ฐ ์ฃผ์ฅํ๋ ๊ฒ์ด ํ์ฅ์์ ๋ณดํธ์ ์ผ๋ก ํต์ฉ๋๋ ์ฃผ๋ฅ ๋ ผ๋ฆฌ๊ฐ ์๋ ์ ์์ต๋๋ค. ์ธ์ ๋ถํด๊ฐ DTO ๋ง๋ฅ ์๋๋ผ, DTO๋ ํน์ ๊ณ์ธต์ ์ํ์ง ์๋ ๋ชจ๋ ๊ณ์ธต์์ ์ฌ์ฉํ๋ ๋ณดํธ์ ์ธ ์ค๋ธ์ ํธ๋ก ์ทจ๊ธํ๊ธฐ๋ ํฉ๋๋ค. ์์ฆ AI์๊ฒ ์คํ๋ง ๊ฐ๋ฐ์ ์ํค๋ฉด ๊ทธ๋ ๊ฒ ๋ง๋ค๋๋ผ๊ณ ์. ํ์ง๋ง ๊ณ์ธตํ ์ํคํ ์ฒ์ ์์น๊ณผ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ๊ฐ ์ถ๊ตฌํ๋ ๊ฒ์ ์ ์งํค๋ฉด์ ์ ์ง๋ณด์์ฑ์ด ์ข๊ฒ ๋ฐ์ ํ๋ ์ฝ๋๊ฐ ์ฃผ๋ ๊ฐ์น๊ฐ ์ถฉ๋ถํ ์๋ค๊ณ ๋ฏฟ๊ธฐ์ ์ด๋ฐ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ ค๊ณ ํฉ๋๋ค. Provided interface๊ฐ ์ด๋ํฐ์ ์๊ตฌ์ ์์กดํ๋ค๋ ์ด์ผ๊ธฐ๋ ํ์ จ๋๋ฐ, ์ด๊ฑด ๋ฐ๋๋ก ์ ๊ทผํ๋ ๊ฒ์ด ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ์ ์์น์ธ ๋ฏ ์ถ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ฉ์ธ๊ณผ ์ด ๋ก์ง์ ๋ด์ ํฅ์ฌ๊ณค์ ์ฐ์ ๋๋ฉ์ธ์ด ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ถฉ์คํ๊ฒ ๋ง๋ค์ด์ง๊ณ , ๊ฒฐ๊ณผ์ ์ผ๋ก ์กํฐ, ๊ทธ๋ฆฌ๊ณ ์ด ์ค๊ณ ์ญํ ์ ํ๋ ์ด๋ํฐ๊ฐ ์ด์ฉํ๋ ๊ฒ์ด์ง, ์ด๋ํฐ์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๊ธฐ ์ํด์ ํฌํธ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ ๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๋ฌผ๋ก ์กํฐ๊ฐ ์๋ ์๋น์ค๋ ์์ ๊ฒ์ด์ง๋ง, ๋๋ฉ์ธ ๊ด์ ์์ ์ค๊ณํ ์์ ์ ๊ฒฐ๊ณผ๋ก์ ์ธํฐํ์ด์ค๊ฐ ์ ์๋๊ณ ์ด๊ฒ ์๋น์ค์์ ์ ๊ณต๋๋ ๊ฒ์ด์ด์ผ์ง, ๋จ์ง ์ธ๋ถ์ ์๊ตฌ๊ฐ ์์ผ๋๊น ์ด๊ฑธ ๋ง๋ ๋ค๋ ์์ผ๋ก ์ ๊ทผํ์ง ์๋๊ฒ ๋๋ฉ์ธ ๋ชจ๋ธ ์ค์ฌ์ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ผ ๋ฏํฉ๋๋ค. ์ธ๋ถ์ ์๊ตฌ๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์, ๋จผ์ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ฐ์ํ๊ณ ์์์๋ถํฐ ์ค๊ณํด์ ๋ฐ์ผ๋ก ๋๊ฐ๋ ๊ฒ์ด ์์ฐ์ค๋ฝ์ต๋๋ค. ๋ ์ด์ผ๊ธฐํ๊ณ ์ถ์ผ์๋ฉด ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.
- 0
- 2
- 92
Q&A
Member ๋๋ฉ์ธ์ด PasswordEncoder๋ฅผ ๋ฐ๋ ๊ตฌ์กฐ ์ง๋ฌธ ์์ต๋๋ค.
ํฅ๋ฏธ๋ก์ด ์ง๋ฌธ์ ์ฃผ์ จ๋ค์.์ ๋ ์ค๋ฌด ์ผ์ ํ ๋ ์คํ๋ง ๊ธฐ์ ์ ํน์ ์ธํฐํ์ด์ค ํ๋๊ฐ ๋๋ฉ์ธ ๋๋ ์๋น์ค ๊ณ์ธต์ ๋ก์ง์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ํํํ๋ค๋ฉด, ๊ทธ๊ฑธ ๊ธฐ์ ๊ตฌํ์ฒด์ ์๊ด์์ด ๊ฐ์ ธ๋ค ์ฐ๊ธฐ๋ ํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ตฌํ ๋ ๋ฒจ์ ์ฐ๋ ์์ญ์์ ์คํ๋ง ๊ธฐ์ ์ ์ธ๊ฒ ๋ถ๋ช ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด์ ์ธํฐํ์ด์ค๋ง ๋ณด์๋ฉด, ํจํค์ง ์ด๋ฆ์ ์คํ๋ง์ด ๋ค์ด๊ฐ๋ ๊ฑธ ์ ์ธํ๋ฉด ์ผ๋ง๋ ์ง ์์ํ๊ฒ ๋๋ฉ์ธ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค์ ์์ด๋์ด๋ฅผ ํํํด ๋ด๊ธฐ๋ ํฉ๋๋ค. ๋ง์ํ์ PasswordEncoder๊ฐ ๋ฐ๋ก ๊ทธ๋ฐ ์์ด์ฃ . ๊ทธ๋ผ์๋ ๋๋ฉ์ธ ์ฝ๋์ ์คํ๋ง์ด ๋ค์ด๊ฐ๋ ๊ฒ์ ๋ชป๊ฒผ๋ํ๋, ์คํ๋ง์ ์์กด์ ์ธ ์ฝ๋๋ผ๊ณ ๋งน๋น๋ํ๋ ์์ํ(?) ์ดํ ๊ฐ๋ฐ์๋ค์ด ๊ฐ๋ ๋ณด์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์์กด์ด๋ ๋ฌด์์ธ๊ฐ์? ์ ์์กด์ด ๋์๋ค๊ณ ํ๋ ๊ฒ์ผ๊น์. ์ฝ๋ ์ฐจ์์์ ์์กด์ด๋, ๋ด๊ฐ ์์กดํ๋ ๋์์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ๋ฐ๋๋ฉด ๋ด ์ฝ๋๋ ๋ฐ๋ผ์ ๋ฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋น๋ฐ๋ฒํธ ๊ธฐ์ A ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋๋ฉ์ธ๊ณผ ์ฌ๊ธฐ์ ๊ธฐ์ ์ฐ๋๋ก ๋ง๋ค์๋๋ฐ, ๋น๋ฐ๋ฒํธ ๊ธฐ์ ์ ๋ฐ๋ก ๋ง๋ค์ด์ ํด๋์ค์ ์ธํฐํ์ด์ค, ๋ฉ์๋ ์๊ทธ๋์ฒ๊ฐ ๋ฐ๋๋ฉด ๋ด ์ฝ๋๋ ๋ฐ๋ผ์ ๋ฐ๋๋ค๋ฉด ์์กดํ๋ค๊ณ ํ ์ ์์ฃ . ๊ทธ๋ผ ์คํ๋ง์ ์์กดํ๋ค๋ ๊ฒ์, ์คํ๋ง์ ์์ฐ๊ณ (๊ณผ์ฐ ๊ทธ๋ด ์๊ฐ ์์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง) ๋ค๋ฅธ ๊ธฐ์ ์ ์ด๋ค๋ฉด, ํน์ ์คํ๋ง ๊ธฐ์ ์ด ์ ๋ฐ์ดํธ ๋๋ฉด์ ํต์ฌ ์ธํฐํ์ด์ค๋ฅผ ํ ๋ฐ๊พผ๋ค๋ฉด(๊ทธ๋ฐ ๊ฒฝ์ฐ๋ ์ญ์ฌ์ ์ผ๋ก ๊ฑฐ์ ์์ต๋๋ค๋ง), ๋๋ฉ์ธ ์ฝ๋๋ ๋ฐ๋๊ณ ๊ทธ๋์ผ ํ๋ ์์กดํ๋ค๊ณ ํ ์ ์๊ฒ ์ฃ .๊ทธ๋ ๋ค๋ฉด ์คํ๋ง ์ํ๋ฆฌํฐ์ PasswordEncoder ์ธํฐํ์ด์ค๋ ๊ทธ๋ ๊ฒ ์์กด์ฑ์ ๋ถ์ฌํ ๊ฒ์ธ๊ฐ? ๋ผ๊ณ ํ๋ค๋ฉด ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค๋ฃจ๋ ์ฝ๋๊ฐ ๊ฐ์ง๋ ์ ๋ง ๋๋ฌด ๋ปํ๊ณ , ๋ํ์ ์ธ, ์ง๊ทนํ ํ๋ฒํ ๋ก์ง์ ๋ด์ ๊ฒ ์ด์์ ๊ทธ ์ธํฐํ์ด์ค์์ ์ฐพ์ ์๊ฐ ์์ต๋๋ค.๊ทธ๋์ ์ด๋ด ๋๋ ์คํ๋ง ์ํ๋ฆฌํฐ ์ธํฐํ์ด์ค๋ฅผ ๋๋ฉ์ธ์ด๋ ์๋น์ค์์ ์ฌ์ฉํด๋ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋งค์ฐ ํฌ๋ฐํ์ง๋ง ์คํ๋ง์ ์ฐ๋ฉด์ ์ํ๋ฆฌํฐ ๊ธฐ์ ์ ๋ค๋ฅธ ๊ฒ์ ์ด๋ค๊ณ ํ๋๋ผ๋, ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค๋ฃจ๋ ๋ก์ง์ ๊ฐ์ง ๋ค๋ฅธ ๊ตฌํ ๊ธฐ์ ์ ์ฐ๋๋ผ๋, ์คํ๋ง์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ ๊ทธ ๊ธฐ์ ์ ์ฌ์ฉํ๋๋ก ์ด๋ํฐ๋ฅผ ํ๋ ์ถ๊ฐํ๋ฉด ๋๋จธ์ง ์ฝ๋๋ ์ ํ ์์ ๋์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋๊น ์์กด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๋ ๊ฒ์ด์ฃ .๊ทธ๋ผ์๋ ๋ณ๋์ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํด์ ์ฌ์ฉํ ๊ฒ์, ๊ทธ๋๋ ๊ด์ฐฎ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ง ์คํ๋ง ์ํ๋ฆฌํฐ ๊ธฐ์ ์ ์ ๊ฒํ ํ์ง ์์ ์ํ์์ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ด๊ธด ๋น๋ฐ๋ฒํธ ์ฒ๋ฆฌ ๋ก์ง์ ๊ฐ์ง๊ณ ์ผ๋ง๋ ์ง ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ ๋๋ฉ์ธ ๊ฐ๋ ์ ๋ด์ ์ฌ์ฉํ ์ ์์ฃ . ๊ทธ๋ฆฌ๊ณ ์ด๋ํฐ์์ ์คํ๋ง ์ํ๋ฆฌํฐ์ ๊ฑฐ์ ๋น์ทํ ์ด๋ฆ์ ๊ธฐ์ ์ ์ฌ์ฉํ๋๋ก ๋ง๋ค์ด๋ ์ฌ์ค ๋ฌธ์ ์์ต๋๋ค.์ด๊ฑด ๊ทธ๋ค์ง ์ฐจ์ด๊ฐ ์๋ ๊ฒฐ๊ณผ์ ๋ํ, ๊ฐ๋ฐํ์ ์ทจํฅ, ๊ฒฝํ์ ์ํ ํ๋จ์ ๊ฒฐ๊ณผ๋ผ๊ณ ๋ด๋ ๋ฉ๋๋ค. ์คํ๋ง ์ํ๋ฆฌํฐ์ PasswordEncoder์ ์ด๋ฏธ ์ต์ํ๊ณ ๋ชจ๋๊ฐ ์ ์ดํดํ๊ณ ์๊ณ , ํ๋๋ผ๋ ๋ ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ง ์๋ค๋ฉด ์คํ๋ง ๊ฒ์ ๋๋ฉ์ธ์์ ์ฌ์ฉํด๋, ๊ทธ ์ฝ๋๋ฅผ ๋ชจ๋๊ฐ ์ ์ดํดํ๊ณ ๋๋ฉ์ธ ๊ฐ๋ ์ ์ ํํํ๋ค๊ณ ์๊ฐํ ์ ์์ ๊ฒ๋๋ค. ๋ฐ๋๋ก ๋๋ฉ์ธ ๊ด์ ์์ ๋จผ์ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํด์ ๋ฃ๊ณ , ๋์ค์ ์คํ๋ง ์ํ๋ฆฌํฐ ์ด๋ํฐ๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํด๋ ์๋ฌด ๋ฌธ์ ๋ ์๊ฒ ์ฃ . PasswordEncoder๊ฐ ๋๋ฉ์ธ ์ฝ๋๋ก ์ง์ ํํ๋์ด ์์ผ๋ฉด, ์ ์ด๋ฐ ๊ฐ๋ ์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค๋ฃจ๋ ๊ฒ์ด๊ตฌ๋๋ผ๋ ๊ธฐ์ ์ฌ์ฉ์ ๊ดํ ๋๋ฉ์ธ ๋ก์ง์ ์ ์ดํดํ ์๋ ์์ ๊ฒ๋๋ค. ์์ง ์คํ๋ง ์ํ๋ฆฌํฐ์ ์น์ํ์ง ์์ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ค์ด ๋ง๋ค๋ฉด ์ด๋ ๊ฒ ํด๋ ๊ด์ฐฎ์ ๋ณด์ด๋ค์. ์ ๋ ๋ ๋ค ์ ์ ํ๊ณ , ๋ณ ์ฐจ์ด๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๊ฐ ํผ์ ๊ฐ๋ฐํ๋ค๋ฉด ์คํ๋ง ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ ธ๋ค ์ธ ๊ฒ๋๋ค. ๊ทธ๋ฌ๋ค ํน์ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ ์ฐ๊ฒ ๋๋๋ผ๋, ๊ทธ ์ธํฐํ์ด์ค ํด๋์ค ํ๋๋ง ๋นผ์ ํ๋ก์ ํธ์ ๋จ๊ฒจ๋๊ณ ์จ๋ ๋๊ฒ ์ฃ . ์๋๋ฉด ์์ฃผ ์์ ์ํ๋ฆฌํฐ ์ฝ์ด jar ํ์ผ ํ๋๋ฅผ ๋ค์ผ๋ก ๋ฃ์ด์ ์ฐ๋์ง์.
- 0
- 2
- 78
Q&A
MemberService์ EmailSender ์ฑ ์ ๋ถ๋ฆฌ์ ๋ํ ์ง๋ฌธ
์๋ ํ์ธ์. ์ข์ ์ง๋ฌธ์ ํด์ฃผ์ จ๋ค์. ํด๋ฆฐ ์คํ๋ง ๊ฐ์ ์๋ฆฌ์ฆ๋ ๋ง์ํด์ฃผ์ ๊ทธ๋ฐ ์๋ฌธ์ ๊ฐ์ง๊ณ ๋ฌธ์ ๋ฅผ ํ์ด๊ฐ๋ ๊ณผ์ ์ ๋ณด์ฌ๋๋ฆฌ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค. ์ผ๋จ ์์ ๋จ๊ณ์์๋ ์ฐ์ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๊ตฌํํ๊ณ , ํ ์คํธ๋ฅผ ๋ง๋ ๋ค์ ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ๋ถํฐ ์์ํด์ ๋ฌธ์ ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ํ์ด๋๊ฐ๋ ๊ณผ์ ์ ์๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ๋งค๋ฒ ์ด๋ค ์๋ฌธ์ ๊ฐ์ง๊ณ ์ด๋ค ์๋๋ฅผ ํ๋์ง๊ฐ ์ค์ํฉ๋๋ค. ๊ฐ์ ํ๋ฉด ํ์ ์ด๋ฉ์ผ์ ๋ณด๋ด๋ ๊ฒ์ ์์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋๋ฉ์ธ ๋ชจ๋ธ์์ ๋ฐ๊ฒฌํ ์ ์๋ ๊ธฐ๋ฅ์ด์ง๋ง, ์๋น์ค๊ฐ ์ฑ์ฅํ๋ค๋ณด๋ฉด ๊ฝค ๋ง์ ๋ณํ๊ฐ ํ์ํ๊ฒ ๋ฉ๋๋ค. ๋ฉ์ผ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ์์ฃผ ๋จ์ํ ๋ณํ์ ๋๋ค. ๊ทธ๋ณด๋ค ๋ ๋ณต์กํ ์กฐ๊ฑด์ด ๋ถ์ ์๋ ์์ฃ . ์ด๋ฒคํธ์ ์ํด์ ๊ฐ์ ์ด ๋์ ๊ฒฝ์ฐ ๋ฉ์ผ ๋ด์ฉ์ด ์์ ํ ๋ค๋ฅด๊ฒ ๋๊ฐ ์๋ ์์ฃ . ๊ฐ์ ์ ํ์ง๋ง ๋ฉ์ผ์ด ์๋ ์ฌ์ ์ธ์ฆ๋ ๋ฉ์ ์ ๋ก ์ถํ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์๋ ์์ต๋๋ค. ๊ธ๋ก๋ฒ ์๋น์ค๊ฐ ๋ผ์ ์ฌ๋ฌ ์ธ์ด๋ก ๋ค๋ฅด๊ฒ ๋ฉ์ผ์ด ์์ฑ๋์ผ ํ ์๋ ์๊ณ , ์ต์ข ๋ฉ์ผ ๋ฐ์ก์ ์๊ฐ์ ๋๊ณ ๋ฐฐ์น๋ก ์ฒ๋ฆฌํ๊ฑฐ๋, ์ผ์ ์น์ธ ๊ณผ์ ์ ํตํด์ ๋๊ฐ์ผ ํ ์๋ ์์ต๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด ํ์ ๊ฐ์ ์งํ์ ์งํ๋์ด์ผ ํ ์์ ์ด ์ด๋ณด๋ค ํจ์ฌ ๋ง์์ง๊ฒ ๋ฉ๋๋ค. ๊ฐ์ข ์๋ฃ ์ ๋ฐ์ดํธ๋ถํฐ, ํฌ์ธํธ ์ ๋ฆฝ์ ์ํ ๊ธฐ์ด ์์ ์งํ, ๋ชจ๋ํฐ๋ง์ ์ํ ํต๋ณด ๊ธฐ๋ฅ ๋ฑ๋ฑ. ์ด๋ ๊ฒ ๋๋ฉด ๋ ํฐ ๋ฌธ์ ๋ ํ์ ๊ฐ์ ๋ก์ง๋ณด๋ค ํ์ฒ๋ฆฌ ์์ ์ด ์ปค์ง๊ณ , ์ด๊ฒ ๋ ์๊ฐ์ ๋ง์ด ์ก์๋จน์ต๋๋ค. ๋ฉ์ผ ๋ฐ์ก๋ ๊ฝค๋ ์๊ฐ ๊ฑธ๋ฆฌ๋ ์์ ์ด๊ฑฐ๋ ์. ๊ทธ๋ฌ๋ ๋์ DB ํธ๋์ญ์ ์ ๋ฌถ์ฌ์์ด์ ๊ฐ์ ์ด ๊ฐ์๊ธฐ ํญ์ฆํ๋ ๊ฒฝ์ฐ ์ฑ๋ฅ์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ทธ๋์ ํธ๋์ญ์ ๋ฐ์ผ๋ก ์ด๊ฑธ ๋ถ๋ฆฌํ๋ ์์ ๋ ํ์ํ์ฃ .์ค์ํ ๊ฑด ํ์ฌ ์์ ์์ "๊ฒฝ์ ์ "์ผ๋ก ํ ์ ์๋ ๋น ๋ฅธ ์์ ์ ํด๋๊ณ , ์ดํ ๋ถ๋ฆฌ, ์ถ์ํ ๋ฑ์ ํฌ์ํ ํ์ด๋ฐ์ ์ฐพ๋ ๊ฒ์ด์ฃ . ์ด์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฒ์ ๋ง๋ค์๋๋ฐ ์ผ ๊ฐ์ ์ 10๋ง๋ช ์ ์์ ํด์ ๋ฌด๋ฆฌํด์ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ ํ์๋ ์์ผ๋๊น์. ์ฐ์ ์ ๊ฐ์ ์ถํ ๋ฉ์ผ์ ๋ณด๋ด๋ ์ฝ๋๊ฐ ํ์ ๊ฐ์ ์ ํต์ฌ ๋๋ฉ์ธ ๋ก์ง์์ ๋ถ๋ฆฌํด๋๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๊ฐ์ ์๋ฆฌ์ฆ ๋ ๋ฒ์งธ๊ฐ ๋๋ฉด ์ด๋ฅผ ์ด๋ป๊ฒ ๋ ๋ฆฝ์ ์ผ๋ก ๋ง๋ค์ง ๊ตฌ์ฒด์ ์ผ๋ก ๋ค๋ฃจ๊ฒ ๋ ๊ฒ๋๋ค.์ด์จ๋ ์ข์ ๋ฌธ์ ์์์ ๊ฐ์ง๊ณ ์ง์ ์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ธ๋ถ ์ฐ๋ ์๋น์ค์ธ๋ฐ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ด์ฉ์ด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ๊ณ , ํ ํ๋ฆฟ์ ๊ด๋ฆฌํด์ผ ํ๊ณ , ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ํ์ธํด์ ์ฌ์๋ ํด์ผ ํ๋ ๊ฐ์ ์ถํ ๋ฉ์ผ ๋ฐ์ก์ด๋ผ๋ฉด ์ด๊ฑธ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋ฉด ์ข์์ง ๊ณ ๋ฏผํด๋ณด์๊ณ , ์ฌ๋ฌ๊ฐ์ง ์๋๋ฅผ ํด๋ณด์ธ์.
- 0
- 2
- 86
Q&A
NonNullApi๋ฅผ NullMarked๋ก ๋์ฒดํ๋ผ๊ณ ํฉ๋๋ค.
์๋ ํ์ธ์.๋ง์ํ์ ๊ฒ์ฒ๋ผ ์คํ๋ง 7๋ถํฐ๋ null ์ฒดํฌ์ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.๊ฐ์์์๋ ๋น์ ์คํ๋ง 6๊น์ง ์ฌ์ฉํ๋ ์คํ๋ง ์์ฒด ์ ๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ 7์์๋ ๊ธฐ์กด ์คํ๋ง ์์ฒด ์ ๋ ธํ ์ด์ ์ deprecated๋ก ๋ฐ๊พธ๊ณ , JSpecify๋ผ๋ ์ฌ๋ฌ ๋ฒค๋์ ํ๋ก์ ํธ์์ ์ ๊ทน ์ฑ์ฉํ๊ณ ์๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ ์ฑ ์ ๋ณ๊ฒฝํ์ต๋๋ค. ์ฌ๋ฌ ๋๊ตฌ์ ๋ฒค๋๋ค์ด ์์ฉํ JSpecify๊ฐ ๊ฐ์ง๋ ์ฌ๋ฌ ์ฅ์ ์ ์์ฉํ๊ณ , ํนํ Kotlin๊ณผ ๊ฒฝ๊ณ์์ null ์์ ์ฑ์ ๋ํญ ๊ฐ์ ํ๊ฒ ๋์์ต๋๋ค.ํด๋ฆฐ ์คํ๋ง์ ๋ ๋ฒ์งธ ์ฃผ์ ๋ฅผ ๋ค๋ฃฐ ๋ ์คํ๋ง 7๋ก ์ ๋ฐ์ดํธ ํ ๊ณํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค(์ฒซ๋ฒ์งธ ๊ฐ์์ Part 2๊น์ง๋ ์คํ๋ง 6๋ฅผ ์ฌ์ฉํฉ๋๋ค). ๊ทธ๋ null์ ๋ค๋ฃจ๋ ์๋ก์ด ๋ฐฉ๋ฒ๋ ์ ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
- 0
- 2
- 104
Q&A
ํฅ์ฌ๊ณ ๋ part2 ๊ฐ์ ์ถ์ ์์ ์ผ ๋ฌธ์ ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์.์ฃ์กํ๊ฒ๋ ๊ณ์ Part 2 ์ถ์ ์ผ์ ์ด ๋ฏธ๋ค์ง๊ณ ์์์ต๋๋ค. ์ ๊ฑด๊ฐ ์ํ๊ฐ ๋ง์ด ์ ์ข์์, ๋ นํํ๊ธฐ๊ฐ ํ๋ค์๋๋ฐ์. ์ข ๋ ํ์ ๋ด์ ์ต๋ํ ๋นจ๋ฆฌ ๋ง๋ฌด๋ฆฌํด๋ณด๋ ค๊ณ ํ๊ณ ์์ต๋๋ค. ์ด๋ฒ์ ๊ผญ 2์๊น์ง๋ ๋ง๋ฌด๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
- 0
- 2
- 213
Q&A
Repository Adapter ์ค๊ณ์ ๋ํด ํผ๋๋ฐฑ์ ๋ถํ๋๋ฆฝ๋๋ค
์๋ ํ์ธ์.์ง๊ธ ์ ๊ทผํ์๋ ๋ฐฉ๋ฒ์ด ์ด๋ํฐ๋ฅผ ์ฌ์ฉํด์ ๊ตฌํ ๋ถ๋ถ์ ๋ถ๋ฆฌํ๊ธฐ์ ์ ์ ํ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๋ ๊ฒ ๊ธฐ์ ์ ๋ณํฉํด์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฆฌํฌ์งํ ๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ์ ๋ํฐ๋ฅผ ๋ฐ๋ก ๋ง๋์๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ค ์ ์์ต๋๋ค. ๋ค๋ง, Spring Data JPA๋ฅผ ์ฌ์ฉํ์ ๋์ ์ฅ์ ์ ๋์น ์๋ ์๊ฒ ์ฃ .๊ทธ๋ฐ๋ฐ ์ ๋ผ๋ฉด ์ด๋ ๊ฒ ํด๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ ๊ธฐ๋ณธ Spring Data JPA Repository๋ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. ๋ณต์กํ ๋์ ์ฟผ๋ฆฌ๋ ๋ค์ดํฐ๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ Spring Data์์ ๋ง๋ค์ด์ฃผ๋ JPQL๋ก๋ ์ถฉ๋ถํ ๊ฒฝ์ฐ๋ ๊ทธ ์ธํฐํ์ด์ค์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฒ๋ฆฌํฉ๋๋ค.๊ทธ๋ฌ๋ฉด์ ๋์์ CustomRepository ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐ๋ก ๋ง๋ญ๋๋ค. ์ด๊ฑด Spring Data JPA ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๊ตฌํ ํด๋์ค๋ฅผ ๋ฐ๋ก ๊ตฌํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ ๊ฒฐํฉํด์ ์ต์ข ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์ฃ . Repository Composition ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.์ด๋ ๊ฒ ํ๋ฉด QueryDSL์ด๋ ํน์ MyBatis ๋ฑ์ ๊ตฌํ ์ฝ๋๊ฐ ํ์ํ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํธํ๊ฒ ์กฐํฉํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Jpa Repository๊น์ง ๊ตณ์ด ์ด๋ํฐ๋ฅผ ํ์ธ ํ์๋ ์์ฃ .๋ค์ ๋ด์ฉ์ ์ฐธ๊ณ ํด๋ณด์ธ์.https://docs.spring.io/spring-data/jpa/reference/repositories/custom-implementations.html
- 0
- 2
- 97
Q&A
39. ๋ฌธ์์ ์ฝ๋ ๋ค๋ฌ๊ธฐ updateInfo ํ ์คํธ ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์. ๋ง์ํ์ ๋๋ก unique ์ ์ฝ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ NULL ๊ฐ์ ์๊ด์์ง๋ง ๋น ๋ฌธ์์ด์ ์ค๋ณต ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค. ๊ฐ์ ๋๋ ๊ทธ ๋ถ๋ถ์ ์ฒดํฌ ๋ชปํ๋ค์. ์ด์ ์ ๊ฐ์ ์ง๋ฌธ์ ์ฃผ์ ๋ถ์ด ๊ณ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ด์ผ๊ธฐํ์ต๋๋ค. ๋น ๋ฌธ์์ด๋ก ์ธํ ํ๋๋ผ๋, ๊ฐ์ NULL๋ก ๋ฑ๋ก๋๋๋ก ์กฐ์ ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ํด๋น ์ง๋ฌธ์ ๋ค์ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค.
- 0
- 2
- 66
Q&A
์์ ์ ์ ๋ฃ๊ณ ์์ต๋๋ค.
์๋ ํ์ธ์. ๋ ธ์ ์ผ๋ก ์์ฑํ ๋ฌธ์๋ ๊ฐ์์๋ฃ์ pdf๋ก ๋ฃ์ด๋์ต๋๋ค. ๊ฐ์์๋ฃ์์ ๋ค์ด ๋ฐ์ผ์ค ์ ์์ต๋๋ค.
- 0
- 2
- 96
Q&A
PT ๋ฌธ์์ฌํญ
์๋ ํ์ธ์. ์ ๊ฐ ์ฌ์ฉํ ๋๊ตฌ๋ ์ ํ ํค๋ ธํธ(Apple Keynote)์ ๋๋ค.
- 0
- 1
- 90




