- ์ผ์ ์์ฑ,์์ ,์กฐํ ์ ๋ฐํ ๋ฐ์ ์ผ์ ์ ๋ณด์ ๋น๋ฐ๋ฒํธ๋ ์ ์ธ ๋์ด์ผ ํ๋ค.
- ์ผ์ ์์ , ์ญ์ ์ ์ ํํ ์ผ์ ์ ๋น๋ฐ๋ฒํธ์ ์์ฒญํ ๋ ํจ๊ป ๋ณด๋ธ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅ
- ํ ์ผ ์ ๋ชฉ, ํ ์ผ ๋ด์ฉ, ๋ด๋น์, ๋น๋ฐ๋ฒํธ, ์์ฑ์ผ ์ ์ ์ฅ ํ ์ ์๋ค.
- ์ ์ฅ๋ ์ผ์ ์ ๋ณด๋ฅผ ๋ฐํ ๋ฐ์ ํ์ธํ ์ ์๋ค.
- ์ ํํ ์ผ์ ์ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋ค.
- ๋ฑ๋ก๋ ์ผ์ ์ ์ฒด๋ฅผ ์กฐํ ํ ์ ์๋ค.
- ์กฐํ๋ ์ผ์ ๋ชฉ๋ก์ ์์ฑ์ผ ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ ๋์ด์๋ค.
- ์ ํํ ์ผ์ ์ ํ ์ผ ์ ๋ชฉ, ํ ์ผ ๋ด์ฉ, ๋ด๋น์๋ฅผ ์์ ํ ์ ์์ต๋ค.
- ์๋ฒ์ ์ผ์ ์์ ์ ์์ฒญํ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํจ๊ป ์ ๋ฌ๋๋ค.
- ์์ ๋ ์ผ์ ์ ์ ๋ณด๋ฅผ ๋ฐํ ๋ฐ์ ํ์ธ ํ ์ ์๋ค.
- ์ ํํ ์ผ์ ์ ์ญ์ ํ ์ ์๋ค.
- ์๋ฒ์ ์ผ์ ์ญ์ ๋ฅผ ์์ฒญํ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํจ๊ป ์ ๋ฌํ๋ค.
- ์์ , ์ญ์ ์ ์์ฒญํ ๋ ๋ณด๋ด๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ ๋
- ์ ํํ ์ผ์ ์ ๋ณด๊ฐ ์ด๋ฏธ ์ญ์ ๋์ด ์กฐํํ ์ ์์ ๋
- ์ญ์ ํ๋ ค๋ ์ผ์ ์ ๋ณด๊ฐ ์ด๋ฏธ ์ญ์ ์ํ์ผ ๋
7๋จ๊ณ ๊ธฐ๋ฅ : Swagger ํ์ฉ & ํ๋ผ๋ฏธํฐ ์ ํจ์ฑ ๊ฒ์ฌ, null ์ฒดํฌ ๋ฐ ํน์ ํจํด์ ๋ํ ๊ฒ์ฆ ์ํ
- Swagger
- wagger UI๋ฅผ ํตํด API ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
- Swagger UI๋ฅผ ํตํด API ํ ์คํธ๋ฅผ ํ ์ ์๋ค.
- ์ ํจ์ฑ ๊ฒ์ฌ
- ํ ์ผ ์ ๋ชฉ์ ์ต๋ 200์ ์ด๋ด๋ก ์ ํ, ํ์๊ฐ ์ฒ๋ฆฌ
- ๋น๋ฐ๋ฒํธ๋ ํ์๊ฐ ์ฒ๋ฆฌ
- ๋ด๋น์๋ ์ด๋ฉ์ผ ํ์์ ๊ฐ๋๋ก ์ฒ๋ฆฌ
- ์ฌ์ฉ์๋ ํ์ผ์ ์
๋ก๋ ํ ์ ์์ต๋๋ค. ์
๋ก๋๋ ํ์ผ์ ๊ฐ์ธ PC์ ์ ์ฅํ๋ค.
- ํน์ ํ์ผ ํ์๋ง์ ์ ๋ก๋ํ ์ ์๋๋ก ๊ตฌํํ ์ ์๋ค.
- JPG, PNG, JPEG ๋ฑ ์ด๋ฏธ์ง
- ์ฃผ์ด์ง ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ JUnit๊ณผ Mockito๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑ
- ์ด๋ฅผ ํตํด ๊ฐ ๊ธฐ๋ฅ์ด ์๋ํ ๋๋ก ๋์ํ๋์ง ๊ฒ์ฆ
- ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋์ด๊ธฐ ์ํด Jacoco๋ฅผ ํ์ฉํ์ฌ ํ ์คํธ ์ฝ๋๊ฐ ๋์ ์ฝ๋๋ฅผ 80% ์ด์ ์ปค๋ฒํ๋๋ก ๋ชฉํ๋ฅผ ์ค์
- ์ํํธ์จ์ด์ ํ์ง์ ๋์ด๊ณ ์์ ์ฑ์ ๋ณด์ฅํ๋ค.
- ์ง๋ ๊ณผ์ ์์ ๋ง๋ ์ผ์ ์ ๋๊ธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ERD ์๋ ๋๊ธ ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.
- ๊ฐ ์ผ์ ์ ๋๊ธ์ ์์ฑํ ์ ์๋๋ก ๊ด๋ จ ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ ์ฐ๊ด ๊ด๊ณ๋ฅผ ์ค์ ํฉ๋๋ค.
- ๋งคํ ๊ด๊ณ๋ฅผ ์ค์ ํฉ๋๋ค. (1:1 or N:1 or N:M)
- ์ ํํ ์ผ์ ์ด ์๋ค๋ฉด ๋๊ธ์ ๋ฑ๋กํฉ๋๋ค.
- ๋๊ธ์ด ๋ฑ๋ก๋์๋ค๋ฉด client์๊ฒ ๋ฐํํฉ๋๋ค.
- ์ ํํ ์ผ์ ์ด DB์ ์ ์ฅ๋์ด ์์ด์ผ ํฉ๋๋ค.
- ๋๊ธ์ ์๋ณํ๋ ๊ณ ์ ๋ฒํธ, ๋๊ธ ๋ด์ฉ, ๋๊ธ์ ์์ฑํ ์ฌ์ฉ์ ์์ด๋, ๋๊ธ์ด ์์ฑ๋ ์ผ์ ์์ด๋, ์์ฑ์ผ์๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
- ์ ํํ ์ผ์ ์ ID๋ฅผ ์ ๋ ฅ ๋ฐ์ง ์์ ๊ฒฝ์ฐ
- ๋๊ธ ๋ด์ฉ์ด ๋น์ด ์๋ ๊ฒฝ์ฐ
- ์ผ์ ์ด DB์ ์ ์ฅ๋์ง ์์ ๊ฒฝ์ฐ
- ์ ํํ ์ผ์ ์ ๋๊ธ์ ์์ ํฉ๋๋ค.
- ๋๊ธ์ด ์์ ๋์๋ค๋ฉด ์์ ๋ ๋๊ธ์ ๋ฐํํฉ๋๋ค.
- ๋๊ธ ๋ด์ฉ๋ง ์์ ๊ฐ๋ฅํฉ๋๋ค.
- ์ ํํ ์ผ์ ๊ณผ ๋๊ธ์ด DB์ ์ ์ฅ๋์ด ์์ด์ผ ํฉ๋๋ค.
- ์ ํํ ์ผ์ ์ ID๋ฅผ ์ ๋ ฅ ๋ฐ์ง ์์ ๊ฒฝ์ฐ
- ์ผ์ ์ด๋ ๋๊ธ์ด DB์ ์ ์ฅ๋์ง ์์ ๊ฒฝ์ฐ
- ์ ํํ ๋๊ธ์ ์ฌ์ฉ์๊ฐ ํ์ฌ ์ฌ์ฉ์์ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ
- ์ ํํ ์ผ์ ์ ๋๊ธ์ ์ญ์ ํฉ๋๋ค.
- ์ฑ๊ณตํ๋ค๋ ๋ฉ์์ง์ ์ํ ์ฝ๋ ๋ฐํํ๊ธฐ
- ์ ํํ ์ผ์ ๊ณผ ๋๊ธ์ด DB์ ์ ์ฅ๋์ด ์์ด์ผ ํฉ๋๋ค.
- ์ ํํ ์ผ์ ์ ID๋ฅผ ์ ๋ ฅ ๋ฐ์ง ์์ ๊ฒฝ์ฐ
- ์ผ์ ์ด๋ ๋๊ธ์ด DB์ ์ ์ฅ๋์ง ์์ ๊ฒฝ์ฐ
- ์ ํํ ๋๊ธ์ ์ฌ์ฉ์๊ฐ ํ์ฌ ์ฌ์ฉ์์ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ
- ์ ๋ฌธ์ฃผ์ฐจ ๊ฐ์ธ ๊ณผ์ ์ผ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ๋์จ ์์ธ์ฒ๋ฆฌ๋ฅผ Validation ์ด๋ ธํ ์ด์ ์ ํ์ฉํ์ฌ ์์ ํฉ๋๋ค.
- 2-4 ๋จ๊ณ์์ ๊ตฌํํ ์์ธ์ฒ๋ฆฌ๋ฅผ Validation ์ด๋ ธํ ์ด์ ์ ํ์ฉํ์ฌ ์์ ํฉ๋๋ค.
- ๋ก๊ทธ์ธ์ ๊ตฌํ ํ 3, 4๋จ๊ณ์์ ๊ตฌํํ ๊ธฐ๋ฅ์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
- ํด๋น ์ฌ์ฉ์๊ฐ ์์ฑํ ๋๊ธ๋ง ์ญ์ , ์์ ํ ์ ์์ต๋๋ค.
- JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ/์ธ๊ฐ๋ฅผ ๊ตฌํํ๋ค.
- ์ 1~4 ๋จ๊ณ์์ ์ธ์ฆ/์ธ๊ฐ๊ฐ ์๋ฃ๋ ํ์๋ง ๊ธฐ๋ฅ์ด ๋์ํ๋๋ก ์์ ํ๋ค.
- Access Token ๋ง๋ฃ์๊ฐ 60๋ถ
- Refresh Token ๊ตฌํ์ 8๋จ๊ณ์ด๋ฏ๋ก ์ด๋ฒ์๋ ํ์ง ์์ต๋๋ค.
- ๊ณตํต์กฐ๊ฑด
- StatusCode : 400
- client์ ๋ฐํ
- ํ ํฐ์ด ํ์ํ API ์์ฒญ์์ ํ ํฐ์ ์ ๋ฌํ์ง ์์๊ฑฐ๋ ์ ์ ํ ํฐ์ด ์๋ ๋
- ์๋ฌ ๋ฉ์ธ์ง : ํ ํฐ์ด ์ ํจํ์ง ์์ต๋๋ค.
- ํ ํฐ์ด ์๊ณ , ์ ํจํ ํ ํฐ์ด์ง๋ง ํด๋น ์ฌ์ฉ์๊ฐ ์์ฑํ ๊ฒ์๊ธ/๋๊ธ์ด ์๋ ๋
- ์๋ฌ ๋ฉ์ธ์ง : ์์ฑ์๋ง ์ญ์ /์์ ํ ์ ์์ต๋๋ค.
- DB์ ์ด๋ฏธ ์กด์ฌํ๋ username์ผ๋ก ํ์๊ฐ์
์ ์์ฒญํ ๋
- ์๋ฌ ๋ฉ์ธ์ง : ์ค๋ณต๋ username ์ ๋๋ค.
- ๋ก๊ทธ์ธ ์, ์ ๋ฌ๋ username๊ณผ password ์ค ๋ง์ง ์๋ ์ ๋ณด๊ฐ ์์ ๋
- ์๋ฌ ๋ฉ์์ง : ํ์์ ์ฐพ์ ์ ์์ต๋๋ค.
- ์์ , ์ญ์ ์ ์์ฒญํ ๋ ๋ณด๋ด๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ ๋
- ์ ํํ ์ผ์ ์ ๋ณด๊ฐ ์ด๋ฏธ ์ญ์ ๋์ด ์กฐํํ ์ ์์ ๋
- ์ญ์ ํ๋ ค๋ ์ผ์ ์ ๋ณด๊ฐ ์ด๋ฏธ ์ญ์ ์ํ์ผ ๋
- Swagger
- wagger UI๋ฅผ ํตํด API ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
- Swagger UI๋ฅผ ํตํด API ํ ์คํธ๋ฅผ ํ ์ ์๋ค.
- ์ ํจ์ฑ ๊ฒ์ฌ
- ํ ์ผ ์ ๋ชฉ์ ์ต๋ 200์ ์ด๋ด๋ก ์ ํ, ํ์๊ฐ ์ฒ๋ฆฌ
- ๋น๋ฐ๋ฒํธ๋ ํ์๊ฐ ์ฒ๋ฆฌ
- ๋ด๋น์๋ ์ด๋ฉ์ผ ํ์์ ๊ฐ๋๋ก ์ฒ๋ฆฌ
- 5๋จ๊ณ์์ ๊ตฌํํ JWT๋ฅผ Refresh Token์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ
- ์ธ์
๊ด๋ฆฌ
- ์์ฃผ ๋ก๊ทธ์ธ์ ๋ฐ๋ณตํ์ง ์์ผ๋ฉด์ ๊ธด ์ ํจ ๊ธฐ๊ฐ์ ๊ฐ์ง Refresh Token์ ํตํด ์ฌ์ฉ์๊ฐ ์์คํ ์ ์ง์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ ์ ์์ต๋๋ค.
- ๋ฆฌ์์ค ๊ด๋ฆฌ
- ์๋ฒ๊ฐ ์ธ์ ์ํ๋ฅผ ์ ์งํ ํ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ธก์์ JWT๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ ์ธ์ ์ ์ํด ์ถ๊ฐ์ ์ธ ์์์ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค.
- ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์์ ํํ์ฌ ์ผ์ ๊ณผ ๋๊ธ์ ์์ฑํ๊ณ ์์ ํ ์ ์๋ ๊ธฐ๋ฅ
- ๋ง๋ฃ๋์ง ์์ ์ ํจ ํ ํฐโ์ธ ๊ฒฝ์ฐ์๋ง ์ผ์ ๊ณผ ๋๊ธ โ์์ฑโ์ด ๊ฐ๋ฅํ๋๋ก ๋ณ๊ฒฝ
- ์กฐํ๋ ๋๊ตฌ๋ ํ ์ ์์ต๋๋ค!
- ๋ณด์
- ์ฌ์ฉ์ ์ธ์ฆ์ ํตํด ์ ๊ทผ์ ์ ์ดํ์ฌ ๋ณด์์ ๊ฐํํฉ๋๋ค. ๋ํ ๊ฐ์ธ ๋ก๊ทธ๋ฅผ ์ ์ฌํ๊ณ ๋ถ์ํ๋ฉด ๋ชจ๋ํฐ๋ง๋ ๊ฐ๋ฅํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ฒฝํ
- ๋ก๊ทธ์ธ์ ํตํด ๊ฐ์ธ์ ์๋ณํ๊ณ ๊ฐ์ธ์ ๋ง์ถ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ์ถ์ ์ ํตํด ๋ง์ถค ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
- ๋ก๊ทธ์ธ์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
- ์ ํจํ ํ ํฐ์ธ ๊ฒฝ์ฐ์๋ง ์ผ์ ๊ณผ ๋๊ธ์ ์์ฑํ ์ ์๋ค.
- ์ผ์ ์ ์์ฑํ ์ฌ์ฉ์์ ๋์ผํ username์ด๋ฉด ์์ ํ ์ ์๋ค.
- ๋๊ธ์ ์์ฑํ ์ฌ์ฉ์์ ๋์ผํ username์ด๋ฉด ์์ ํ ์ ์๋ค.
- ํ์ผ ํ ์ด๋ธ ์์ฑ
- ์ผ์ ์ ํ์ผ์ ์ฒจ๋ถํ ์ ์๋ ๊ธฐ๋ฅ
- ์ผ์ ๊ณผ ํ์ผ ํ
์ด๋ธ ๊ฐ ์ฐ๊ฐ๊ด๊ณ ํ์ฑ
- 1:1 ๋งคํ
- ERD์๋ ํ์ผ ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.
- ์ผ์ ์ ์์ฑํ ๋ ํ์ผ์ ์ฒจ๋ถํ ์ ์๋ค.
- ์ผ์ ์ ์์ ํ ๋ ํ์ผ์ ์ฒจ๋ถ๋ ํ์ผ์ ์์ ํ ์ ์๋ค.
- ์ผ์ ์ ์ญ์ ํ ๋ ํ์ผ๋ ํจ๊ป ์ญ์ ๋๋ค.
- ํ์ผ ํ์์
png,jpg๋ง ๊ฐ๋ฅํ๋ค. - ์ฉ๋์ ์ต๋
5MB๊น์ง๋ง ๊ฐ๋ฅํ๋ค.
-
์์ธ๊ฐ ๋ฐ์ํ๋ฉด ๋ก๊ทธ ํ์ผ์ ์ ์ฌ๊ฐ ๋๊ณ ํด๋น ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋๋ฒ๊น ์ ํ ์ ์๋ค.
๋ก๊ทธ ๊ธฐ๋ก ํญ๋ชฉ ๋ฐ์ดํฐ ํ์ (์์) ์๊ฐ 2024-05-14 15:37:21 ๋ก๊ทธ ๋ ๋ฒจ TRACE, DEBUG, INFO, WARN, ERROR (5๊ฐ ์ค 1๊ฐ) ์ค๋ ๋ ๋ช http-nio-8080-exec-10 ํด๋์ค ๋ช com.example.myapp.service.SpartaService ๋ก๊ทธ ๋ฉ์ธ์ง User validation failed: userId=12345 reason=Email not verified
2024-05-14 15:37:21 ERROR [http-nio-8080-exec-10] com.example.myapp.service.SpartaService - User validation failed: userId=12345 reason=Email not verified- ๋ฌธ์ ์ง๋จ ๋ฐ ํด๊ฒฐ
- ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ฐ๋ฐ์๋ ์๋ฒ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์์ํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ์ ํ์ ํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ์ต์ ํ
- ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ฐ๋ฐ์๋ ์๋ฒ์ ์์ฑํด๋ ๋ก์ง์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ์ต์ ํ ํ ์ ์์ต๋๋ค.
- ๋ณด์ ๊ฐํ
- ์๋ฒ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ค์ํ ์์ ์ ๊ธฐ๋กํ์ฌ ๋น์ ์์ ์ธ ์ ๊ทผ์ด๋ ๋ณด์ ์ํ์ ์ด๊ธฐ์ ๋ฐ๊ฒฌํ๊ณ ๋์ํ ์ ์์ต๋๋ค. ๋ํ ์ฌํ์ ๋ณด์ ์ฌ๊ณ ์์ธ์ ๊ท๋ช ํ๊ณ ์ฌ๋ฐ ๋ฐฉ์ง์ ๋์์ ์ค๋๋ค.
- ๋ก๊ทธ ๋ ๋ฒจ ERROR ์์ค์ผ๋ก
.logํ์ฅ์๋ก ์ถ์ถ
- ๋ฐ๋ณต์ ์ด๊ณ ๊ณตํต์ ์ธ ์์ ์ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ๋ง AOP๋ฅผ ์ฌ์ฉํด๋ณธ๋ค. ์ฝ๋ ์ค๋ณต์ ์ค์ด๊ณ ์ ์ง ๋ณด์๋ฅผ ํธ๋ฆฌํ๊ฒ ํฉ๋๋ค. ์ด๋ก์ธํด ํ์ฅ์ฑ ๋ฉด์์ ์ด์ ์ ๊ฐ์ง ์ ์์ด ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋๋๋ผ๋ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. โ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ
- ๋ก๊ทธ์ธ์ ๋ํ ๋ชจ๋ํฐ๋ง์ ํ๊ธฐ ์ํด ๋ก๊ทธ์ธ ๊ณผ์ ์ ๋ฐ์ ์ด๋ ฅ์ผ๋ก ๋จ๊น๋๋ค.
- ์คํ๋ง AOP๋ฅผ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธ ์ด๋ ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํฉ๋๋ค.
- 11๋จ๊ณ์์ ๊ตฌํํ ๋ก๊ทธ์๋ ๊ธฐ๋ก์ด ๋๋์ง ํ์ธํฉ๋๋ค.
- ERD์๋ ๋ก๊ทธ์ธ ์ด๋ ฅ ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.
- ๋ก๊ทธ์ธ ์ด๋ ฅ ํ ์ด๋ธ ์ ๋ ฅ



