๋ชฉ๋ก๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ (118)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Spring] ๊ตฌ๊ธ€ OAuth ๊ตฌํ˜„ํ•˜๊ธฐ (+JWT)

[Spring] ๊ตฌ๊ธ€ OAuth ๊ตฌํ˜„ํ•˜๊ธฐ (+JWT) ์ถœ์ฒ˜ https://preamtree.tistory.com/167 https://withseungryu.tistory.com/116 ๊ตฌ๊ธ€ ๊ณต์‹๋ฌธ์„œ - OAuth2.0์œผ๋กœ ๊ตฌ๊ธ€API ์•ก์„ธ์Šคํ•˜๊ธฐ ํŠนํžˆ "์„œ๋ฒ„์ธก ์›น ์•ฑ์šฉ OAuth 2.0" ์ฐธ๊ณ  ์ „์ฒด flow /login์œผ๋กœ ์ ‘์† ์‹œ ๊ตฌ๊ธ€ OAuth2.0์„ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž ์ •๋ณด(์Šน์ธ)์„ ์š”์ฒญํ•จ. ์Šน์ธ๋˜๋ฉด ๋ฆฌ๋””๋ ‰์…˜URI๋กœ ์ด๋™. ์ด ๋•Œ ๊ตฌ๊ธ€๋กœ๋ถ€ํ„ฐ code๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์Œ. ๊ตฌ๊ธ€ API ์ฝ˜์†” - API ๋ฐ ์„œ๋น„์Šค - ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด - ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ - OAuth ํด๋ผ์ด์–ธํŠธ ID - ์•ฑ ์œ ํ˜• ์„ ํƒ - ์ด๋ฆ„ ์„ค์ • - ์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI ์ง€์ •. โ— ์ด ๋•Œ ๋ฐœ๊ธ‰๋˜๋Š” ํด๋ผ์ด์–ธํŠธID(Client Id), ํด๋ผ์ด..

[Spring] JWT๋กœ ํ† ํฐ ๊ธฐ๋ฐ˜ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

[airbnbํ”„๋กœ์ ํŠธ] JWT ์ฝ”๋“œ ์„ค๋ช… ์ถœ์ฒ˜ : ์ „์ฒด ์ฝ”๋“œ ์ถœ์ฒ˜๋Š” https://ocblog.tistory.com/56, ์„ค๋ช…์€ yeon์ด ํ•ด ์ฃผ์…จ์Šต๋‹ˆ๋‹ค๐Ÿ™‡‍โ™‚๏ธ JWT ํ† ํฐ ์™œ ์“ฐ๋Š”๊ฐ€? ๋กœ๊ทธ์ธ ์‹œ ์„œ๋ฒ„๊ฐ€ ํ† ํฐ์„ ๋งŒ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ์— ๋ฐœ๊ธ‰ํ•ด ์ค€๋‹ค. ์ดํ›„ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ URL์—์„œ, ํ—ค๋”์— ํ† ํฐ์ด ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ํ† ํฐ์ด ์žˆ์œผ๋ฉด ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ† ํฐ์ด ์—†์œผ๋ฉด ๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ interceptor ์ธํ„ฐ์…‰ํ„ฐ : ์ปจํŠธ๋กค๋Ÿฌ์— ์˜ค๊ธฐ ์ „์— ์กด์žฌํ•˜๋Š” ๋‹จ๊ณ„. ํ”„๋ก ํŠธ๊ฐ€ HTTP Header์— ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์„ ๋‹ด์•„์„œ ๋ณด๋‚ด์ฃผ๋ฉด ("Authorization" : Bearer ํ† ํฐ) ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ํ† ํฐ ..

[JWT ๊ธฐ์ดˆ] JWT, TOKEN ํ† ํฐ ๋ฒ ์ด์Šค ๋กœ๊ทธ์ธ

JWT, TOKEN ํ† ํฐ ๋ฒ ์ด์Šค ๋กœ๊ทธ์ธ ์ถœ์ฒ˜ ๐Ÿ™‡‍โ™‚๏ธ https://www.youtube.com/watch?v=zC5dLbZMAW0 Token Based Auth (JWT)์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค. Session Based Auth ๋กœ๊ทธ์ธ ํด๋ผ์ด์–ธํŠธ : ID, PW์™€ ํ•จ๊ป˜ request ์„œ๋ฒ„ : ID,PW ํ™•์ธ ํ›„ ๋งž๋‹ค๋ฉด sessionID๋ฅผ ์ฟ ํ‚ค์— ๋„ฃ์–ด response ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ sessionId๋ฅผ ๊ด€๋ฆฌ ๋กœ๊ทธ์ธ ์ดํ›„ ํด๋ผ์ด์–ธํŠธ : ์š”์ฒญ์„ ํ•  ๋•Œ sessionID๋ฅผ ํ•จ๊ป˜ ๋ณด๋ƒ„ ์„œ๋ฒ„ : sessionID๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด/๋งž๋‹ค๋ฉด ๋กœ๊ทธ์ธ ์‹œ์—๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ต Token Based Auth ์™œ ๋“ฑ์žฅํ–ˆ๋Š”๊ฐ€? ์„ธ์…˜๊ธฐ๋ฐ˜ ์ธ์ฆ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค, ์—ฌ๋Ÿฌ ์„œ๋ฒ„์˜ ์ธ์ฆ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ ๋กœ๊ทธ์ธ ํด๋ผ์ด์–ธํŠธ ..

