Skip to content

lxxjn0/atdd-subway-favorite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš‡ atdd-subway-favorite

์ฆ๊ฒจ์ฐพ๊ธฐ - API ํ…Œ์ŠคํŠธ/๋ฌธ์„œ ์ž๋™ํ™” ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋Š” Repository


1๋‹จ๊ณ„ - ํšŒ์›๊ด€๋ฆฌ ๊ธฐ๋Šฅ

์š”๊ตฌ ์‚ฌํ•ญ

  • ํšŒ์› ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์ž์‹ ์˜ ์ •๋ณด๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์•ผํ•˜๋ฉฐ ๋กœ๊ทธ์ธ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•จ
  • ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์™€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ํ† ํฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ๋ณธ์ธ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€
  • side case์— ๋Œ€ํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
  • API ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ํŽ˜์ด์ง€ ์—ฐ๋™

To-do list

  • Login ๋ฉค๋ฒ„์˜ ํšŒ์› ๊ด€๋ฆฌ
    • ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
    • Controller ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
      • API ๋ฌธ์„œํ™”
    • Service ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
    • Domain ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
    • Interceptor ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
    • Front์™€ ์—ฐ๋™
      • ํšŒ์›๊ฐ€์ž…
      • ๋กœ๊ทธ์ธ
      • ํšŒ์›์ •๋ณด ์ˆ˜์ •
      • ํƒˆํ‡ด
    • ์ถ”๊ฐ€ ๊ธฐ๋Šฅ
      • ์ค‘๋ณต๋˜๋Š” ํ…Œ์ŠคํŠธ ๋ณ€์ˆ˜
      • ๋กœ๊ทธ์•„์›ƒ

2๋‹จ๊ณ„ - ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ

์š”๊ตฌ์‚ฌํ•ญ

  • ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€(์ถ”๊ฐ€,์‚ญ์ œ,์กฐํšŒ)
  • ์ž์‹ ์˜ ์ •๋ณด๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์•ผํ•˜๋ฉฐ ๋กœ๊ทธ์ธ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•จ
  • ํ† ํฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ๋ณธ์ธ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€(interceptor, argument resolver)
  • side case์— ๋Œ€ํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•„์ˆ˜
  • ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์™€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • API ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ํŽ˜์ด์ง€ ์—ฐ๋™

To-do list

  • ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ api ๊ตฌํ˜„ (์ถ”๊ฐ€, ์‚ญ์ œ, ์กฐํšŒ)
    • ์ธ์ˆ˜ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
    • ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„
      • ์ปจํŠธ๋กค๋Ÿฌ ํ…Œ์ŠคํŠธ
      • API ๋ฌธ์„œํ™”
    • ์„œ๋น„์Šค ๊ตฌํ˜„
      • ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ
    • DB, Entity ๊ตฌํ˜„
    • ํ”„๋ก ํŠธ ์—ฐ๋™

๋ฆฌํŒฉํ† ๋ง

1์ฐจ ํ”ผ๋“œ๋ฐฑ ๋ฆฌํŒฉํ† ๋ง

  • ๋ฐ˜๋ณต๋˜๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ƒ์ˆ˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ
  • Controller์—์„œ ๋ฐ›๊ฒŒ๋˜๋Š” ๊ฐ’๋“ค์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์ถ”๊ฐ€ํ•˜๊ธฐ
  • FavoriteDocumentation ์˜ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ์ฒ˜๋ฆฌํ•˜๊ธฐ
  • FavoriteService ์˜ ์˜ˆ์™ธ ์ผ€์ด์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑํ•˜๊ธฐ
    • create ์— ๋Œ€ํ•œ ์˜ˆ์™ธ (์ž˜๋ชป๋œ request์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” controller์—์„œ ์ž‘์„ฑํ•จ)
    • delete ์— ๋Œ€ํ•œ ์˜ˆ์™ธ (์กด์žฌํ•˜์ง€ ์•Š๋Š” favorite์— ๋Œ€ํ•œ ์‚ญ์ œ ์š”์ฒญ)
  • WebMvcConfig ํด๋ž˜์Šค์˜ addPathPatterns ๋ฉ”์„œ๋“œ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ
  • ์˜ˆ์™ธ ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•œ ControllerAdvice ๊ตฌํ˜„ํ•˜๊ธฐ

2์ฐจ ํ”ผ๋“œ๋ฐฑ ๋ฆฌํŒฉํ† ๋ง

  • ๋ฐœ์ƒ๋˜๋Š” ์˜ˆ์™ธ๋ฅผ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๊ตฌ์ฒดํ™”ํ•˜๊ธฐ
  • ๊ธฐ์กด์— ์„ ์–ธ๋œ ์ƒ์ˆ˜ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ(์ƒ์ˆ˜ ๊ณต์œ )
  • ํ…Œ์ŠคํŠธ์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ํ•„๋“œํ™”์‹œํ‚ค๊ธฐ
  • ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์„ธ๋ถ„ํ™”์‹œ์ผœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ(ValidateExceptionAdvice ํด๋ž˜์Šค)
    • ํŒจ์Šค์›Œ๋“œ๊ฐ€ ํ‹€๋ ธ๊ฑฐ๋‚˜ ๋กœ์ง์ƒ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ์ฒ˜๋ฆฌ
    • ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ์‹œ ์—๋Ÿฌ ์ฒ˜๋ฆฌ

About

๐Ÿš‡ ์ฆ๊ฒจ์ฐพ๊ธฐ - API ํ…Œ์ŠคํŠธ/๋ฌธ์„œ ์ž๋™ํ™” ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋Š” Repository

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •