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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ287

์Œฉ๊ตฌํ˜„ํ–ˆ๋˜ ๊ตฌ๊ธ€ OAuth ์ธ์ฆ ํ”„๋กœ์ ํŠธ์— Spring Security ์ ์šฉํ•˜๊ธฐ ์–ด์ œ ํ•˜๋ฃจ๋™์•ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์›€ ์—†์ด, ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š” ๊ณผ์ •์„ ์Œฉ์œผ๋กœ ๊ตฌํ˜„ํ•ด์„œ๊ตฌ๊ธ€ OAuth ๊ฐ„ํŽธ ํšŒ์›๊ฐ€์ž…์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜์—ˆ๋‹ค.๐Ÿ“„ Spring Security, OAuth2 Client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ง€ ์•Š๊ณ  ๊ตฌ๊ธ€ OAuth ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ํ•˜๊ธฐ ์ด๋ฒˆ์—๋Š” Spring Security์™€ OAuth2 Client ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊ฟ”๋ณด์•˜๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ƒ๊ฐ๋ณด๋‹ค ๊ณ ์ƒํ–ˆ๋‹ค.์ด์œ ๋Š” Spring Security ๋ฒ„์ „์ด ๋ฌด๋ ค 6.2.7์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ 6 ๋ฒ„์ „ ์ด์ƒ์€ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ฐ•์˜๋‚˜ ๊ต์žฌ๊ฐ€ ๊ฑฐ์˜ ์—†์—ˆ๊ณ ,๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋’ค์ ธ๋ด๋„ ์ž˜ ๋ชป์ฐพ๊ฒ ์–ด์„œ ๊ณ ์ƒํ•ด๊ฐ€๋ฉด์„œ ๊ฒจ์šฐ๊ฒจ์šฐ ์„ค์ •ํ–ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€, ์Šคํ”„๋ง ํ•„ํ„ฐ ์ฒด์ธ์— ์‹œํ๋ฆฌํ‹ฐ ํ•„ํ„ฐ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ 5.7.x .. 2024. 11. 18.
[TIL] Spring Security, OAuth2 Client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ง€ ์•Š๊ณ  ๊ตฌ๊ธ€ OAuth ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ํ•˜๊ธฐ โœ… ๊ฐœ๋ฐœํ™˜๊ฒฝSpringBoot 3.2.11, GradleJDK 17 ์ตœ๊ทผ ๋ฉฐ์น ๊ฐ„ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ Spring Security์™€ OAuth2 Client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ๊ตฌ๊ธ€, ํŽ˜์ด์Šค๋ถ, ๋„ค์ด๋ฒ„ OAuth ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด์•˜๋‹ค.๋งˆ์นจ ์š”์ฆ˜ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด์ œ ๋ง‰ ๊ตฌํ˜„ ๋‹จ๊ณ„์— ์ง„์ž…ํ•ด์„œ, ์—ฌ๊ธฐ์— ๊ตฌ๊ธ€ OAuth ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž…๋งŒ ์ ์šฉํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ๋‚ด๊ฐ€ ํ•œ ๋ฒˆ ์ ์šฉํ•ด๋ณด๊ฒ ๋‹ค๊ณ  ํ–ˆ๋‹ค. โœ… ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐ•์˜ ์† ํ”„๋กœ์ ํŠธ์™€๋Š” ๊ตฌ์กฐ์ ์ธ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋‹ค.๊ฐ•์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ ๋”ฐ๋กœ ์žˆ์ง€ ์•Š๊ณ ,ํ”„๋ก ํŠธ ์„œ๋ฒ„ ํ•˜๋‚˜๋ฅผ ๋‘๊ณ  Spring Security๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋ก ํŠธ ์„œ๋ฒ„์™€ ๋ฐฑ .. 2024. 11. 17.
MYSQL์— ํ•œ๊ธ€ csv ํŒŒ์ผ importํ•˜๊ธฐ (์ „์ฒ˜๋ฆฌ ์—†์ด!) ์•„์นด๋ฐ๋ฏธ ์ˆ˜์—…์‹œ๊ฐ„์— https://jumin.mois.go.kr/ ์—์„œ ๋‹ค์šด๋ฐ›์€ csv ํŒŒ์ผ์„ Mysql์— import  ํ•ด์•ผํ•˜๋Š” ์‹ค์Šต์ด ์žˆ์—ˆ๋‹ค.Datagrip์œผ๋กœ ํŽธํ•˜๊ฒŒ ์ƒฅ ๋„ฃ์–ด๋ฒ„๋ฆฌ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐcsv ํŒŒ์ผ ์ปฌ๋Ÿผ๋ช…์ด ํ•œ๊ธ€์ด์–ด์„œ ๊ธ€์ž๊ฐ€ ๋‹ค ๊นจ์ง€๊ณ  ๋‚œ๋ฆฌ๊ฐ€ ๋‚ฌ๋‹ค. ๊ทธ์™€์ค‘์— Mysql Workbench๋กœ ์ž‘์—…ํ•˜๋Š” ํ•™์ƒ๋ถ„๊ป˜์„œ ์งˆ๋ฌธ์„ ํ•˜์…”์„œDatagrip๊ฐ™์€ ํˆด์˜ ๋„์›€ ์—†์ด ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด๋งŒ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์ด๊ฒƒ์ €๊ฒƒ ์ฐพ์•„๋ณด์•˜๋‹ค. 1๏ธโƒฃ ํŒŒ์ผ๋ช…๊ณผ ํŒŒ์ผ ์ธ์ฝ”๋”ฉ ์„ค์ •์šฐ์„  ํŒŒ์ผ ์ด๋ฆ„๋ถ€ํ„ฐ ํ•œ๊ธ€ํŒŒ์ผ์ด๋ผ์„œ ํ„ฐ๋ฏธ๋„์—์„œ ํŒŒ์ผ๋ช…์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ใ…Žใ…Ž ๊ทธ๋ž˜์„œ ๋‹ค์šด๋ฐ›์€ ํŒŒ์ผ ์ด๋ฆ„์„ ์˜์–ด(population_202410_1.csv)๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ , ํ˜น์‹œ ๋ชฐ๋ผ์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ ์ž์ฒด์˜ ์ธ์ฝ”๋”ฉ ๋˜ํ•œ utf-8๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค.icon.. 2024. 11. 14.
[๋ฐฑ์ค€] 2xn ํƒ€์ผ๋ง 1, 2 https://www.acmicpc.net/problem/11726 https://www.acmicpc.net/problem/11727 ์„ธํŠธ์ฒ˜๋Ÿผ ์ƒ๊ธด ๋‘ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค.์‰ฌ์šด DP ๋ฌธ์ œ๋ผ๊ณ  ํ•ด์„œ ๋ค๋ณ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๋นจ๋ฆฌ ๋ชปํ’€์—ˆ๋‹ค. ๋‘๋ฌธ์ œ ๋‹ค ๋‚ด๊ฐ€ ๋ช‡๋…„์ „์— ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ํ’€์—ˆ๋˜๊ธฐ ๊ธฐ๋ก์ด ์žˆ๋˜๋ฐ๊ทธ๋• ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋‚˜ ๋ชจ๋ฅด๊ฒ ๋‹ค ใ…Žใ…Ž ์šฐ์„  ๋‘ ๋ฌธ์ œ ๋ชจ๋‘, ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ•์€ ๋ชปํ’€๊ณ  ๊ณ ๋ฏผํ–ˆ๋˜ ์‹œ๊ฐ„์ด ์•„๊นŒ์šธ ์ •๋„๋กœ ์•„์ฃผ ๊ฐ„๋‹จํ–ˆ๋‹ค. n=1์ผ ๋•Œ๋ถ€ํ„ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ฐ์ ธ๋ณด๊ณ  ์ ํ™”์‹์„ ์„ธ์šฐ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. 2xn ํƒ€์ผ๋ง์˜ ๊ฒฝ์šฐ,๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ฐ์ ธ๋ณด๋ฉด ์ด๋ ‡๋‹ค.n=1 : 1๊ฐ€์ง€n=2 : 2๊ฐ€์ง€n=3 : 3๊ฐ€์ง€ (= 1 + 2)n=4 : 5๊ฐ€์ง€ (= 2 + 3)n=5 : 8๊ฐ€์ง€ (= 3 + 5)...ํ”ผ๋ณด๋‚˜์น˜์™€ ๋™์ผํ•œ ๊ทœ์น™์ด๋‹ค... 2024. 11. 13.
์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ & OAuth๋กœ ๊ตฌ๊ธ€ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ์‹œํ‚ค๊ธฐ ๊นƒํ—ˆ๋ธŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(oauth1110)์— ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ž์„ธํžˆ ์ •๋ฆฌํ•ด๋‘๊ธด ํ–ˆ์ง€๋งŒ,๋ธ”๋กœ๊ทธ์—๋„ ์ „์ฒด์ ์ธ ํ๋ฆ„๋งŒ ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Œ ๊ตฌ๊ธ€ API ์ฝ˜์†”์—์„œ OAuth ํด๋ผ์ด์–ธํŠธ ID ๋งŒ๋“ค๊ธฐ- ๊ตฌ๊ธ€ API ์ฝ˜์†”์— ์ ‘์†ํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.- ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด -> ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ -> OAuth ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ๋งŒ๋“ ๋‹ค. - OAuth ํด๋ผ์ด์–ธํŠธ ์•„์ด๋””๋ฅผ ๋งŒ๋“ค ๋•Œ "์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI"๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์นธ์ด ๋œจ๋Š”๋ฐ,  ๊ทธ ์นธ์— "http://{์„œ๋น„์Šคip}:{port}/login/oauth2/code/google" ์„ ์ž…๋ ฅํ•ด์ค€๋‹ค.- ์ด URI๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ ๊ตฌ๊ธ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋Š” URI๋ผ๊ณ  ํ•œ๋‹ค. - OAuth ํด๋ผ์ด์–ธํŠธ ID ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธID์™€.. 2024. 11. 12.
์Šคํ‚ค๋งˆ ์ •์ œ๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ์ด์œ  (์‚ฝ์ž…์ด์ƒ, ์‚ญ์ œ์ด์ƒ, ๊ฐฑ์‹ ์ด์ƒ) ๊ฐœ๋… ์„ค๊ณ„๋ฅผ ํ•˜๊ณ  ๋‚˜๋ฉด ์Šคํ‚ค๋งˆ ์ •์ œ๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ตœ์ ํ™”๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์Šคํ‚ค๋งˆ ์ •์ œ๋ฅผ ํ•˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ €์žฅ์œผ๋กœ ์ธํ•ด์‚ฝ์ž… ์ด์ƒ, ์‚ญ์ œ ์ด์ƒ, ๊ฐฑ์‹  ์ด์ƒ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‚ฝ์ž… ์ด์ƒ - ํ•˜๋‚˜์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋•Œ, ๋‹ค๋ฅธ ์ •๋ณด๋„ ๋ฐ˜๋“œ์‹œ ๊ฐ™์ด ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.์‚ญ์ œ ์ด์ƒ - ํ•˜๋‚˜์˜ ์ •๋ณด๋ฅผ ์ง€์šฐ๋ฉด ์˜๋„์น˜ ์•Š๊ฒŒ ๋‹ค๋ฅธ ์ •๋ณด๊นŒ์ง€ ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.๊ฐฑ์‹  ์ด์ƒ - ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋งŒ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.  ์˜ˆ๋ฅผ ๋“ค์–ด "๊ฐ™์€ ๋“ฑ๊ธ‰์˜ ์‚ฌ๋žŒ๋ผ๋ฆฌ๋Š” ๋™์ผํ•œ ์‹œ๊ธ‰์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค" ๋ผ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•„๋ฅด๋ฐ”์ดํŠธ์ƒ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ–ˆ๋‹ค๊ณ  ์น˜์ž.๋ฒˆํ˜ธ์ด๋ฆ„๋“ฑ๊ธ‰์‹œ๊ธ‰1๋ชฝ๋‚˜1105002์•…๋น„๋ฅด299003์•…๋น„์•„๋ฅด398004์ฐŒ๋ฅดํ˜ธํฌ29900 (1) .. 2024. 11. 11.
728x90