๋ชฉ๋กBackEnd๐Ÿƒ (8)

did_story

[Spring/Oauth2] ํšŒ์›๊ฐ€์ž… ํ•  ๋•Œ, ์†Œ์…œ Refresh_token์„ ๋”ฐ๋กœ ๋‘” ์ด์œ 

1. ์™œ ์†Œ์…œ Refresh_token์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ์„๊นŒ?์ตœ๊ทผ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ, ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ์ง€์›ํ•  ๊ฒฝ์šฐ Refresh Token์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ณดํ†ต Refresh Token์€ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ์†Œ์…œ ๋กœ๊ทธ์ธ์—์„œ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅธ ์—ญํ• ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ์•ฑ์˜ Refresh Token์€ ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์†Œ์…œ ๋กœ๊ทธ์ธ์—์„œ ์ œ๊ณตํ•˜๋Š” Refresh Token์€ ๋กœ๊ทธ์•„์›ƒ(๊ณ„์ • ์—ฐ๊ฒฐ ํ•ด์ œ) ๊ณผ์ •์—์„œ ํ•„์š”ํ•˜๋ฉฐ, ์ด๋ฅผ ์ž˜๋ชป ๊ด€๋ฆฌํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ๋ณด์•ˆ ๋ฆฌ์Šคํฌ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.์ด๋Ÿฐ ๊ณ ๋ฏผ ๋์— ์†Œ์…œ Refresh Token์„ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ๊ฒŒ ๋˜..

BackEnd๐Ÿƒ/Spring boot 2025. 2. 25. 15:41
[Spring] ์ปค๋„ฅ์…˜ ํ’€๊ณผ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ์™œ ํ•„์š”ํ• ๊นŒ?

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ปค๋„ฅ์…˜ ํ’€๊ณผ ๋ฐ์ดํ„ฐ์†Œ์Šค์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 1. ์ปค๋„ฅ์…˜ ํ’€(Connection Pool)์ด๋ž€? โžก๏ธ  ์ปค๋„ฅ์…˜ ํ’€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด ๋‘๊ณ , ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ ธ์™€์„œ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ JDBC์—์„œ DriverMaanager.getConnection()์„  ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ๋งค๋ฒˆ ์ƒˆ๋กœ์šด DB ์—ฐ๊ฒฐ์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ, ์ด๋Š” ์„ฑ๋Šฅ์ƒ ํฐ ๋ถ€๋‹ด์ด ๋œ๋‹ค!๋”ฐ๋ผ์„œ, ์ปค๋„ฅ์…˜ ํ’€์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ฏธ๋ฆฌ์ƒ์„ฑ๋œ ์ปค๋„ฅ์…˜์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  DB ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๋ฐ˜๋ณต์ ์ธ ์—ฐ๊ฒฐ ์ƒ์„ฑ ๋น„์šฉ์„ ์ค„์ด๊ณ , ๋™์‹œ ์ ‘์†์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค!๐Ÿ“Œ ์ปค๋„ฅ์…˜ ํ’€์ด ํ•„์š”ํ•œ ์ด์œ DB ์—ฐ๊ฒฐ ์†๋„ ๊ฐœ์„  : ์ปค๋„ฅ์…˜์„..

BackEnd๐Ÿƒ/Spring boot 2025. 1. 20. 15:37
[JAVA / JDBC] JDBC๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?

JDBC(Java Database Connectivity)๋ž€?JDBC(Java Database Connectivity) API๋Š” Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํญ๋„“์€ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋‚˜ ํ”Œ๋žซ ํŒŒ์ผ์„ ๋น„๋กฏํ•œ ํ…Œ์ด๋ธ” ํ˜•์‹ ๋ฐ์ดํ„ฐ ์†Œ์Šค)๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋…๋ฆฝ์ (database-independent)์œผ๋กœ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ์‚ฐ์—… ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. JDBC API๋Š” SQL ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ํ˜ธ์ถœ ๋ ˆ๋ฒจ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (์ถœ์ฒ˜ : Oracle ๊ณต์‹๋ฌธ์„œ)→ ์ฆ‰, JDBC(Java Database Connectivity)๋Š” Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ž๋ฐ” ํ‘œ์ค€ API์ž…๋‹ˆ๋‹ค. JDBC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Java ํ”„๋กœ๊ทธ๋žจ์—์„œ SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ..

BackEnd๐Ÿƒ/Java 2025. 1. 20. 15:37
[MySQL / DDL] ์ œ์•ฝ์กฐ๊ฑด(Constraints)์— ๊ด€ํ•˜์—ฌ !

์ œ์•ฝ ์กฐ๊ฑด์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•ด ๋ณด๋Š” ๊ธ€์ž„์„ ๋ฐํž™๋‹ˆ๋‹ค. ์šฐ์„ ! SQL์—์„œ ์ œ์•ฝ์กฐ๊ฑด(Constraints)์€ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ, ์‹ ๋ขฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. 1. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ œ์•ฝ์กฐ๊ฑดSQL์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ œ์•ฝ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:NOT NULLํ•ด๋‹น ์ปฌ๋Ÿผ์ด NULL ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ŒUNIQUEํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ์œ ์ผ(unique)ํ•ด์•ผ ํ•จPRIMARY KEYNOT NULL + UNIQUE ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๋ฉฐ, ํ…Œ์ด๋ธ”์—์„œ ์œ ์ผํ•œ ๊ฐ’์ด ๋˜์–ด์•ผ ํ•จFOREIGN KEY๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ PRIMARY KEY๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ…Œ์ด๋ธ” ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์„ค์ •CHECKํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’๋งŒ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ œํ•œDEFAULT์ปฌ๋Ÿผ์— ๋ช…์‹œ์ ์œผ๋กœ ๊ฐ’์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์•˜..

BackEnd๐Ÿƒ/DB & SQL 2025. 1. 17. 00:48