๐๐จ๐ง๐ญ๐๐๐ญ
Email. wldsmtldsm65@gmail.com
๐๐ก๐๐ง๐ง๐๐ฅ
๐๐๐ฎ๐๐๐ญ๐ข๐จ๐ง
University (16.02 ~ 21.08)
ํ์๋ํ๊ต ์๋ฆฌ์นด ์บ ํผ์ค ํํ๋ถ์๊ณตํ๊ณผ ์กธ์
MultiCampus ์น๊ฐ๋ฐ๊ณผ์ (22.11 ~ 23.04)
๐๐ ๐๐๐๐๐
Skill/Tool
Search
๐๐ญ๐๐ซ๐ซ๐๐ ๐๐จ๐ฉ๐ข๐๐ฌ
Starred Topics
Search
๐๐ข๐ญ๐๐ฎ๐
๐๐จ๐ฆ๐ฆ๐ข๐ญ
โฆ ์ค์ํ๊ฑด ๊บพ์ด์ง ์๋ ๋ง์ โ โฌโฌ โฆ
๐ ๐ซ๐๐ฆ๐๐ฐ๐จ๐ซ๐ค
๐๐ซ๐จ๐ฃ๐๐๐ญ
๐๐ก๐๐ญ ๐ ๐๐๐๐ซ๐ง๐๐
โข
๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๊ธฐ๋ก์ ๋ด์ ํ์ด์ง๋ค ์
๋๋ค.
โข
๊ตฌ๋ถ์ด ํธํ๊ฒ ์นดํ
๊ณ ๋ฆฌ๋ก ๋๋ด์ต๋๋ค.
โข
์ฒ์ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์์ํ๋๊ฑฐ๋ผ ์ค๊ฐ๋
์ด ์์ ์ ์์ต๋๋ค.(๊ฐ์ํ๊ณ ๋ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.)
1. Indify.com 2. Notion-widgets.com 3. Notion2charts.com 4. Getkairo.com 5. Widgetbox.app 6. Widgets.so 7. Studywithme.io 8. Blog.shorouk.dev 9. Blocs.me 10. Notioncovers.com 11. Notionsparkles.com 12. Pomofocus.io
๐๐๐๐๐๐๐
๐๐๐๐๐๐๐ ๐๐๐๐๐๐๐๐๐ ๐๐๐๐๐๐๐
getLoginUser() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ LazyInitializationException์ด ๋ฐ์ํ์ง๋ง getLoginUserForLazy()๊ฐ ์๋ ๋ฌธ์ ๋ Hibernate๊ฐ ์ํฐํฐ์ ์ง์ฐ ๋ก๋ฉ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฌํ ์ํฐํฐ๊ฐ ์ฌ์ฉ๋๋ ์ปจํ
์คํธ์ ๊ด๋ จ์ด ์์ต๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ถ์ํด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. Hibernate์์์ ์ง์ฐ ๋ก๋ฉ ์ดํดํ๊ธฐ
Hibernate์์ ์ง์ฐ ๋ก๋ฉ์ ์ํฐํฐ ๋๋ ์ํฐํฐ ์ปฌ๋ ์
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฆ์ ๋ก๋๋์ง ์๊ณ ์ฒ์ ์ก์ธ์ค๋ ๋ ์์ฒญ ์ ๋ก๋๋๋ ์ ๋ต์
๋๋ค. ์ด๋ ํนํ ๋๊ท๋ชจ ์ปฌ๋ ์
์ด๋ ๋ณต์กํ ๊ฐ์ฒด ๊ทธ๋ํ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ถํ์ํ ๋ฐ์ดํฐ ๋ก๋๋ฅผ ๋ฐฉ์งํ๋ฏ๋ก ํจ์จ์ ์
๋๋ค.
2. Hibernate ์ธ์
์ ์ญํ
Hibernate ์ธ์
์ ๋ณธ์ง์ ์ผ๋ก ์ํฐํฐ๊ฐ ์ ์ฅ๋๊ณ ๊ด๋ฆฌ๋๋ ์ปจํ
์คํธ ๋๋ ๋ฒํผ์
๋๋ค. ์ธ์
์ด ๋ซํ๋ฉด ํด๋น ์ธ์
๋ด์์ ์ด๊ธฐํ(๋ก๋)๋์ง ์์ ์ํฐํฐ์ ์ง์ฐ ๋ก๋ ์์ฑ์ ์ก์ธ์คํ๋ ค๊ณ ํ๋ฉด LazyInitializationException์ด ๋ฐ์ํฉ๋๋ค.
3. Spring Security์ ์ธ์ฆ ์ฃผ์ฒด
getLoginUser() ๋ฉ์๋์์๋ Spring Security์ SecurityContextHolder์์ ์ธ์ฆ๋ ์ฌ์ฉ์๋ฅผ ๊ฒ์ํฉ๋๋ค. Spring Security๋ ์ผ๋ฐ์ ์ผ๋ก ์ธ์ฆ์ด ์ฑ๊ณตํ ๋ ๋ณด์ ์ปจํ
์คํธ์ ์ฃผ์ฒด(์ข
์ข
UserDetails ๋๋ ์ ์ฌํ ์ฌ์ฉ์ ์ํฐํฐ์ ์ธ์คํด์ค)๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด ์ฌ์ฉ์ ๊ฐ์ฒด๋ ํ์ฌ ๋ซํ ์๋ ๋ค๋ฅธ Hibernate ์ธ์
์์ ๊ฒ์๋์์ ์ ์์ต๋๋ค.
4. LazyInitializationException์ด ๋ฐ์ํ๋ ์ด์
getLoginUser()์์ ๋ฐํ๋ User ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ํด๋น ๊ฐ์ฒด์ ์ผ๋ถ๊ฐ ์ง์ฐ ๋ก๋๋์ด ์๋ ์ธ์
(์ธ์ฆ ์ค) ์ค์ ์ด๊ธฐํ๋์ง ์์ ๊ฒฝ์ฐ ํด๋น ์ธ์
์ธ๋ถ์์ ํด๋น ๊ฐ์ฒด์ ์ก์ธ์คํ๋ฉด LazyInitializationException์ด ๋ฐ์ํฉ๋๋ค.
์ด๋ User ์ํฐํฐ์ ์ง์ฐ ๋ก๋ ์์ฑ์ด ์๋ Hibernate ์ธ์
(๋ก๋๋ ์์น)์ด ๋ซํ ํ์ ๋ก๋ํ๋ ค๊ณ ์๋ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
5. getLoginUserForLazy()๋ฅผ ์ฌ์ฉํ ์๋ฃจ์
getLoginUserForLazy() ๋ฉ์๋๋ userRepository.findById(id).get()์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ User ์ํฐํฐ๋ฅผ ๋ค์ ๊ฐ์ ธ์์ ์ด ๋ฌธ์ ๋ฅผ ํํผํฉ๋๋ค.
์ด๋ ํ์ฑ Hibernate ์ธ์
๋ด์์ User ์ํฐํฐ๊ฐ ๊ฒ์๋๊ณ ์ง์ฐ ๋ก๋๋ ์์ฑ์ด ์ด ์ปจํ
์คํธ ๋ด์์ ์์ ํ๊ฒ ์ก์ธ์ค๋ ์ ์์์ ๋ณด์ฅํฉ๋๋ค.
์์ฝ
์์ฝํ์๋ฉด, getLoginUser()๋ ์ด์ Hibernate ์ธ์
(์ง๊ธ์ ๋ซํ ์์)์ ๋ก๋๋ User ๊ฐ์ฒด๋ฅผ ๊ฒ์ํ์ฌ ์ด๊ธฐํ๋์ง ์์ ์ง์ฐ ๋ก๋ ์์ฑ์ ์ก์ธ์คํ ๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํต๋๋ค. ๋ฐ๋ฉด, getLoginUserForLazy()๋ LazyInitializationException์ ๋ฐฉ์งํ๋ฉด์ ํ์ฌ ํ์ฑ Hibernate ์ธ์
๋ด์์ ์ฌ์ฉ์๋ฅผ ์๋ก ๊ฐ์ ธ์ต๋๋ค.
์ด๋ Spring Security์ ํจ๊ป Hibernate๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ํํ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ฉฐ, getLoginUserForLazy()๋ฅผ ์ฌ์ฉํ ์ ๊ทผ ๋ฐฉ์์ ์ํฐํฐ๊ฐ ํ์ฑ ์ธ์
๋ด์ ๋ก๋๋๋๋ก ํ๋ ์ผ๋ฐ์ ์ธ ์๋ฃจ์
์
๋๋ค.
TypeScript
๋ณต์ฌ
์
๋ฌธ
๋ ๋ฒจ2
Search