[Spring boot] ์Šคํฌ๋ฆฝํŠธ์™€ S3 bucket์„ ์ด์šฉํ•œ ์Šคํ”„๋ง ์•ฑ ๋ฐฐํฌ ์ž๋™ํ™”(+ ์Šฌ๋ž™ ๋ด‡, crontab ํ™œ์šฉ)

์Šคํฌ๋ฆฝํŠธ์™€ S3 bucket์„ ์ด์šฉํ•œ ์Šคํ”„๋ง ์•ฑ ๋ฐฐํฌ ์ž๋™ํ™”(+ ์Šฌ๋ž™ ๋ด‡, crontab ํ™œ์šฉ) yeon์ด ์˜ค๋Š˜ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€๋ฅด์ณ ์ฃผ์‹  ๋ฐฐํฌ์ž๋™ํ™” ๊ณผ์ •์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค! ๐Ÿ™‡‍โ™‚๏ธ (์ถœ์ฒ˜ : S3 bucket์„ ์ด์šฉํ•œ ๋ฐฐํฌ ์ž๋™ํ™”) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž๋™ํ™”๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋กœ์ปฌ์—์„œ ๋นŒ๋“œํ•œ ์Šคํ”„๋ง ์•ฑ์˜ ๋นŒ๋“œ ํŒŒ์ผ(jar)์„ S3์— ๋„ฃ๊ธฐ ์ธ์Šคํ„ด์Šค๊ฐ€ s3๋ฅผ 1๋ถ„๋งˆ๋‹ค ์ฒดํฌ ๋นŒ๋“œ ํŒŒ์ผ์ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด๋ฉด s3์—์„œ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ [์ค€๋น„๋ฌผ] ์ž˜ ๋Œ์•„๊ฐ€๋Š” ์Šคํ”„๋ง ์•ฑ, aws ๊ณ„์ •๊ณผ ec2 ์ธ์Šคํ„ด์Šค, ์Šฌ๋ž™ (๋กœ์ปฌ) ์Šคํ”„๋ง ์•ฑ์„ ๋นŒ๋“œํ•ด jarํŒŒ์ผ์„ ์ƒ์„ฑํ•จ ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ ./gradlew build jar (ec2) S3์—์„œ ๋ฐฐํฌ์šฉ bucket ์ƒ์„ฑ aws์„œ๋น„์Šค ์ค‘ s3 ์„ ํƒ - ๋ฒ„ํ‚ท - ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ ๋ฒ„ํ‚ท ์ƒ์„ฑ์‹œ ์ด๋ฆ„์ด ๋‹ค๋ฅธ ๋ฒ„..

[Codesquad] ์ˆ˜์—… ์ •๋ฆฌ - ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € stored procedure

์ˆ˜์—… ์ •๋ฆฌ - ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € stored procedure ๋ชจ๋ฅด๋ฉด ์ด์ƒํ•˜์ง€๋งŒ ๊ตณ์ด ๊ณต๋ถ€ํ•  ํ•„์š”๋Š” ์—†๋Š”..?.. ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ..!!.. sql ๋ช…๋ น์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ์–ธ์ (declarative) (what) ๋ช…๋ น์ด๋‹ค. DB์—์„œ '์ ˆ์ฐจ์  ๋ช…๋ น(imperative) (how)'์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ DB์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ ํ•œ ๋งˆ๋””๋กœ DB์— ํ”„๋กœ๊ทธ๋žจ์„ ์ €์žฅํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ €๋Š” DB์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— MySQL ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ๋‚จ์•„ ์žˆ๋‹ค. ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฅ˜ ์Šคํ† ์–ด๋“œ ํ•จ์ˆ˜ ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ ธ ํŠธ๋ฆฌ๊ฑฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ์žฅ์  ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๊ฐ์†Œ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฟผ๋ฆฌ ๋‚ ๋ ค์•ผ ํ•˜๋Š” ๊ฑธ ํ•œ ๋ฒˆ์œผ..