์ฆ๊ฒจ์ฐพ๊ธฐ - API ํ ์คํธ/๋ฌธ์ ์๋ํ ๋ฏธ์ ์ ์งํํ๋ Repository
- ํ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ ๊ตฌํ
- ์์ ์ ์ ๋ณด๋ง ์์ ๊ฐ๋ฅํ๋๋ก ํด์ผํ๋ฉฐ ๋ก๊ทธ์ธ์ด ์ ํ๋์ด์ผ ํจ
- ์ธ์ ํ ์คํธ์ ๋จ์ ํ ์คํธ ์์ฑ
- ํ ํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ณธ์ธ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๋ก์ง ์ถ๊ฐ
- side case์ ๋ํ ์์ธ์ฒ๋ฆฌ
- API ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ๋ฌธ์ํ๋ฅผ ์ํ ํ ์คํธ ์์ฑ
- ํ์ด์ง ์ฐ๋
- Login ๋ฉค๋ฒ์ ํ์ ๊ด๋ฆฌ
- ์ธ์ ํ ์คํธ ๊ตฌํ
- Controller ํ
์คํธ ๊ตฌํ
- API ๋ฌธ์ํ
- Service ํ ์คํธ ๊ตฌํ
- Domain ํ ์คํธ ๊ตฌํ
- Interceptor ํ ์คํธ ๊ตฌํ
- Front์ ์ฐ๋
- ํ์๊ฐ์
- ๋ก๊ทธ์ธ
- ํ์์ ๋ณด ์์
- ํํด
- ์ถ๊ฐ ๊ธฐ๋ฅ
- ์ค๋ณต๋๋ ํ ์คํธ ๋ณ์
- ๋ก๊ทธ์์
- ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋ฅ์ ์ถ๊ฐ(์ถ๊ฐ,์ญ์ ,์กฐํ)
- ์์ ์ ์ ๋ณด๋ง ์์ ๊ฐ๋ฅํ๋๋ก ํด์ผํ๋ฉฐ ๋ก๊ทธ์ธ์ด ์ ํ๋์ด์ผ ํจ
- ํ ํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ณธ์ธ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๋ก์ง ์ถ๊ฐ(interceptor, argument resolver)
- side case์ ๋ํ ์์ธ์ฒ๋ฆฌ ํ์
- ์ธ์ ํ ์คํธ์ ๋จ์ ํ ์คํธ ์์ฑ
- API ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ๋ฌธ์ํ๋ฅผ ์ํ ํ ์คํธ ์์ฑ
- ํ์ด์ง ์ฐ๋
- ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋ฅ api ๊ตฌํ (์ถ๊ฐ, ์ญ์ , ์กฐํ)
- ์ธ์ํ ์คํธ ์์ฑ
- ์ปจํธ๋กค๋ฌ ๊ตฌํ
- ์ปจํธ๋กค๋ฌ ํ ์คํธ
- API ๋ฌธ์ํ
- ์๋น์ค ๊ตฌํ
- ์๋น์ค ํ ์คํธ
- DB, Entity ๊ตฌํ
- ํ๋ก ํธ ์ฐ๋
- ๋ฐ๋ณต๋๋ ๋ณ์์ ๋ํ ์์ ์ฒ๋ฆฌํ๊ธฐ
- Controller์์ ๋ฐ๊ฒ๋๋ ๊ฐ๋ค์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฆ ์ถ๊ฐํ๊ธฐ
-
FavoriteDocumentation
์ ์ค๋ณต๋๋ ๋ถ๋ถ ์ฒ๋ฆฌํ๊ธฐ -
FavoriteService
์ ์์ธ ์ผ์ด์ค์ ๋ํ ํ ์คํธ ์์ฑํ๊ธฐ-
create
์ ๋ํ ์์ธ (์๋ชป๋ request์ ๋ํ ํ ์คํธ๋ controller์์ ์์ฑํจ) -
delete
์ ๋ํ ์์ธ (์กด์ฌํ์ง ์๋ favorite์ ๋ํ ์ญ์ ์์ฒญ)
-
-
WebMvcConfig
ํด๋์ค์addPathPatterns
๋ฉ์๋ ํ์ธํ๊ณ ์์ ํ๊ธฐ - ์์ธ ๋ฉ์ธ์ง์ ๋ํ
ControllerAdvice
๊ตฌํํ๊ธฐ
- ๋ฐ์๋๋ ์์ธ๋ฅผ ์ํฉ์ ๋ง๊ฒ ๊ตฌ์ฒดํํ๊ธฐ
- ๊ธฐ์กด์ ์ ์ธ๋ ์์ ์ฌ์ฌ์ฉํ๊ธฐ(์์ ๊ณต์ )
- ํ ์คํธ์์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ณ์๋ฅผ ํ๋ํ์ํค๊ธฐ
- ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ์ธ๋ถํ์์ผ ํ
์คํธํ๊ธฐ(ValidateExceptionAdvice ํด๋์ค)
- ํจ์ค์๋๊ฐ ํ๋ ธ๊ฑฐ๋ ๋ก์ง์ ๋ฐ์ํ๋ ์๋ฌ ์ฒ๋ฆฌ
- ๊ฐ๋ฐ์๊ฐ ์์ํ์ง ๋ชปํ ์๋ฌ๊ฐ ๋ฐ์ ์ ์๋ฌ ์ฒ๋ฆฌ