///
Search
๐ŸŸ

2023-12-07 ํšŒ์˜๋ก

์ฃผ์š”์•ˆ๊ฑด

โ€ข
์ฝ”๋“œ๋‚˜ ์„ค๊ณ„ ์ˆ˜์ • ๋‚ด์—ญ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค
โ€ข
ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ๊นƒ ๋จธ์ง€
โ€ข
CommonResponseDto, ExceptionResponse ๋ฐ˜ํ™˜ํ•  ๋•Œ HttpStatus ๋ง๊ณ  Integer๋กœ Value ๋ฝ‘์•„์„œ ๋ฐ˜ํ™˜
โ€ข
์„ฑ๊ณตํ–ˆ์„ ๋•Œ์˜ ๋ฉ”์„ธ์ง€๋ฅผ Enum์œผ๋กœ ์ •๋ฆฌ
โ€ข
์‚ฌ์ง„ ์—…๋กœ๋“œ ๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
โ€ข
๊ฐ€๊ฒŒ๋Š” ํšŒ์›๋‹น ํ•˜๋‚˜๋กœ ๊ตฌํ˜„
โ€ข
ERD ์ˆ˜์ •
โ€ข
์ปค๋ฐ‹ํ”ผ์•Œ
โ€ข
๊ฐ€๊ฒŒ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, Valid

ํšŒ์˜ ๋‚ด์šฉ

โ€ข
์ฝ”๋“œ๋‚˜ ์„ค๊ณ„ ์ˆ˜์ • ๋‚ด์—ญ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค
โ—ฆ
ํšŒ์˜ ๋๋‚˜๊ณ  ์–‘์‹ ์ž‘์„ฑ
โ€ข
ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ๊นƒ ๋จธ์ง€
โ—ฆ
๋ฆฌํ”„๋ ˆ์‹œ๊นŒ์ง€ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ์— Pr
โ€ข
CommonResponseDto, ExceptionResponse ๋ฐ˜ํ™˜ํ•  ๋•Œ HttpStatus ๋ง๊ณ  Integer๋กœ Value ๋ฝ‘์•„์„œ ๋ฐ˜ํ™˜
โ€ข
์„ฑ๊ณตํ–ˆ์„ ๋•Œ์˜ ๋ฉ”์„ธ์ง€๋ฅผ Enum์œผ๋กœ ์ •๋ฆฌ
โ—ฆ
Exception Enum Class์™€ ๋น„์Šทํ•˜๊ฒŒ ์„ฑ๊ณตํ–ˆ์„ ๋•Œ๋„ enum์œผ๋กœ ์ •๋ฆฌํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒŒ ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค.
โ€ข
์‚ฌ์ง„ ์—…๋กœ๋“œ ๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
โ—ฆ
์ฃผ์†Œ๊ฐ’์œผ๋กœ ์—…๋กœ๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ์ด ๋ถ€๋ถ„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋‚˜ ๊ณ ๋ฏผ
โ—ฆ
ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ๊ฐ’๋งŒ dto์— ๋‹ด์•„๋„ ๊ดœ์ฐฎ์„ ๋“ฏ
โ€ข
๊ฐ€๊ฒŒ๋Š” ํšŒ์›๋‹น ํ•˜๋‚˜๋กœ ๊ตฌํ˜„
โ—ฆ
๋ฉ”๋‰ด๋‹น ์‚ฌ์ง„๋„ ํ•˜๋‚˜๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒŒ ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค
โ€ข
ERD ์ˆ˜์ •
โ—ฆ
ERD ๋‚ด์—์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ๋ฉ”๋‰ด FK์™€ ๊ฐ€๊ฒŒFK๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ, ๋ฉ”๋‰ด ์—”ํ‹ฐํ‹ฐ์—์„œ๋Š” ๊ฐ€๊ฒŒ FK๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋‹ˆ ERD ์„ค๊ณ„ ์˜์•„
โ—ฆ
๊ฐ€๊ฒŒ FK๋ฅผ ๋„ฃ์ง€ ๋ง๊ณ  ์žฅ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ๊ฐ€๊ฒŒ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰
โ€ข
์ปค๋ฐ‹ ํ”ผ์•Œ
โ—ฆ
ํ”ผ์•Œ์„ ์ž์ฃผ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š”์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ๋‹ค ์™„๋ฃŒ๋˜๊ณ  ๋‚˜์„œ ํ”ผ์•Œํ•˜๋Š” ๊ฑธ ํ•˜๋Š”์ง€
โ—ฆ
์ปค๋ฐ‹์€ ์ž์ฃผ, ํ”ผ์•Œ์„ ๋„๋ฉ”์ธ ์ „๋ถ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์™„๋ฃŒ ํ›„
โ€ข
๊ฐ€๊ฒŒ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, Valid
โ—ฆ
๊ฐ€๊ฒŒ ์ด๋ฆ„, ์ฃผ์†Œ, ์†Œ๊ฐœ๊ธ€์€ Unique ํ•˜์ง€ ์•Š์•„๋„ ๋  ๊ฑฐ ๊ฐ™๋‹ค
โ—ฆ
๊ฐ€๊ฒŒ ์‚ฌ์ง„์€ Unique
โ—ฆ
์Œ์‹ ์นดํ…Œ๊ณ ๋ฆฌ, ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ๋“ฑ ์€ Vaild ์ฒ˜๋ฆฌ
โ–ช
์นดํ…Œ๊ณ ๋ฆฌ - ํ•œ๊ธ€ ์ž…๋ ฅ ๊ฐ€๋Šฅ
โ–ช
์ฃผ์†Œ - ํ•œ๊ธ€, ์˜์–ด, ํ•˜์ดํ”ˆ๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ
โ€ข
(regexp = "^[a-zA-Z0-9๊ฐ€-ํžฃ-]+$")
โ–ช
์ „ํ™”๋ฒˆํ˜ธ - ํ•˜์ดํ”ˆํฌํ•จ ์ˆซ์ž๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ

์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ

โ€ข
RefreshToken DB๋กœ Redis๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?
โ—ฆ
Redis - ์ธ ๋ฉ”๋ชจ๋ฆฌ DB - ํ…Œ์ด๋ธ”๋งŒ ์žˆ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
โ–ช
๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค
โ–ช
๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฅด๋‹ค
โ–ช
๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ข‹๋‹ค
โ–ช
NoSQL
โ–ช
๊ฒ€์ฆ์„ ์•ˆํ•˜๊ณ  ๋ฐ”๋กœ ๋ฎ์–ด ์”Œ์šฐ๋ฉด ๋œ๋‹ค - ํœ˜๋ฐœ์„ฑ์ด ๊ฐ•ํ•จ
โ—ฆ
H2
โ–ช
๊ด€๊ณ„ํ˜• DB
โ–ช
๋‚ด๋ถ€์ ์œผ๋กœ ๋ฆด๋ ˆ์ด์…˜์„ ์žก๋Š”๋‹ค
โ–ช
์Šคํ‚ค๋งˆ๊ฐ€ ์กด์žฌ
โ–ช
๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ์—ฐ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค
โ–ช
Redis ๋Œ€๋น„ ๋Š๋ฆฌ๋‹ค
โ€ข
๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ—ฆ
์งˆ๋ฌธ:
โ—ฆ
Redis์— ์ €์žฅํ•œ Refresh Token์„ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„์„ ํ–ˆ๋Š”๋ฐ ์ด ๋ฐฉ๋ฒ•์ด ๋งž๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค
โ—ฆ
Refresh Token์„ ์‚ญ์ œํ•ด๋„ Access Token์„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ๋กœ๊ทธ์ธ ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š๋‚˜?
โ–ช
๋‹ต๋ณ€:
โ–ช
๋ฐฑ์—”๋“œ์—์„œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด์„œ ํ”„๋ก ํŠธ์—๋‹ค๊ฐ€ ๋‚ด๋ ค์ฃผ๋Š”๋ฐ ํ”„๋ก ํŠธ ์‚ฌ์ด๋“œ์—์„œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค
โ–ช
๋กœ๊ทธ์•„์›ƒ์„ ๊ตฌํ˜„ ํ•  ๊ฒฝ์šฐ์—๋Š” ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋‚ ๋ ค์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.
โ–ช
์–ด์ฐจํ”ผ Redis์— Refresh Token์„ ์ €์žฅํ•  ๋•Œ ์‹œ๊ฐ„์„ ์ง€์ •ํ•ด์ค˜์„œ ๋งŒ๋ฃŒ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์—
โ€ข
์œ„์˜ ๋‹ต๋ณ€์„ ๋“ฃ๊ณ  ๊ถ๊ธˆํ•œ ์ 
โ—ฆ
๊ทธ๋Ÿผ Access Token๋งŒ์„ ํ”„๋ก ํŠธ์‚ฌ์ด๋“œ์—์„œ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์—์„œ ์‚ญ์ œ์‹œํ‚จ๋‹ค๋ฉด, Refresh Token์€ ์žˆ์œผ๋‹ˆ๊นŒ ์ธ๊ฐ€๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉด Refresh Token์„ ํ†ตํ•œ Access Token์„ ๋‹ค์‹œ ๋ฐœ๊ธ‰ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ์•„์›ƒ์ด ๋๋‹ค๊ณ  ๋ณด๊ธฐ ํž˜๋“ค์ง€ ์•Š๋‚˜?
โ—ฆ
Refresh Token๊นŒ์ง€๋„ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์‚ญ์ œ๋ฅผ ์‹œํ‚จ๋‹ค๊ณ  ์ณ๋„, Redis DB์—์„œ๋Š” ์‚ญ์ œ๋ฅผ ์‹œํ‚ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Refresh Token์„ ํƒˆ์ทจ ๋‹นํ–ˆ์„ ๋•Œ Access Token์„ ๊ณ„์† ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์ง€ ์•Š๋‚˜?
โ€ข
๋‚˜๋Š” Redis DB์—์„œ๋„ Refresh Token์„ ์‚ญ์ œํ•˜๋Š” ๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค