πΊοΈ ν΅μ¬ μ€κ³λμ μμ±κ³Ό μμ νλ¦.
μ€μ μ§ν μ€μΈ νλ‘μ νΈλ₯Ό κΈ°λ°μΌλ‘ νμ¬ μ μμΌ(Agile)ν μ κ·Ό λ°©μμΌλ‘ μΈ κ°μ§ μ€κ³λ₯Ό ν΄λ³΄λλ‘ νκ² μ΅λλ€.
μ²μλΆν° λͺ¨λ κΈ°λ₯μ μλ²½νκ² μ€κ³νλ λμ , κ°μ₯ ν΅μ¬μ μΈ 1λ¨κ³(Iteration 1) λ₯Ό λ¨Όμ μ μνκ³ , μ΄λ₯Ό λ°νμΌλ‘ μ μ§μ μΌλ‘ νμ₯ν΄ λκ°λ λ°©μμΌλ‘ μ€κ³νκ² μ΅λλ€.
π 1λ¨κ³ (Iteration 1): ν΅μ¬ κΈ°λ₯ - μ£Όλ¬Έ λͺ©λ‘ μ‘°ν λ° μν λ³κ²½
κ°μ₯ λ¨Όμ νμν μ΅μ κΈ°λ₯μ βλ€μ΄μ¨ μ£Όλ¬Έμ νμΈνκ³ , λ°°μ‘ μνλ₯Ό βκ²°μ μλ£βμμ βλ°°μ‘μ€βμΌλ‘ λ°κΎΈλ κ²β μ λλ€.
-
μꡬμ¬ν (MVP) :
- κ΄λ¦¬μλ μμ€ν μ λ€μ΄μ¨ λͺ¨λ μ£Όλ¬Έμ λͺ©λ‘μ μ΅μ μμΌλ‘ μ‘°νν μ μλ€.
- κ΄λ¦¬μλ νΉμ μ£Όλ¬Έμ λ°°μ‘ μνλ₯Ό λ³κ²½ν μ μλ€. (μ:
κ²°μ μλ£
->λ°°μ‘μ€
)
-
μμ€ν
μν€ν
μ² (λ¨μνκ³ λͺ
ννκ²) :
-
μλ‘μ΄ Controller/Service μΆκ° :
- κΈ°μ‘΄ μν€ν
μ²λ₯Ό κ·Έλλ‘ νμ©νμ¬
OrderAdminController
μOrderService
λ₯Ό μλ‘ μΆκ°ν©λλ€. - 볡μ‘ν μΈλΆ μμ€ν μ°λ μμ΄, λ΄λΆμ μΌλ‘ μ²λ¦¬ κ°λ₯ν κ°λ¨ν CRUD κ΅¬μ‘°λ‘ μμν©λλ€.
- κΈ°μ‘΄ μν€ν
μ²λ₯Ό κ·Έλλ‘ νμ©νμ¬
-
API Endpoints μ μ :
-
GET /api/admin/orders
: μ 체 μ£Όλ¬Έ λͺ©λ‘ μ‘°ν -
PATCH /api/admin/orders/{orderId}/status
: νΉμ μ£Όλ¬Έμ μν λ³κ²½
-
-
μλ‘μ΄ Controller/Service μΆκ° :
-
λ°μ΄ν°λ² μ΄μ€ μ€κ³ (ν΅μ¬ λ°μ΄ν°λΆν°) :
- μλ‘μ΄
ORDERS
μORDER_ITEM
λ κ°μ ν μ΄λΈμ μ€κ³ν©λλ€.-
ORDERS
ν μ΄λΈ : νμ(MEMBER
) μ΄ μΈμ μ£Όλ¬Ένλμ§, νμ¬ λ°°μ‘ μνλ 무μμΈμ§λ₯Ό μ μ₯ν©λλ€. -
ORDER_ITEM
ν μ΄λΈ : ν΄λΉ μ£Όλ¬Έμ μ΄λ€ μν(PRODUCT
) μ΄ λͺ κ°, μΌλ§μ ν¬ν¨λμλμ§λ₯Ό μ μ₯ν©λλ€.(ORDER
μPRODUCT
μ M:N κ΄κ³λ₯Ό ν΄μνλ μ€κ° ν μ΄λΈ)
-
- μλ‘μ΄
π 2λ¨κ³ (Iteration 2): κΈ°λ₯ νμ₯ - κ²μ λ° μμΈ μ‘°ν
ν΅μ¬ κΈ°λ₯μ΄ μμ±λλ©΄, μ΄μ κ΄λ¦¬μ νΈμμ±μ λμ΄λ κΈ°λ₯μ μΆκ°ν©λλ€.
-
μꡬμ¬ν (κΈ°λ₯ νμ₯) :
- μ£Όλ¬Έ λͺ©λ‘μμ νΉμ 쑰건(μ£Όλ¬Έ μν, νμ μ΄λ¦, μ£Όλ¬Έ λ μ§ λ±)μΌλ‘ κ²μνλ κΈ°λ₯μ μΆκ°ν©λλ€.
- μ£Όλ¬Έ λͺ©λ‘μ κ° νλͺ©μ ν΄λ¦νλ©΄, ν΄λΉ μ£Όλ¬Έμ ν¬ν¨λ μν λͺ©λ‘κ³Ό λ°°μ‘μ§ μ 보 λ± μμΈ λ΄μμ μ‘°ννλ κΈ°λ₯μ μΆκ°ν©λλ€.
-
μμ€ν
μν€ν
μ² (κΈ°μ‘΄ ꡬ쑰 κ°ν) :
-
GET /api/admin/orders
APIκ° Query Parameter λ₯Ό λ°μ μ μλλ‘ νμ₯ν©λλ€.- μ:
?status=SHIPPING&memberName=νκΈΈλ
- μ:
-
Service
κ³μΈ΅μ JPAμ Specification μ΄λ QueryDSLμ λμ νμ¬ λμ 쿼리 μμ± λ‘μ§μ μΆκ°ν©λλ€.
-
-
λ°μ΄ν°λ² μ΄μ€ μ€κ³ (μ±λ₯ μ΅μ ν) :
- κ²μ 쑰건μΌλ‘ μμ£Ό μ¬μ©λ
ORDERS
ν μ΄λΈμstatus
,order_date
컬λΌμ μΈλ±μ€(Index) λ₯Ό μΆκ°νμ¬ μ‘°ν μ±λ₯μ ν₯μμν΅λλ€.
- κ²μ 쑰건μΌλ‘ μμ£Ό μ¬μ©λ
π μ£Όλ¬Έ κ΄λ¦¬ μꡬμ¬ν λͺ μΈμ.
μμ μ μμΌ μ€κ³λ₯Ό λ°νμΌλ‘ 1λ¨κ³(Iteration 1) MVPμ ν΄λΉνλ μꡬμ¬ν λͺ μΈμλ₯Ό μμ±ν΄λ³΄κ² μ΅λλ€.
-
[μꡬμ¬ν λͺ
μΈμ]
- UC-002: κ΄λ¦¬μ μ£Όλ¬Έ κ΄λ¦¬
- μ€λͺ : κ΄λ¦¬μλ κ³ κ°μ΄ μ£Όλ¬Έν λ΄μμ νμΈνκ³ , λ°°μ‘ μνλ₯Ό κ΄λ¦¬νμ¬ μνν μν λ°°μ‘ νλ‘μΈμ€λ₯Ό μ§μν©λλ€.
-
1. κΈ°λ₯ μꡬμ¬ν (Features)
-
OM-01: μ£Όλ¬Έ λͺ©λ‘ μ‘°ν
-
κΈ°λ³Έ κ·μΉ:
- κ΄λ¦¬μλ μ 체 μ£Όλ¬Έ λͺ©λ‘μ μ‘°νν μ μμ΅λλ€.
- λͺ©λ‘μ κ°μ₯ μ΅κ·Όμ μ£Όλ¬Έλ μμ(λ΄λ¦Όμ°¨μ)λ‘ μ λ ¬λμ΄μΌ ν©λλ€.
- κ° λͺ©λ‘ νλͺ©μλ μ£Όλ¬Έ ID, μ£Όλ¬Έμ μ΄λ¦, μ£Όλ¬ΈμΌμ, μ΄ μ£Όλ¬Έ κΈμ‘, μ£Όλ¬Έ μνκ° νμλμ΄μΌ ν©λλ€.
-
μμΈ μ²λ¦¬:
- μ‘°νν μ£Όλ¬Έμ΄ νλλ μμ κ²½μ°, λΉ λͺ©λ‘κ³Ό ν¨κ» βμ£Όλ¬Έ λ΄μμ΄ μμ΅λλ€.βλΌλ λ©μμ§λ₯Ό λ°νν©λλ€.
-
κΈ°λ³Έ κ·μΉ:
-
OM-02: μ£Όλ¬Έ λ°°μ‘ μν λ³κ²½
-
κΈ°λ³Έ κ·μΉ:
- κ΄λ¦¬μλ νΉμ μ£Όλ¬Έμ λ°°μ‘ μνλ₯Ό λ³κ²½ν μ μμ΅λλ€.
- λ³κ²½ κ°λ₯ν μν νλ¦μ λ€μκ³Ό κ°μ΅λλ€:
-
κ²°μ μλ£
βλ°°μ‘μ€λΉμ€
βλ°°μ‘μ€
βλ°°μ‘μλ£
-
- μν λ³κ²½μ΄ μ±κ³΅νλ©΄, λ³κ²½λ μ£Όλ¬Έμ μμΈ μ 보λ₯Ό μ¦μ λ°νν©λλ€.
-
μμΈ μ²λ¦¬:
- μ‘΄μ¬νμ§ μλ μ£Όλ¬Έ IDλ‘ μμ² μ, βμ‘΄μ¬νμ§ μλ μ£Όλ¬Έμ λλ€.βλΌλ μ€λ₯ λ©μμ§λ₯Ό λ°νν©λλ€.(HTTP 404 Not Found)
- μ΄λ―Έ
λ°°μ‘μλ£
λλμ£Όλ¬Έμ·¨μ
λ μ£Όλ¬Έμ μνλ₯Ό λ³κ²½νλ €κ³ ν κ²½μ°, βμ΄λ―Έ μ²λ¦¬ μλ£λ μ£Όλ¬Έμ μνλ₯Ό λ³κ²½ν μ μμ΅λλ€.βλΌλ μ€λ₯ λ©μμ§λ₯Ό λ°νν©λλ€.(HTTP 400 Bad Request) - μ ν¨νμ§ μμ μν κ°(μ:
SHIPPED
λμSHIPPING
)μΌλ‘ μμ² μ, βμ ν¨νμ§ μμ μ£Όλ¬Έ μνμ λλ€.βλΌλ μ€λ₯ λ©μμ§λ₯Ό λ°νν©λλ€.(HTTP 400 Bad Request)
-
κΈ°λ³Έ κ·μΉ:
-
OM-01: μ£Όλ¬Έ λͺ©λ‘ μ‘°ν
-
2. λ°μ΄ν° μ μ±
- λͺ¨λ μ£Όλ¬Έ μνμ λ³κ²½ μ΄λ ₯(μΈμ , μ΄λ€ μνμμ μ΄λ€ μνλ‘ λ³κ²½λμλμ§)μ λ³λμ λ‘κ·Έ ν μ΄λΈμ κΈ°λ‘λμ΄μΌ ν©λλ€.(ν₯ν νμ₯μ μν μ μ± )
- μ£Όλ¬Έ λ°μ΄ν°λ κ³ κ°μ μ¬μ£Όλ¬Έ λ° ν΅κ³ λΆμμ μν΄ μꡬμ μΌλ‘ 보κ΄νλ κ²μ μμΉμΌλ‘ ν©λλ€.