Skip to content

100-hours-a-week/KTB3-HALO-COMMUNITY-BE

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

262 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Our Universe

Back-end ์†Œ๊ฐœ

  • ์šฐ์ฃผ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์šฐ์ฃผ์— ๋Œ€ํ•ด ์†Œํ†ตํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐˆ ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ ํŠน์„ฑ์ƒ ํ™•์žฅ์ด ์šฉ์ดํ•˜๊ณ  ์˜์กด์„ฑ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์šด ๊ทธ๋ฆฌ๊ณ  MVP ์›น์‚ฌ์ดํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” Spring Boot ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ปจ์…‰

๊ฐœ๋ฐœ ์ธ์› ๋ฐ ๊ธฐ๊ฐ„

  • ๊ฐœ๋ฐœ๊ธฐ๊ฐ„ : 2024-10-03 ~ 2024-12-07
  • ๊ฐœ๋ฐœ ์ธ์› : ํ”„๋ก ํŠธ์—”๋“œ/๋ฐฑ์—”๋“œ 1๋ช… (๋ณธ์ธ)

์‚ฌ์šฉ ๊ธฐ์ˆ  ๋ฐ tools

  • Spring Boot
  • JPA, lombok : ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ ํ–ฅ์ƒ ๋ฐ DB ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ ์ž๋™ํ™”
  • AWS : Auto Scaling Group, Application Load Balancer, Route 53, API Gateway, Lamdba, RDS, VPC, Lamdba
  • Docker : ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ ๋ฐ ํ™˜๊ฒฝ์—์„œ ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ฆฌ๊ณ  CI/CD์— ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ฆด ๋•Œ ๋งค๋ฒˆ ๊ฐ™์€ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Docker Compse : docker ์‹คํ–‰ ์‹œ, ์˜ˆ๋ฏผํ•œ ๊ฐ’๋“ค์ด ๋“ค์–ด์žˆ๋Š” envํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๊ณ  ์ถ”ํ›„์— ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ๋™์‹œ์— ๋„์šธ ๋•Œ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Github Actions : ์ปจํ…Œ์ด๋„ˆ์˜ ํ™˜๊ฒฝ ์•ˆ์—์„œ ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ๊ณผ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋ ค๊ณ  ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค

์„œ๋น„์Šค ์‹œ์—ฐ ์—ฐ์ƒ

Front-end


์„œ๋ฒ„ ์„ค๊ณ„

1. ์„œ๋ฒ„ ๊ตฌ์กฐ(3 ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ)

Auth

Controller Service Repository
login LoginController LoginService UserRepository
logout LogoutController LogoutService UserRepository
signup SignUpController SignUpService UserRepository
refresh TokenRefreshController TokenRefreshService UserRepository

Comment

Controller Service Repository
CRUD CommentController CommentService CommentRepository

Post

Controller Service Repository
CRUD PostController PostService PostRepository
like PostLikeController PostLikeService PostLikeRepository

User

Controller Service Repository
CRUD UserController UserService UserRepository
password PasswordController PassWordService UserRepository
profile ProfileController UserService UserRepository

2. ๊ตฌํ˜„ ๊ธฐ๋Šฅ

Auth

- Spring Security๊ฐ€ AuthenticationProvider์— Bcrypt ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„
  - Bcrypt์˜ ์•ˆ์ „ํ•˜์ง€๋งŒ ์•”ํ˜ธํ™”๊ฐ€ ๋А๋ฆฐ Blowfish๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๋กœ๊ทธ์ธ์ด ๋˜์ง€ ์•Š๊ฒŒ ํ•จ์œผ๋กœ์„œ ๋กœ๊ทธ์ธ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ ๋Œ€๋น„
- ์„œ๋ฒ„์˜ ๋กœ๊ทธ์ธ ์ •๋ณด ์ €์žฅ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•˜์—ฌ Jwt ํ† ํฐ ์‚ฌ์šฉ
- ๋กœ๊ทธ์ธ ์œ ์ง€ ๊ธฐ๊ฐ„์„ ๋„๋ฉ”์ธ๋ณ„ ์ฟ ํ‚ค(๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ)์— ์ €์žฅํ•˜์—ฌ ์ธ๊ฐ€์— ์‚ฌ์šฉ๋˜๋Š” ์•ก์„ธ์Šค ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ, ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์•ก์„ธ์Šค ํ† ํฐ ์žฌ ๋ฐœ๊ธ‰ ์š”์ฒญํ•˜๋Š” ๋กœ์ง ๊ตฌํ˜„

Users

- ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค ํƒˆํ‡ด ํ›„ ๋ณต๊ตฌ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์œ ์ € ์†Œํ”„ํŠธ ์‚ญ์ œ ๊ตฌํ˜„ 
- ์†Œํ”„ํŠธ ์‚ญ์ œ ํ›„, 1๋‹ฌ ์ดํ›„ DB์— ํ•„์š”์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•˜์—ฌ  ํ•˜๋“œ ์‚ญ์ œ ๊ตฌํ˜„
- ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•˜๋“œ ์ฝ”๋”ฉ์„ ๋ฐฉ์ง€ ํ•˜๊ธฐ ์œ„ํ•ด ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ์‹œ bcrypt๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ฒ˜๋ฆฌ
- User CRUD ๊ตฌํ˜„

