Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

584 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Shift

๋ฉ”์‹ ์ €์™€ ์‡ผํ•‘ ๊ธฐ๋Šฅ์ด ๊ฒฐํ•ฉ๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ํ˜„๋Œ€์ด์ง€์›ฐ ์ž๋ฐ” ํ’€์Šคํƒ ๊ฐœ๋ฐœ ๊ณผ์ • 6์ธ ํŒ€ ํ”„๋กœ์ ํŠธ๋กœ ๋ฉ”์‹ ์ €/์‡ผํ•‘/์ธ์ฆ ๋„๋ฉ”์ธ์„ 2๋ช…์”ฉ ๋‚˜๋ˆ  ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ด๋‹น ์—ญํ• 

์ธ์ฆ ๋„๋ฉ”์ธ ๋ฐฑ์—”๋“œ (2์ธ ์ค‘ 1)

๊ธฐ์ˆ  ์Šคํƒ

  • Java 21, Spring Boot 3.5, Spring Security
  • JPA(Hibernate)
  • Oracle DB
  • JWT
  • AWS S3(ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ)
  • WebSocket / STOMP(์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…)

์ฃผ์š” ๊ตฌํ˜„

1. JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ + ์ด์ค‘ ๊ฒ€์ฆ

๋ฉ”์‹ ์ €์™€ ์‡ผํ•‘ ๊ธฐ๋Šฅ์ด ๊ณต์กดํ•˜๋Š” ์„œ๋น„์Šค ํŠน์„ฑ์ƒ, ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋ชจํ•˜๋Š” ์„ธ์…˜ ๋ฐฉ์‹๋ณด๋‹ค JWT๊ฐ€ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ JWT๋Š” ํ† ํฐ ์œ ํšจ์„ฑ๋งŒ์œผ๋กœ ์ธ์ฆ์„ ์ฒ˜๋ฆฌํ•ด ํƒˆํ‡ดํ•œ ์‚ฌ์šฉ์ž๋„ ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ ๊ณต๋ฐฑ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. AuthenticationFilter์—์„œ JWT ์œ ํšจ์„ฑ ๊ฒ€์ฆ ํ›„ DB์—์„œ ์‚ฌ์šฉ์ž ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ถ”๊ฐ€๋กœ ํ™•์ธํ•˜๋Š” ์ด์ค‘ ๊ฒ€์ฆ ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•ด, ํƒˆํ‡ด ์‚ฌ์šฉ์ž๋ฅผ ์ฆ‰์‹œ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

2. RTR (Refresh Token Rotation)

๊ณ ์ •๋œ Refresh Token์€ ํƒˆ์ทจ ์‹œ ๋งŒ๋ฃŒ ์ „๊นŒ์ง€ ๊ณ„์† ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ๋ฐœ๊ธ‰ ์š”์ฒญ๋งˆ๋‹ค ๊ธฐ์กด Refresh Token์„ ์ฆ‰์‹œ ํ๊ธฐํ•˜๊ณ  ์ƒˆ ํ† ํฐ์œผ๋กœ ๊ต์ฒดํ–ˆ๊ณ , ์š”์ฒญ ํ† ํฐ๊ณผ DB ์ €์žฅ ํ† ํฐ์ด ๋ถˆ์ผ์น˜ํ•˜๋ฉด ์ฆ‰์‹œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋กœ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. Refresh Token์€ HttpOnly ์ฟ ํ‚ค๋กœ ์ „๋‹ฌํ•ด XSS ๊ณต๊ฒฉ์œผ๋กœ ํƒˆ์ทจ๋˜์ง€ ์•Š๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

3. Soft Delete

์‚ฌ์šฉ์ž๊ฐ€ ํƒˆํ‡ดํ•ด๋„ ๊ด€๋ จ๋œ ์นœ๊ตฌ์˜ ์„ ๋ฌผ ๋‚ด์—ญ, ์ฑ„ํŒ… ๊ธฐ๋ก์€ ๋ณด์กด๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. DELETED_AT ์ปฌ๋Ÿผ๊ณผ @SQLRestriction์œผ๋กœ ํƒˆํ‡ด ๊ณ„์ •์„ ์กฐํšŒ์—์„œ ์ž๋™ ์ œ์™ธํ•˜๊ณ , loginId๋ฅผ deleted_{userId}๋กœ ๋งˆ์Šคํ‚นํ•ด ๋™์ผ ์•„์ด๋””๋กœ ์žฌ๊ฐ€์ž…์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์†ก ์ค‘์ธ ์ฃผ๋ฌธ์ด ์žˆ์œผ๋ฉด ํƒˆํ‡ด ์ž์ฒด๋ฅผ ์ฐจ๋‹จํ•ด ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ด€๋ จ ์•ˆ๋‚ด

๋ถ€ํŠธ์บ ํ”„ ๊ธฐ๊ฐ„ ์ค‘ ์‚ฌ์šฉํ•œ AWS ํ”„๋ฆฌํ‹ฐ์–ด๊ฐ€ ๋งŒ๋ฃŒ๋˜์–ด S3 ์—ฐ๋™์„ ๋น„๋กฏํ•œ ์ผ๋ถ€ ์ธํ”„๋ผ๊ฐ€ ํ˜„์žฌ ๋น„ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ๋ฐ๋ชจ๋ณด๋‹ค๋Š” ์ฝ”๋“œ ๋ ˆ๋ฒจ ๊ฒ€ํ† ๋ฅผ ์œ„ํ•œ ์ฐธ๊ณ ์šฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages