๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ž๋ฐ”44

[๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜] Chapter6. ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ CH 6. ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ 1. ์˜์กด์„ฑ ์—ญ์ „ ์„œ๋น„์Šค๊ฐ€ ์˜์†์„ฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํฌํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ˜ธ์ถœ ์œก๊ฐํ˜• ์•„ํ‚คํ…์ฒ˜์—์„œ ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ๋Š” ์ฃผ๋กœ ์•„์›ƒ๊ณ ์ž‰ ์–ด๋Œ‘ํ„ฐ => ์•ฑ์—์„œ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ํฌํŠธ๋Š” ์•ฑ๊ณผ ์˜์†์„ฑ ์‚ฌ์ด์˜ ๊ฐ„์ ‘์  ๊ณ„์ธต ์˜์†์„ฑ ๋ฌธ์ œ์— ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ๋„๋ฉ”์ธ ์ฝ”๋“œ ๊ฐœ๋ฐœ ๋ชฉ์  ์˜์†์„ฑ ๊ณ„์ธต์— ์ฝ”๋“œ ์˜์กด์„ฑ์„ ์—†์•ฐ ์ด๋Ÿด ๊ฒฝ์šฐ, ์˜์†์„ฑ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ ์ฝ”์–ด ์ฝ”๋“œ์— ์˜ํ–ฅ์ด ์—†์Œ ๋Ÿฐํƒ€์ž„์—๋„ ์—ฌ์ „ํžˆ ์•ฑ์ด ์˜์†์„ฑ ์ฝ”๋“œ์— ์˜์กดํ•˜๊ณ  ์žˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์•ฝ์„ ๋งŒ์กฑํ•˜๋Š” ํ•œ ์˜์†์„ฑ ์ฝ”๋“œ ์ˆ˜์ •์€ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. 2. ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ์˜ ์ฑ…์ž„ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ฃผ๋กœ ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ, DB ์—ฐ์‚ฐ ์ „์šฉ ๊ฐ์ฒด ์ž…๋ ฅ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๋งท์œผ๋กœ ๋งคํ•‘ํ•œ๋‹ค. JPA Entity ๊ฐ์ฒด ๋งคํ•‘ JPA๋ฅผ ์ œ์™ธํ•œ ๊ธฐ์ˆ ๋„ ๊ณ ๋ ค .. 2022. 10. 31.
[๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜] Chapter5. ์›น ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ CH.5 ์›น ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ 1. ์˜์กด์„ฑ ์—ญ์ „ Web Adaptor = Incomming Adaptor ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์š”์ฒญ ๋ฐ›์Œ => ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”์–ด ํ˜ธ์ถœ => ๋ฌด์Šจ ์ผ์„ ํ•ด์•ผํ• ์ง€ ์•Œ๋ ค์คŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์€ ์›น ์–ด๋Œ‘ํ„ฐ๊ฐ€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํฌํŠธ๋ฅผ ์ œ๊ณต ์„œ๋น„์Šค๋Š” ํฌํŠธ ๊ตฌํ˜„ & ์›น ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ด ํฌํŠธ๋ฅผ ํ˜ธ์ถœ ์ œ์–ด ํ๋ฆ„ ์™ผ์ชฝ => ์˜ค๋ฅธ์ชฝ ์›น ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ„์ ‘ ๊ณ„์ธต์„ ๋„ฃ์Œ ํฌํŠธ (๊ฐ„์ ‘ ๊ณ„์ธต)๋Š” ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์— ๋Œ€ํ•œ ๋ช…์„ธ์„œ ์–ด๋–ค ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Œ. Outgoing Port ์ด ํฌํŠธ๋Š” ์›น ์–ด๋Œ‘ํ„ฐ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”์–ด์—์„œ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. ์›น ์–ด๋Œ‘ํ„ฐ๋Š” ์ธ์ปค๋ฐ & ์•„์›ƒ๊ณ ์ž‰ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. 2. ์›น ์–ด๋Œ‘ํ„ฐ์˜ ์ฑ…์ž„ ๊ฑฐ์‹œ์  ๊ด€์  HTTP ์š”์ฒญ.. 2022. 10. 30.
์Šคํ„ฐ๋”” ๊ฒฐ์„ฑ ๊ฐ™์€ ๊ธธ์„ ๊ฐ€๊ณ  ์žˆ๋Š” ๊ณ ๋“ฑํ•™๊ต ๋™์ฐฝ๊ณผ ๊ทธ ํ›„๋ฐฐ์™€ ์ œ๊ฐ€ ๋ญ‰์ณ์„œ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. โ€‹ ์ง€๊ธˆ์€ ์ทจ์—…์ด ์ตœ์šฐ์„ ์ธ์ง€๋ผ โ€‹ ์ œ๊ฐ€ ์ง€๊ธˆ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ค€๋น„ (์•Œ๊ณ ๋ฆฌ์ฆ˜) ์ž์†Œ์„œ์™€ ํฌํŠธํด๋ฆฌ์˜ค ์ˆ˜์ • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๋ฐฐํฌ ์ค€๋น„ ๋ฉด์ ‘ ์งˆ๋ฌธ ์šฉ CS ๊ณต๋ถ€ ๋ฐ ๊นƒํ—™ ์ •๋ฆฌ โ€‹ ์ด ์™ธ์—๋„ ์„ ํƒ์„ ๋” ํ•  ์ˆ˜ ์žˆ์„๊ฒŒ ์—†์„๊นŒํ•˜๋‹ค๊ฐ€ ์‹œ๊ฐ„์„ ๋บ๊ธฐ์ง€ ์•Š๊ณ  ๋” ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์„ ์œ ์šฉํ•œ ์ฑ…๋“ค์„ ์งฌ์งฌํžˆ ๋ณด๊ธฐ๋กœ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ํ˜ผ์ž ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ™์ด ์ฝ์–ด ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ๊ฐ์ž ๋Š๋‚€ ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ ์˜๊ฒฌ ๊ณต์œ  ๋ฐฉ์‹์œผ๋กœ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๋” ํšจ์œจ์ ์ด๋ž€ ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. โ€‹ ๊ณ ๋“ฑํ•™๊ต ์นœ๊ตฌ ์ค‘์— ์—ด์‹ฌํžˆ ํ•˜๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ๊ธธ๋ž˜ ์Šคํ„ฐ๋”” ์ œ์•ˆ์„ ํ–ˆ๊ณ , ์–ด์ œ ์Šคํ„ฐ๋”” ๊ด€๋ จ ๊ตฌ์ฒด์ ์ธ ์ผ์ •์„ ์žก์œผ๋ฉฐ ๊นƒํ—™ Orga.. 2022. 10. 30.
[๊ฐ์ƒ๋ฌธ] Effective Java๋ฅผ ์ฝ๊ณ  ๋‚˜์„œ ์ฑ…์„ ์ฝ์€ ์ด์œ  ์ž๋ฐ” ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ํ•œ๋ฒˆ ์ฏค ๋„์ „ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ์ฑ… ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”๋‹ค. ์›Œ๋‚™ ์–ด๋ ต๊ธฐ๋กœ๋„ ์†Œ๋ฌธ์ด ๋‚ฌ๊ณ , ๊ทธ ๋งŒํผ ์ž๋ฐ”์˜ ์ •์ˆ˜๋ผ๊ณ  ๋ถˆ๋ฆฌ์šฐ๊ธธ๋ž˜ ์ž๋ฐ” ์„œ์  ์ค‘ ๊ฐ€์žฅ ๊ฐ€์น˜๊ฐ€ ๋†’๊ฒŒ ๋Š๊ปด์กŒ์—ˆ๋‹ค. โ€‹ ๋ฐฑ์—”๋“œ ์ฑŒ๋ฆฐ์ง€ ๊ต์œก์„ ๋“ค์œผ๋ฉฐ ๋ฉ˜ํ† ๋‹˜์ด ์ˆ˜ ๋งŽ์€ ๊ต์œก ์˜์ƒ๊ณผ ์ฑ…๋“ค์„ ์ถ”์ฒœํ•ด์ฃผ์…จ๋Š”๋ฐ, ๊ทธ ์ค‘์— ์–ธ์–ด ์‹ค๋ ฅ์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ์ฒ™๋„๊ฐ€ ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”๋ผ๊ณ  ํ•˜์…จ๋‹ค. ์ฑ… ์ฝ์„ ์‹œ๊ฐ„ ์—†๋‹ค๋Š” ํ•‘๊ณ„๋กœ ๋ฏธ๋ฃจ๊ณ  ๋ฏธ๋ฃจ๋‹ค๊ฐ€ ๋ฐ”๋กœ ์ง€๋ฅด๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค. โ€‹ ์ƒˆ ์ฑ…์„ ์‚ฌ๊ธฐ์—๋Š” ๊ฐ€๊ฒฉ์ด ๋ถ€๋‹ด์Šค๋Ÿฝ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ ๊ธฐํšŒ์— ๋‹น๊ทผ ๋งˆ์ผ“์„ ์ด์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๊ฐ€๊นŒ์šด ๋™๋„ค์— ํŒ๋งค์ž ๋ถ„์ด ๊ณ„์…”์„œ ๋น„๋ฐ”๋žŒ์„ ๊ฐ€๋ฅด๋ฉฐ ๊ฑฐ๋ž˜ ์žฅ์†Œ๋กœ ๊ฐ”๋‹ค. ๋„ค๊ณ ๊นŒ์ง€ ํ•ด์ฃผ์‹œ๊ณ  ๊ฐœ๋ฐœ์ž ์ทจ์ค€ ์‘์›๊นŒ์ง€ ํ•ด์ฃผ์…”์„œ ๋‚˜์˜ ์ฒซ ๋‹น๊ทผ ๊ฑฐ๋ž˜์— ๋งค์šฐ ๋”ฐ์Šคํ•จ์„ ๋Š๊ผˆ๊ณ , ์Šคํƒ€ํŠธ๊ฐ€ ์ข‹์„.. 2022. 10. 26.
๊ฐ์ฒด ๊ฐ„ ๋งคํ•‘์„ ์œ„ํ•œ MapStruct ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ Dto Entity๋ฅผ ๋งคํ•‘ํ•  ๋•Œ model mapper ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฆฌํ”Œ๋ ‰์…˜์„ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์„ฑ๋Šฅ ์ƒ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋งŽ์ด๋“ค ์ถ”์ฒœํ•˜๋Š” Map Struct๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ์ ์šฉํ•˜๋ฉด์„œ ์ž์ž˜ํ•œ ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ๊ฒช์€ ๋ฌธ์ œ์ ๋“ค์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค. https://mapstruct.org/documentation/dev/reference/html/ MapStruct 1.5.2.Final Reference Guide If set to true, MapStruct in which MapStruct logs its major decisions. Note, at the moment of writing in Maven, al.. 2022. 8. 29.
Spring Security [2] - ์˜ˆ์™ธ ์ฒ˜๋ฆฌ AuthenticationEntryPoint & AccessDeniedHandler ์„œํ๋ฆฌํ‹ฐ๋ฅผ ๋„์ž…ํ•˜๋ฉฐ ์ธ์ฆ, ์ธ๊ฐ€์˜ ๊ณผ์ •์„ ๋งˆ์ณค๋‹ค. ์ด์ œ ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ์ž‘์—…์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์— ๋Œ€ํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ํ•œ ๊ฐ€์ง€ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์Šคํ”„๋ง ์„œํ๋ฆฌํ‹ฐ๋Š” ํ•„ํ„ฐ์— ๊ธฐ๋ฐ˜ํ•œ ์ฒด์ด๋‹ ๊ตฌ์กฐ์ด๋ฏ€๋กœ, ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ์š”์ฒญ์ด ๋„๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, @ExceptionHandler๋ฅผ ํ†ตํ•œ ํŽธํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋‹ค. ์ง์ ‘ Try - catch๋กœ ์žก์•„์„œ ์‘๋‹ต์„ ๋‚ด๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ• ๋ฐ–์—” ์—†๋‹ค. ํ•˜์ง€๋งŒ, ์Šคํ”„๋ง ์„œํ๋ฆฌํ‹ฐ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ—ˆ์ˆ ํ•˜์ง„ ์•Š๋‹ค. ์„œํ๋ฆฌํ‹ฐ ํ•„ํ„ฐ ์ฒด์ธ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋งˆ์ง€๋ง‰ ์ฆˆ์Œ์— ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•„ํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” AuthenticationEntryPoint์™€ AccessDeniedHandler๋ฅผ ๊ตฌํ˜„ํ•ด ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๊ณผ์ •์—์„œ ์ผ์–ด๋‚œ ์˜ˆ์™ธ์— ๋Œ€.. 2022. 8. 21.
์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง [1] ์ง€๋‚œ 1์ฃผ์ผ๊ฐ„ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ๋ถ€๋ถ„ ์„ค๊ณ„๋ฅผ ๊ฑฐ์˜ 2, 3์ผ์€ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์•„์ง ์ˆ˜์ •์ด ํ•„์š”ํ•˜๊ฒ ์ง€๋งŒ, ํ•ญ์ƒ ๊ณ ๋ฏผํ•ด๋ณด์ž. ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋Š” multi module๋กœ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ, ์™„๋ฒฝํ•œ ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ ์ด์ง„ ์•Š์•˜๋‹ค. ๋ชจ๋†€๋ฆฌํ‹ฑ์œผ๋กœ ๊ฐˆ์ง€, MSA๋ฅผ ๊ณ ๋ คํ•ด ๋ชจ๋“ˆ๊ฐ„ ๋ถ„๋ฆฌ๋ฅผ ํ• ์ง€๊ฐ€ ๊ณ„์† ๊ณ ๋ฏผ๋œ๋‹ค.. ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ๋ชจ๋“ˆ, ํŒจํ‚ค์ง€๊ฐ„ ์˜์กด์„ฑ ๋ถ„๋ฆฌ๋ฅผ ํ‹ˆํ‹ˆ์ด ๊ณ ๋ คํ•ด๋ด์•ผ๊ฒ ๋‹ค. ๊ธฐ์กด ์ž‘์„ฑ ์ฝ”๋“œ๋ฅผ ์˜ฎ๊ธฐ๋ฉฐ ์กฐ๊ธˆ ๋” ํด๋ฆฐํ•œ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์ฝ”๋“œ๋กœ ๋ฆฌ๋ทฐ์–ด๋‹˜์˜ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์ˆ˜์ •ํ•ด๋‚˜๊ฐ”๋‹ค. ๋งŽ์ด ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๋ถ€๋ถ„์—์„œ๋„ ํ—›์ ์ด ์žˆ์—ˆ๊ณ , ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„๋„ ์•Œ์•„๋‚˜๊ฐ€๋Š” ์ค‘์ด๋‹ค. ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๋ถ€๋ถ„์€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์†์ˆ˜ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ, ์ด๋ฒˆ์—๋Š” Spring Security.. 2022. 8. 3.
๋ฆฌํŒฉํ† ๋ง ๊ณ„ํš ์˜ค๋žœ๋งŒ์— ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์“ด๋‹ค. ์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด AWS ๋ง๊ตฌ์„ฑ์„ ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ฉฐ ๋ฐฐํฌ๊นŒ์ง€ ์‹œ์ผฐ๋‹ค. ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์•ž๋‘๊ณ , ์ข‹์€ ๊ธฐํšŒ๋ฅผ ์–ป์–ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ฒฐ๋ก ์€, ์ด ์ƒํƒœ๋กœ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ์—†์„ ์ •๋„๋กœ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋งŽ์•˜๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ์•„์‰ฌ์šด ์ฝ”๋“œ ์ž‘์„ฑ ๋ถ€๋ถ„๋„ ๋งŽ์•˜๊ณ , ๊ถ๊ธˆ์ฆ๋„ ๋งŽ์•˜์ง€๋งŒ, ๋‚˜๋จธ์ง€ ์ฃผ๊ด€์ ์ธ ํŒ๋‹จํ•˜์— ๊น”๋”ํ•œ ๋ถ€๋ถ„์€ ๋‚˜๋ฆ„ ๊ดœ์ฐฎ๊ฒŒ ์ž‘์„ฑ์„ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ์•„์ง ๊ณ ์น ๊ฒŒ ๋งŽ์•˜๊ณ , ๋ฐฐ์šธ๊ฒŒ ๋งŽ์•˜๊ณ , ๋ชฐ๋ž๋˜ ๊ฒƒ์ด ๋งŽ์€ ๋‚˜์˜€๋‹ค. ์ด๋Ÿฐ ๋ฆฌ๋ทฐ๋ฅผ ๋“ค์„ ๋•Œ๋งˆ๋‹ค ๋‚˜๋Š” ์•„์ง ํ•œ์ฐธ ๋ฉ€์—ˆ๊ตฌ๋‚˜. ๊ณต๋ถ€ ๊ธฐ๊ฐ„ ๋Œ€๋น„ ๋งŽ์€ ์„ฑ์žฅ์„ ๊ฑฐ๋‘์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ์š•์‹ฌ์ด ๋งŽ์€ ๊ฑด์ง€. ์‚ฌ์‹ค์€ ๊ธฐ๊ฐ„ ๋Œ€๋น„ ์„ฑ์žฅ์น˜๊ฐ€ ํ‰๊ท ์น˜์˜€๋˜ ๊ฑด์ง€. ๋ฌด๊ธฐ ํ•ด์ง„๋‹ค. ๋„ˆ๋ฌด ๊ธ‰ํ•œ๊ฐ€? ๊ทธ๋Ÿผ์—๋„.. 2022. 7. 28.
2022.06.22 ใ€ŒLv.2 N-Queenใ€ ์ด๋ฒˆ ์ฃผ๋Š” ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต์— ๋” ๋ฐ•์ฐจ๋ฅผ ๊ฐ€ํ•ด๋ณผ ๊ณ„ํš์„ ์งฐ๋‹ค. ๋‹ค์Œ ์ฃผ์— ๋ชจ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณผ ๊ณ„ํš์ด๋ฏ€๋กœ ๋น„์ค‘์„ ์ข€ ๋” ๋‘ฌ๋ด์•ผ๊ฒ ๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ์— ์ž๋ฃŒ๊ตฌ์กฐ ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ•ด๋ณผ ๊ณ„ํš๋„ ๊ตฌ์ƒํ–ˆ๋‹ค. https://programmers.co.kr/learn/courses/30/lessons/12952 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - N-Queen ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ€ธ์„ ๋ฐฐ์น˜ํ•˜๋ฉด n๊ฐœ์˜ ํ€ธ์€ programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ.. 2022. 6. 22.
2022.06.14 ใ€ŒLv.2 ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•ใ€ ๋ฌธ์ œ ์„ค๋ช… ๊ฐ€๋กœ๊ธธ์ด๊ฐ€ Wcm, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ Hcm์ธ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์ด์—๋Š” ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์„ ์ด ๊ทธ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ๊ฒฉ์ž ์นธ์€ 1cm x 1cm ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด ์ข…์ด๋ฅผ ๊ฒฉ์ž ์„ ์„ ๋”ฐ๋ผ 1cm × 1cm์˜ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ์ž˜๋ผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด์—ˆ๋Š”๋ฐ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด ์ข…์ด๋ฅผ ๋Œ€๊ฐ์„  ๊ผญ์ง“์  2๊ฐœ๋ฅผ ์ž‡๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ž˜๋ผ ๋†“์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ˜„์žฌ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ ์ง๊ฐ์‚ผ๊ฐํ˜• 2๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ข…์ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด ์ข…์ด์—์„œ ์›๋ž˜ ์ข…์ด์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ 1cm × 1cm๋กœ ์ž˜๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ€๋กœ์˜ ๊ธธ์ด W์™€ ์„ธ๋กœ์˜ ๊ธธ์ด H๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” solutio.. 2022. 6. 14.
2022.05.31 ใ€ŒLv.3 ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌใ€ ์˜ค๋žœ๋งŒ์— ์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œ์ธ๋ฐ, ์ฃผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. ํ”„๋กœ์ ํŠธ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์•ˆ ๋‚˜๋Š”๋ฐ ์งฌ์งฌํžˆ ํ‘ธ๋ ค๊ณ  ๋…ธ๋ ฅ์„ ์ข€ ํ•ด์•ผ๊ฒ ๋‹ค. ํ’€์ด ๊ณผ์ •์„ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค. ๋ฌธ์ œ ์„ค๋ช… ํ•˜๋“œ๋””์Šคํฌ๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ jobs์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 500 ์ดํ•˜์ž…๋‹ˆ๋‹ค. jobs์˜ ๊ฐ ํ–‰์€ ํ•˜๋‚˜์˜ ์ž‘์—…์— ๋Œ€ํ•œ [์ž‘์—…์ด ์š”์ฒญ๋˜๋Š” ์‹œ์ , ์ž‘์—…์˜ ์†Œ์š”์‹œ๊ฐ„] ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์— ๋Œ€ํ•ด ์ž‘์—…์ด ์š”์ฒญ๋˜๋Š” ์‹œ๊ฐ„์€ 0 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์— ๋Œ€ํ•ด ์ž‘์—…์˜ ์†Œ์š”์‹œ๊ฐ„์€ 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ๋””์Šคํฌ.. 2022. 5. 31.
2022.05.26 ใ€ŒํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ ธ์„ ๊ฒฝ์šฐใ€ ์ด๋ฉ”์ผ์„ ํ†ตํ•ด ์ธ์ฆ ๋ฒˆํ˜ธ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์€ ๋งค์šฐ ๋Š๋ฆฌ๋‹ค. ์„œ๋ฒ„ ์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์ด ๋ชฐ๋ ค ์ธ์ฆ ๋ฒˆํ˜ธ๋ฅผ ์ „์†กํ•˜๋Š” ์‹œ๊ฐ„์ด ๋ฌด์ง„์žฅ ๋Š˜์–ด๋‚  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌ๋ฉด ์•ˆ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ฐพ์•„๋ณด์•˜๋‹ค. ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ ธ์„ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ค ์‹์œผ๋กœ ํ•ด๊ฒฐ์„ ํ•˜๋Š”์ง€? ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๋ฐฉ์‹์ด ์žˆ๋‹ค. ๋™๊ธฐ๋Š” ์ฒซ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜์–ด์•ผ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฐฉ์‹์ด๊ณ , ์™„๋ฃŒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋น„๋™๊ธฐ ๋ฐฉ์‹์ด๋‹ค. ์ด๋ฉ”์ผ ์ „์†ก์— ์ด ๋น„๋™๊ธฐ ๋ฐฉ์‹์„ ์ ์šฉํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค. Async Config ์Šคํ”„๋ง์—์„œ๋Š” @Async๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ ๋ฐฉ์‹์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. configuration์„ ํ†ตํ•ด ์Šค๋ ˆ๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ปค์Šคํ„ฐ ๋งˆ์ด์ง• ์‹œ์ผฐ๋‹ค. Async ์ ์šฉ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ธธ ๋ฐ”๋ผ๋Š” ๋ฉ”์„œ๋“œ์— ์• ๋…ธํ…Œ์ด์…˜์„ ์ .. 2022. 5. 26.
2022.05.25 ใ€ŒEmail ์ธ์ฆใ€ ์—ด์‹ฌํžˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๊ฐ€ ์ดˆ๊ธฐ ๊ตฌ์ƒํ•œ wiki๋ฅผ ๋‹ค์‹œ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ํšŒ์›๊ฐ€์ž… ์‹œ ์ด๋ฉ”์ผ api๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ ๊ทธ๊ฑธ ๊นŒ๋จน์—ˆ๋‹ค.. ๊ทธ๋ž˜์„œ ํšŒ์›๊ฐ€์ž…์„ ๋‹ค์‹œ ๊ฑด๋“œ๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹ค. Java์˜ MailSender ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SMTP ๊ตฌ๊ธ€ ์ด๋ฉ”์ผ๋กœ ์ด๋ฉ”์ผ ์ธ์ฆ ๋ฒˆํ˜ธ๋ฅผ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์ด๋ฉ”์ผ๋กœ ๋ณด๋‚ด์ฃผ๋„๋ก ์„ค๊ณ„ํ•˜๊ณ  ์ธ์ฆ ๋ฒˆํ˜ธ๋ฅผ redis DB์— ์ €์žฅํ•˜์—ฌ ๋น„๊ตํ•˜๊ณ  ํšŒ์›๊ฐ€์ž…์„ ์ด๋ฃจ๊ฒŒ ํ•  ๊ฒƒ์ด๋‹ค. Mail Sender // Mail implementation 'org.springframework.boot:spring-boot-starter-mail' ๋จผ์ € ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. Application.yml ์ง€๊ธˆ๊นŒ์ง€ Properties ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ์— yaml์„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ์ด์œ ๋Š” ์ธ.. 2022. 5. 25.
2022.05.24 ใ€ŒLv.3 ์ž…๊ตญ์‹ฌ์‚ฌใ€ ์š”์ƒˆ ํ”„๋กœ์ ํŠธ ๋น„์ค‘์ด ๋„ˆ๋ฌด ์ปธ๋˜์ง€๋ผ ์˜ค๋žœ๋งŒ์— ์‹œ๊ฐ„์ด ๋‚˜์„œ ์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘์—์„œ ์ด๋ถ„ ํƒ์ƒ‰ (Binary Search)์„ ์ด์šฉํ•œ ๋ฌธ์ œ์ด๋‹ค. ์–ผํ• ๋ณด๋‹ˆ๊นŒ ์ถœ์ œ์œจ์ด ๋‚ฎ๋˜๋ฐ ๊ทธ๋ž˜๋„ ์ด๋ก  ์ƒ ์•Œ๊ณ  ๊ฐ€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ง์ ‘ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•„์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค. ์ด๋ถ„ ํƒ์ƒ‰ (Binary Search) ์ด๋ถ„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์ตœ์†Œ, ์ตœ๋Œ€ ๊ฐ’์„ ์ •ํ•ด ๋‘๊ณ  ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€๋ฉฐ ์ค‘๊ฐ„ ๊ฐ’์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ ํƒ์ƒ‰์„ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ O(logN)์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. https://programmers.co.kr/learn/courses/30/lessons/43238 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž…๊ตญ์‹ฌ์‚ฌ n๋ช…์ด ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ์œ„ํ•ด ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž…๊ตญ์‹ฌ์‚ฌ๋Œ€์— ์žˆ.. 2022. 5. 24.
2022.05.24 ใ€Œ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง Ver.2ใ€ ์ฃผ๋งˆ๋‹ค ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ ์„ค๊ณ„ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฃผ๋งˆ๋‹ค ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•˜๋‹ˆ๊นŒ ํ™•์‹คํžˆ ์ฝ”๋“œ๊ฐ€ ๊น”๋”ํ•ด์ง€๋Š” ๊ฑธ ๋Š๋‚€๋‹ค. ์˜ค๋Š˜ ์•„์นจ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•œ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋”ฐ์ง€๋Š” ๊ฒƒ์€ ๋ฌผ๋ก ์ด๊ฑฐ๋‹ˆ์™€ ์–ด๋ ค์šด ๋“ฏํ•˜๋ฉด์„œ๋„ ์ƒˆ๋กœ์šด ๊ฐœ๋…์„ ๋„์ž…ํ•ด์„œ ์ง„ํ–‰ํ•˜๋‹ˆ ๋‚˜๋ฆ„ ๋ณด๋žŒ์ฐผ๋˜ ๋ฆฌํŒฉํ„ฐ๋ง์ด์—ˆ๋‹ค. ์ง๋ฉดํ–ˆ๋˜ ๋ฌธ์ œ๋“ค์„ ๋‚˜์—ดํ•˜๋ฉฐ ์ •๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ•ด๋ณด๊ฒ ๋‹ค. ์ธ์ฆ & ์ธ๊ฐ€ ์ฑ…์ž„ ๋ถ„๋ฆฌ ๋‚˜๋Š” ์ธ์ฆ, ์ธ๊ฐ€๋ฅผ ์ธํ„ฐ์…‰ํ„ฐ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ธ์ฆ์€ ํ† ํฐ ๊ฒ€์ฆ, ์ธ๊ฐ€๋Š” ์—๋„ˆํ…Œ์ด์…˜ ๋ฐ ํ† ํฐ ๊ฒ€์ฆ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ : ์ธํ„ฐ์…‰ํ„ฐ์˜ preHandle ๋ฉ”์„œ๋“œ ์•ˆ์— ๋‘ ๊ฐœ์˜ ๋กœ์ง์ด ๋™์‹œ์— ๋“ค์–ด์žˆ๋‹ค. ํ† ํฐ ๊ฒ€์ฆ + ์—๋„ˆํ…Œ์ด์…˜ ๊ฒ€์ฆ => ์ฑ…์ž„์ด ๋งŽ๋‹ค -> ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค. ํ•ด๊ฒฐ : ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ๋‚˜๋ˆ„์–ด ๋ถ„๋ฆฌํ–ˆ๋‹ค. @Override .. 2022. 5. 24.
๋ฐ˜์‘ํ˜•