Posts

- ํ”„๋ก ํŠธ๊ฐ€ ํ˜‘์—…์‹œ ํ•˜๋‚˜์˜ API๋กœ ์ข‹์•„์š” ๋ฐ ์ข‹์•„์š” ์ทจ์†Œ ์š”์ฒญ ๋ณด๋‚ด๋„๋ก ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ํ† ๊ธ€ ํ˜•์‹ ๊ธฐ๋Šฅ ๊ตฌํ˜„
- ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๋งŒ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ์œ ํšจํ•œ ์•ก์„ธ์Šค ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„
- ๊ฒŒ์‹œ๊ธ€ CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

Comments

- ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ๋Œ“๊ธ€ ์‚ญ์ œ ๋ฐ ์ˆ˜์ •์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์™€ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ž์˜ ID๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฉ”๋‚˜ ํ•ด๋‹น ๋Œ“๊ธ€์„ ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„
- ๋Œ“๊ธ€ CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

Common

- ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ, ๋Œ“๊ธ€ ๋“ฑ๋ก ๊ทธ๋ฆฌ๊ณ  ์œ ์ € ๊ฒ€์ƒ‰ ๋“ฑ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ธ๋“ค๋Ÿฌ ๊ตฌํ˜„
  - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์˜ˆ์™ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๋„๋ฉ”์ธ๋ณ„ ์˜ˆ์™ธ ๊ตฌํ˜„์ฒด๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.
- API ์„ฑ๊ณต ๋ฐ ์‹คํŒจ ์‘๋‹ต ์ฝ”๋“œ๋“ค์„ ๋„๋ฉ”์ธ ๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜์˜€๋‹ค.
- API๋ฅผ RestFulํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์˜ ํ˜•ํƒœ๋กœ URL ๊ทธ๋ฆฌ๊ณ  ํ–‰์œ„๋กœ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ ๋ฐ ํ˜‘์—…์— ์šฉ์ดํ•˜๊ฒŒ ๊ตฌํ˜„


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

1. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„

์ธ์ฆ

  • ์‚ฌ์šฉ์ž๋Š” ์ด๋ฉ”์ผ, ๋‹‰๋„ค์ž„ ๊ทธ๋ฆฌ๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์›๊ฐ€์ž…
  • ์‚ฌ์šฉ์ž๋Š” ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ
  • ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ๋งŒ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉ์ž์˜ ๊ณ„์ • ํƒˆํ‡ด

์œ ์ € ๊ด€๋ฆฌ

  • ์‚ฌ์šฉ์ž๋Š” ์ด๋ฉ”์ผ, ํ”„๋กœํ•„ ์ด๋ฏธ์ง€, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋‹‰๋„ค์ž„ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํ”„๋กœํ•„ ์ •๋ณด ๋ฐ ์ˆ˜์ • ๊ฐ€๋Šฅ
  • ๊ฐ ์œ ์ €๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฉ”์ผ๊ณผ ๋‹‰๋„ค์ž„์€ ์œ ๋‹ˆํฌํ•˜๊ฒŒ ์„ค์ •ํ•˜์—ฌ ์ค‘๋ณต ๋ฐฉ์ง€

๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๋ชฉ, ๋‚ด์šฉ, ์ด๋ฏธ์ง€, ์ž‘์„ฑ์ผ์‹œ, ์ˆ˜์ •์ผ์‹œ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ
  • ๊ฒŒ์‹œ๊ธ€์€ ์ž‘์„ฑ์ž๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ์„ค์ •
  • ์‚ฌ์šฉ์ž์˜ ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ์ •๋ณด๋ฅผ ๋ณ„๋„์˜ Table๋กœ ๋ถ„๋ฆฌ

๋Œ“๊ธ€ ๊ด€๋ฆฌ

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด์šฉ, ์ž‘์„ฑ์ž, ์ž‘์„ฑ์ผ์‹œ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๋Œ“๊ธ€ ๊ด€๋ฆฌ
  • ๋Œ“๊ธ€์€ ์–ด๋–ค ๊ฒŒ์‹œ๊ธ€์— ์†ํ•ด ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ฐธ์กฐ ํฌํ•จ

2. ๋ชจ๋ธ๋ง

E-R Diagram

https://www.erdcloud.com/d/H99Loa24Gz6eWB8LM

์š”๊ตฌ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ๋งํ•œ E-R Diagram์ž…๋‹ˆ๋‹ค.



์ธํ”„๋ผ ์„ค๊ณ„

1. AWS ์•„ํ‚คํ…์ฒ˜

image


์ถ”ํ›„ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์™€ DB๋ฅผ ํ”„๋ผ์ด๋น— ์„œ๋ฒ„์— ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€ ์‚ฌ์„ค๋ง์ธ VPC๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์•ˆ์ •์ ์ธ ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ณ„๋กœ ์„œ๋ฒ„์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณ€ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” Auto Scaling Group๊ธฐ๋ฐ˜ Application Load Balancer ์‚ฌ์šฉํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  Docker Compose์™€ DockerFile์„ ํ™œ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ์†Œ๋ฉธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ env ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋„์ปคํŒŒ์ผ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ compose๋กœ ๋ถ„๋ฆฌํ•˜์˜€๋‹ค.

  • Auto Scaling Group(ASG) : ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์‹œ ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฒŒ ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ๋ณ„๋กœ ์ ์ ˆํ•œ ์„œ๋ฒ„ ๋น„์šฉ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Application Load Balancer(ALB) : ASG์— ๋“ค์–ด๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ๋“ค์„ ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ์‹œํ‚ค๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ธก์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Route 53 : ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์„ ALB์™€ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ  ํ—ฌ์Šค์ฒดํฌ๋ฅผ ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜์˜€์”๋‹ˆ๋‹ค.
  • API Gateway : ์„œ๋ฒ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ServerLess ๋ฆฌ์†Œ์Šค๋“ค์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋”ฐ๋กœ ๊ฐ€๋กœ์ฑ„๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Lamdba : ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋™์‹œ์— ์ €์žฅํ•  ์ˆ˜๋„ ์žˆ๋Š”, ์ผ๋ฐ˜ API ๋ณด๋‹ค ๋งŽ์€ ์š”์ฒญ,๋“ค์€ Lamdba๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ๋ถ€๋‹ด์ด ๋˜์ง€ ์•Š๊ธฐ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • S3 : ์ด๋ฏธ์ง€๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ DB์— ์ €์žฅํ•˜๋ฉด ๋น„์šฉ์ ์œผ๋กœ ๋ถ€๋‹ด์ด ๋˜์–ด AWS์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” S3์— ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • VPC : ์ถ”ํ›„ ๋ฐฑ์—”๋“œ ๋ฐ RDS๊ฐ™์€ ๊ณต๊ฐœ๋˜๋ฉด ์œ„ํ—˜ํ•œ ์„œ๋ฒ„๋“ค์„ ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด, ๊ฐ€์ƒ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ๋ง์„ ๊ตฌ์ถ•ํ•˜๋ ค๊ณ  ํ•ด๋‹น ๋ฆฌ์†Œ๋ฅด๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • RDS : DB์— ๋Œ€ํ•œ ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ฃผ๊ณ  CloudWatch๋กœ DB ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ด€์ฐฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  1. ์ปค์Šคํ…€ ์‹œํ๋ฆฌํ‹ฐ ๊ตฌํ˜„์‹œ ์Šค๋ ˆ๋“œ ๋กœ์ปฌ์ด ํ•„์š”ํ–ˆ๋˜ ๋ฌธ์ œ ๊ฐ ์š”์ฒญ ์ธ์ฆ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์Šค๋ ˆ๋“œ ๋กœ์ปฌ์„ ๊ตฌํ˜„ํ•  ํ•„์š”์„ฑ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—ThreadLocal ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ์ธ์ฆ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” CustomSecurityContextHolder๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ

  • ์ธ์ฆ ๋ฐ ์ธ๊ฐ€
  1. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ Proivder๋ฅผ ์„ ํƒํ•  ๋•Œ, argon2, bcrypt ๊ทธ๋ฆฌ๊ณ  pbkdf2 ๊ฐ™์€ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์ด Default๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ์ฝ”๋“œ์ƒ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ฒฝํ—˜์ด์˜€๋‹ค.
  2. JWT๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ผ์ •๋ถ€๋ถ„ ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์„œ๋ฒ„์˜ ์ง์ ‘์ ์ธ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š์ง€๋งŒ ๊ทธ ์„œ๋ฒ„๊ฐ€ ๊ฐœ์ž…ํ•˜์ง€ ์•Š๋Š”, ์ฆ‰ jwt ์•ก์„ธ์Šค ํ† ํฐ์ด ์‚ด์•„์žˆ๋Š” ๊ธฐ๊ฐ„ ๋™์•ˆ ํ•ดํ‚น์„ ๋‹นํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋ฐ”๋กœ ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ์™„๋ฒฝํ•œ ๋ณด์•ˆ์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ผ๋Š” ๊ฒƒ์ด ์”์“ธํ•˜๊ฒŒ ๋А๊ปด์กŒ์—ˆ๋‹ค.


  • RestFull API

1. URL์— ๋ฆฌ์†Œ์Šค๋ฅผ ๊ทธ๋ฆฌ๊ณ  ๋ฉ”์„œ๋“œ์— ํ–‰์œ„๋ฅผ ์ ๊ณ  ์ด๊ฒƒ์„ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ํ•ด๋‹น ์ปจํ…์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋“œ๋Š” ์‹œ๊ฐ„์„ ์ค„์ž„์œผ๋กœ์„œ ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


About

๐Ÿš€ ์šฐ์ฃผ ์—ฌํ–‰์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์šฐ์ฃผ ํƒํ—˜ ํ”Œ๋žซํผ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์•ฑ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 96.2%
  • JavaScript 1.8%
  • Other 2.0%
โšก