Search

๐ƒ๐š๐ฌ๐ก๐๐จ๐š๐ซ๐

๐‚๐จ๐ง๐ญ๐š๐œ๐ญ

Email. wldsmtldsm65@gmail.com

๐‚๐ก๐š๐ง๐ง๐ž๐ฅ

GitHub https://github.com/sieunnnn

๐„๐๐ฎ๐œ๐š๐ญ๐ข๐จ๐ง

University (16.02 ~ 21.08)
ํ•œ์–‘๋Œ€ํ•™๊ต ์—๋ฆฌ์นด ์บ ํผ์Šค ํ™”ํ•™๋ถ„์ž๊ณตํ•™๊ณผ ์กธ์—…
MultiCampus ์›น๊ฐœ๋ฐœ๊ณผ์ • (22.11 ~ 23.04)
์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœ์ž ์ทจ์—…์บ ํ”„ ์ˆ˜๋ฃŒ์ฆ.pdf
1447.4KB
ํ”„๋กœ์ ํŠธ ์ƒ์žฅ.pdf
316.3KB

๐Œ๐˜ ๐’๐“๐€๐‚๐Š

Skill/Tool
Search
์–ธ์–ด
5
ํ”„๋ ˆ์ž„์›Œํฌ
4
DB
1
HTML ํ…œํ”Œ๋ฆฟ ์—”์ง„
1
ํ”„๋กœํ† ์ฝœ
1
DevOps
2
ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๋„๊ตฌ
5
๊ธฐํƒ€ ๋„๊ตฌ
3

๐’๐ญ๐š๐ซ๐ซ๐ž๐ ๐“๐จ๐ฉ๐ข๐œ๐ฌ

Starred Topics
Search
DevOps
3
DB
1
์Šคํ”„๋ง
1

๐†๐ข๐ญ๐‡๐ฎ๐›

๐‚๐จ๐ฆ๐ฆ๐ข๐ญ

โ–ฆ ์ค‘์š”ํ•œ๊ฑด ๊บพ์ด์ง€ ์•Š๋Š” ๋งˆ์Œ โ€• โ™ฌโ™ฌ โ–ฆ

๐…๐ซ๐š๐ฆ๐ž๐ฐ๐จ๐ซ๐ค

๐‚๐จ๐๐ข๐ง๐ ๐“๐ž๐ฌ๐ญ

๐๐ซ๐จ๐ฃ๐ž๐œ๐ญ

๐๐ซ๐จ๐ฃ๐ž๐œ๐ญ

๐๐ซ๐จ๐ฃ๐ž๐œ๐ญ

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ
๋ฏธ์™„ ํ”„๋กœ์ ํŠธ

๐–๐ก๐š๐ญ ๐ˆ ๐‹๐ž๐š๐ซ๐ง๐ž๐

โ€ข
๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธฐ๋ก์„ ๋‹ด์€ ํŽ˜์ด์ง€๋“ค ์ž…๋‹ˆ๋‹ค.
โ€ข
๊ตฌ๋ถ„์ด ํŽธํ•˜๊ฒŒ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆด์Šต๋‹ˆ๋‹ค.
โ€ข
์ฒ˜์Œ ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๋Š”๊ฑฐ๋ผ ์˜ค๊ฐœ๋…์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(๊ฐ์•ˆํ•˜๊ณ  ๋ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)

๐‹๐š๐ง๐ ๐ฎ๐š๐ ๐ž

๐‚๐’

๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ

๐ˆ๐ƒ๐„

๐†๐ข๐ญ

๐‘๐Ž๐€๐ƒ๐Œ๐€๐

๐๐€๐‚๐Š๐„๐๐ƒ ๐ƒ๐„๐•๐„๐‹๐Ž๐๐„๐‘ ๐‘๐Ž๐€๐ƒ๐Œ๐€๐

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
๋ณต์‚ฌ
Search
๋‘ ์ˆ˜์˜ ์ฐจ
๋‘ ์ˆ˜์˜ ์ฐจ
Load more