- ๐ Goal: "์คํ๋ง ๋ถํธ๋ก ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ด ์๋ ๋๋ง์ ๋ฐฑ์๋ ์๋ฒ ๋ง๋ค๊ธฐ"
-
์ ์ฒด ๊ฒ์๊ธ ๋ชฉ๋ก ์กฐํ API
- ์ ๋ชฉ, ์์ฑ์๋ช , ์์ฑ ๋ด์ฉ, ์์ฑ ๋ ์ง๋ฅผ ์กฐํํ๊ธฐ
- ์์ฑ ๋ ์ง ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ธฐ
-
๊ฒ์๊ธ ์์ฑ API
- ์ ๋ชฉ, ์์ฑ์๋ช , ๋น๋ฐ๋ฒํธ, ์์ฑ ๋ด์ฉ์ ์ ์ฅํ๊ณ
- ์ ์ฅ๋ ๊ฒ์๊ธ์ Client ๋ก ๋ฐํํ๊ธฐ
-
์ ํํ ๊ฒ์๊ธ ์กฐํ API
- ์ ํํ ๊ฒ์๊ธ์ ์ ๋ชฉ, ์์ฑ์๋ช , ์์ฑ ๋ ์ง, ์์ฑ ๋ด์ฉ์ ์กฐํํ๊ธฐ (๊ฒ์๊ธฐ๋ฅ x)
-
์ ํํ ๊ฒ์๊ธ ์์ API
- ์์ ์ ์์ฒญํ ๋ ์์ ํ ๋ฐ์ดํฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ด ๋ณด๋ด์ ์๋ฒ์์ ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธ ํ ํ
- ์ ๋ชฉ, ์์ฑ์๋ช , ์์ฑ ๋ด์ฉ์ ์์ ํ๊ณ ์์ ๋ ๊ฒ์๊ธ์ Client ๋ก ๋ฐํํ๊ธฐ
-
์ ํํ ๊ฒ์๊ธ ์ญ์ API
- ์ญ์ ๋ฅผ ์์ฒญํ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ด ๋ณด๋ด์ ์๋ฒ์์ ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธ ํ ํ
- ์ ํํ ๊ฒ์๊ธ์ ์ญ์ ํ๊ณ Client ๋ก ์ฑ๊ณตํ๋ค๋ ํ์ ๋ฐํํ๊ธฐ
-
ํ์ ๊ฐ์ API
- username, password๋ฅผ Client์์ ์ ๋ฌ๋ฐ๊ธฐ
- username์
์ต์ 4์ ์ด์, 10์ ์ดํ์ด๋ฉฐ ์ํ๋ฒณ ์๋ฌธ์(a~z), ์ซ์(0~9)
๋ก ๊ตฌ์ฑ - password๋
์ต์ 8์ ์ด์, 15์ ์ดํ์ด๋ฉฐ ์ํ๋ฒณ ๋์๋ฌธ์(a~z, A~Z), ์ซ์(0~9)
๋ก ๊ตฌ์ฑ - DB์ ์ค๋ณต๋ username์ด ์๋ค๋ฉด ํ์์ ์ ์ฅํ๊ณ Client ๋ก ์ฑ๊ณตํ๋ค๋ ๋ฉ์์ง, ์ํ์ฝ๋ ๋ฐํํ๊ธฐ
-
๋ก๊ทธ์ธ API
- username, password๋ฅผ Client์์ ์ ๋ฌ๋ฐ๊ธฐ
- DB์์ username์ ์ฌ์ฉํ์ฌ ์ ์ฅ๋ ํ์์ ์ ๋ฌด๋ฅผ ํ์ธํ๊ณ ์๋ค๋ฉด password ๋น๊ตํ๊ธฐ
- ๋ก๊ทธ์ธ ์ฑ๊ณต ์, ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ ์ ์ ์ ์ ๋ณด์ JWT๋ฅผ ํ์ฉํ์ฌ ํ ํฐ์ ๋ฐ๊ธํ๊ณ , ๋ฐ๊ธํ ํ ํฐ์ Header์ ์ถ๊ฐํ๊ณ ์ฑ๊ณตํ๋ค๋ ๋ฉ์์ง, ์ํ์ฝ๋ ์ ํจ๊ป Client์ ๋ฐํํ๊ธฐ
- ๊ฒ์๊ธ ์์ฑ API
- ํ ํฐ์ ๊ฒ์ฌํ์ฌ, ์ ํจํ ํ ํฐ์ผ ๊ฒฝ์ฐ์๋ง ๊ฒ์๊ธ ์์ฑ ๊ฐ๋ฅ
- ์ ๋ชฉ, ์์ฑ ๋ด์ฉ์ ์ ์ฅํ๊ณ ์ ์ฅ๋ ๊ฒ์๊ธ์ Client ๋ก ๋ฐํํ๊ธฐ(username์ ๋ก๊ทธ์ธ ๋ ์ฌ์ฉ์)
- ์ ํํ ๊ฒ์๊ธ ์์ API
์์ ์ ์์ฒญํ ๋ ์์ ํ ๋ฐ์ดํฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ด ๋ณด๋ด์ ์๋ฒ์์ ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธ ํ ํ- ํ ํฐ์ ๊ฒ์ฌํ ํ, ์ ํจํ ํ ํฐ์ด๋ฉด์ ํด๋น ์ฌ์ฉ์๊ฐ ์์ฑํ ๊ฒ์๊ธ๋ง ์์ ๊ฐ๋ฅ
- ์ ๋ชฉ, ์์ฑ ๋ด์ฉ์ ์์ ํ๊ณ ์์ ๋ ๊ฒ์๊ธ์ Client ๋ก ๋ฐํํ๊ธฐ
- ์ ํํ ๊ฒ์๊ธ ์ญ์ API
์ญ์ ๋ฅผ ์์ฒญํ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ด ๋ณด๋ด์ ์๋ฒ์์ ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธ ํ ํ- ํ ํฐ์ ๊ฒ์ฌํ ํ, ์ ํจํ ํ ํฐ์ด๋ฉด์ ํด๋น ์ฌ์ฉ์๊ฐ ์์ฑํ ๊ฒ์๊ธ๋ง ์ญ์ ๊ฐ๋ฅ
- ์ ํํ ๊ฒ์๊ธ์ ์ญ์ ํ๊ณ Client ๋ก ์ฑ๊ณตํ๋ค๋ ๋ฉ์์ง, ์ํ์ฝ๋ ๋ฐํํ๊ธฐ
-
๋๊ธ ์์ฑ, ์์ , ์ญ์ API
- ๊ฒ์๊ธ์ ๋๊ธ ์ถ๊ฐํ๊ธฐ
- ํ ํฐ์ ๊ฒ์ฌํ์ฌ, ์ ํจํ ํ ํฐ์ผ ๊ฒฝ์ฐ์๋ง ๋๊ธ ์์ฑ,์์ , ์ญ์ ๊ฐ๋ฅ
- ์ ํํ ๊ฒ์๊ธ์ DB ์ ์ฅ ์ ๋ฌด๋ฅผ ํ์ธํ๊ธฐ
-
์์ธ ์ฒ๋ฆฌ
- ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ํ์ฝ๋์ ๋ฉ์ธ์ง๋ฅผ Client์ ๋ฐํํ๊ธฐ
- ์ ์ฒด ๊ฒ์๊ธ ๋ชฉ๋ก, ์ ํ๊ฒ์๊ธ ์กฐํ API
- ๊ฐ๊ฐ์ ๊ฒ์๊ธ์ ๋ฑ๋ก๋ ๋ชจ๋ ๋๊ธ์ ๊ฒ์๊ธ๊ณผ ๊ฐ์ด Client์ ๋ฐํํ๊ธฐ
- ๋๊ธ์ ์์ฑ ๋ ์ง ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ธฐ
- Spring Security๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ/์ธ๊ฐ ๊ตฌํํ๊ธฐ
- ์ข์์ ๊ธฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ์ ํํ ๊ฒ์๊ธ&๋๊ธ์ "์ข์์"๋ฅผ ํ ์ ์๋ค
- ์ด๋ฏธ "์ข์์"๋ฅผ ๋๋ฅธ ๋๊ธ์ ๋ค์ ์์ฒญํ๋ฉด "์ข์์" ๊ธฐ๋ก์ด ์ทจ์๋๋ค.
- ์์ธ์ฒ๋ฆฌ AOP ๊ตฌํ
- ์์ธ์ฒ๋ฆฌ๋ AOP๋ฅผ ํ์ฉํ์ฌ ๊ตฌํํ๋ค.