Skip to content

yyj424/order-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OrderService Project

외부 시스템으로부터 주문 데이터를 가져와 메모리에 저장하고
저장한 데이터를 외부 시스템으로 전송하는 기능을 구현한 Spring Boot 기반 주문 관리 시스템


주요 기능

  • 주문 저장 / 주문 단건 조회 / 주문 목록 조회
  • 외부 주문 data 저장 / 외부 주문 data 전송

Class Diagram

Image
Class/Interface 역할
OrderController 주문 저장, 조회, 외부 데이터 연동 요청을 처리하는 REST API Contoller
OrderService / OrderServiceImpl 주문 저장, 조회, 외부 데이터 저장 및 전송 등 비즈니스 로직 처리
OrderRepository / MemoryOrderRepository 주문 데이터 메모리 저장 및 조회 (ConcurrentHashMap)
OrderClient / RestClientOrderClient RestClient를 사용하여 외부 시스템과 데이터 연동을 담당하는 인터페이스
OrderMapper DTO와 도메인 모델 간의 변환 처리 (MapStruct)
OrderSave / OrderRes 클라이언트로부터 입력받거나 응답으로 전달되는 DTO (요청/응답 데이터 구분)
Order 실제 주문 정보를 담는 도메인 객체
OrderExceptionHandler 예외 발생 시 HTTP 응답 처리 (유효성 검사 실패, 주문 미존재, 시스템 오류)

사용 기술 스택

  • Java 17
  • Spring Boot 3.5.3
  • Spring Web
  • Spring Validation
  • MapStruct
  • RestClient
  • JUnit 5
  • MockMvc / Mockito
  • Gradle
  • IntelliJ IDEA

실행 방법

  1. Project clone 또는 Download Zips
  2. Project 실행 후 Postman으로 테스트 또는 OrderServiceApplicationTests 실행

테스트 방법

1. 주문 등록 (POST /order)

  • Request (JSON) -orderId는 자동 생성되므로 제외
    { "cusNm": "주문자", "orderDt": "20250718", "orderSt": "ST0001" }
  • Response
    Saved Order: OrderSave(cusNm=주문자, orderDt=20250718, orderSt=ST0001)

2. 주문 전체 조회 (GET /order)

  • Response
    [ { "orderId": "OID-xxxxxxxx", "cusNm": "주문자", "orderDt": "20250718", "orderSt": "ST0001" } ]

3. 주문 단건 조회 (GET /order/{orderId})

  • 주문 저장 시 생성된 orderId로 조회
  • Response
    성공 - { "orderId": "OID-xxxxxxxx", "cusNm": "주문자", "orderDt": "20250718", "orderSt": "ST0001" }
    실패 - Order ID [ OID-xxx ] not found

📍 아래는 외부 시스템 url 설정 후 가능(현재 임시로 https://test.com 사용)

4. 외부 시스템 주문 저장 (GET /order/client)

  • Response
    성공 - save success
    실패 - SERVER_ERROR: save failed

5. 외부 시스템 주문 전송 (POST /order/client)

  • Response
    성공 - send success
    실패 - SERVER_ERROR: send failed

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages