Requirements - takeoff-26/logistics-service GitHub Wiki
MSA ๊ธฐ๋ฐ ๊ตญ๋ด ๋ฌผ๋ฅ ๊ด๋ฆฌ ๋ฐ ๋ฐฐ์ก ์์คํ ๊ฐ๋ฐ
๋๋ฉ์ธ ์๊ตฌ์ฌํญ
๊ณตํต
- ๊ฐ ๋๋ฉ์ธ์ CRUD, search ์์ ํ์ ๋ช๋ช ๋๋ฉ์ธ ์ ์ธ
- ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD)
ํ๋ธ ๊ด๋ฆฌ
- ํ๋ธ ์ ๋ณด ์บ์ฑ
- 17 ๊ณณ์ ํ๋ธ ๊ณ ์ ์ด๋ฏ๋ก ๋ฐ์ดํฐ ์์ฑ
ํ๋ธ๊ฐ ์ด๋์ ๋ณด ๊ด๋ฆฌ
- ํ๋ธ ๊ฒฝ๋ก ์,๊ฒฝ๋ ๊ณ์ฐ
- ์ด๋๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ ์ค์ ๋ฐ ๊ตฌํ (๋์ด๋: ์ค ์ ํ) (P2P + Hub to Hub Relay)
- ํ๋ธ ๊ฐ ์ด๋ ๊ฒฝ๋ก ์บ์ฑ
๋ฐฐ์ก ๋ด๋น์ ๊ด๋ฆฌ
- ๋ฐฐ์ก ๋ด๋น์ ๋ฐฐ์ก ์๋ฒ ์์ฐจ์ ๋ฐฐ์
- ๋ฐฐ์ก ๋ด๋น์ ํ์ ์ ๋ฐ๋ผ ์ ์ฒด ๋ฐฐ์ก, ํ๋ธ ๋ฐฐ์ก ๋ถ๋ฆฌ
์ ์ฒด ๊ด๋ฆฌ
- ์ ์ฒด ์ถ๊ฐ์ ๊ด๋ฆฌ ํ๋ธ ID๊ฐ ์กด์ฌํ๋์ง ํ์ธ
์ํ ๊ด๋ฆฌ
- ์ํ ์์ฑ์ ์ ์ฒด๊ฐ ์กด์ฌํ๋์ง ํ์ธ, ์ํ๊ด๋ฆฌ ํ๋ธ ID๊ฐ ์กด์ฌํ๋์ง ํ์ธ
์ฃผ๋ฌธ ๊ด๋ฆฌ
- ์ฃผ๋ฌธ ์์ฑ์ ๋ฐฐ์ก๋ ๊ฐ์ด ์์ฑ
๋ฐฐ์ก ๊ด๋ฆฌ
- ๋ฐฐ์ก๊ณผ ๋ฐฐ์ก ๊ฒฝ๋ก ๊ธฐ๋ก ์ํฐํฐ ๋ถ๋ฆฌ ์์ฑ
- ๋ฐฐ์ก๊ณผ์ ์์ ๋ฐ์ํ ๊ฒฝ๋ก๋ฅผ ์ถ์
- ์ฃผ๋ฌธ ์์ฑ์ ๋ฐฐ์ก๊ณผ ๋ฐฐ์ก ๊ฒฝ๋ก ๊ธฐ๋ก ๋ฐ์ดํฐ ๊ฐ์ด ์์ฑ
์ฌ๋ ๋ฉ์์ง ๊ด๋ฆฌ
- AI๋ฅผ ํตํด ๋ฉ์์ง ๋ฐ์ก ๊ธฐ๋ฅ ๊ตฌํ
์ฌ์ฉ์ ๊ด๋ฆฌ
- ๊ถํ ๋ถ๋ฆฌ
- ๋ก๊ทธ์ธ ๊ธฐ๋ฅ
AI ์ฐ๋ ๊ธฐ๋ฅ
- ๋ฐ์ก ํ๋ธ ๋ด๋น์์๊ฒ ๋ฐฐ์ก ์์ ์๊ฐ ์๋ฆผ ์ฒ๋ฆฌ
๊ธ๋ก๋ฒ ์๊ตฌ์ฌํญ
ํ๋ก์ ํธ ๊ตฌ์กฐ
- Layered Architecture
- Entity ๋ฐ DTO: ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก Entity์ DTO(Data Transfer Object)๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌ
- API ์ค๊ณ: RESTful API ์์น์ ๋ฐ๋ผ ์ค๊ณ
- Exception Handling: ๊ธ๋ก๋ฒ ์์ธ ์ฒ๋ฆฌ (ExceptionHandler ์ฌ์ฉ)
๋ฐ์ดํฐ ๋ณด์กด ๋ฐ ์ญ์ ์ฒ๋ฆฌ
- ๋ฐ์ดํฐ ๋ณด์กด: ๋ชจ๋ ๋ฐ์ดํฐ๋ ์์ ์ญ์ ๋์ง ์๊ณ ์จ๊น ์ฒ๋ฆฌ๋ก ๊ด๋ฆฌ
- ๋ฐ์ดํฐ ๊ฐ์ฌ ๋ก๊ทธ: ๋ชจ๋ ์ ๋ณด์ ์์ฑ์ผ, ์์ฑ ์์ด๋, ์์ ์ผ, ์์ ์์ด๋, ์ญ์ ์ผ, ์ญ์ ์์ด๋๋ฅผ ํฌํจ
MSA ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ
- ์ ๋ ์นด ์๋ฒ ์์ฑ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ
- ๊ฒ์ดํธ์จ์ด ์์ฑ ๋ฐ ๋ผ์ฐํ
- ๊ฒ์ดํธ์จ์ด์์ ์ธ๊ฐ
- ์ํท ๋ธ๋ ์ด์ปค ์ ์ฉ
- ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋๋ก ์คํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ
- ํ ์ด๋ธ ๋ช ๋ช ๊ท์น: ๋ชจ๋ ํ ์ด๋ธ์ p_ ์ ๋์ฌ ์ฌ์ฉ
- UUID ์ฌ์ฉ: ๋ชจ๋ ์ฃผ์ ์ํฐํฐ์ ์๋ณ์๋ UUID๋ฅผ ์ฌ์ฉ (์ ์ ๋ ์์ธ)
- Audit ํ๋: ๋ชจ๋ ํ ์ด๋ธ์ created_at, created_by, updated_at, updated_by, deleted_at, deleted_by ํ๋๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ฌ ๋ก๊ทธ ๊ธฐ๋ก
์ ๊ทผ ๊ถํ ๊ด๋ฆฌ
- ๊ฐ ๋ฐ์ด๋๋ฆฌ ์ปจํ ์คํธ๋ณ ๊ถํ ๊ฒ์ฌ
๋ณด์
- JWT ์ธ์ฆ: Spring Security์ JWT(Json Web Token)๋ฅผ ์ด์ฉํ ์ธ์ฆ ๋ฐ ๊ถํ ๊ด๋ฆฌ
- ๊ถํ ํ์ธ : CUSTOMER ์ด์์ ๊ถํ์ ์์ฒญ๋ง๋ค ์ ์ฅ๋์ด ์๋ ๊ถํ ๊ฐ๊ณผ ๋์ผํ์ง ์ฒดํฌํ์
- ๋น๋ฐ๋ฒํธ ์ํธํ: BCrypt ํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๋น๋ฐ๋ฒํธ ์ํธํ
- ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ: ์๋ฒ ์ธก ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด Spring Validator ์ฌ์ฉ
ํ ์คํธ
- ํ ์คํธ: ํ ์คํธ ์คํฌ๋ฆฝํธ ํน์ ํด์ ์ด์ฉํ์ฌ endpoint์์ ์ ์ฒด API๋ฅผ ์ปค๋ฒํ๋ ํ ์คํธ๋ฅผ ์๋ํ