study/spring | java

[Select Shop] 셀렉샵 만들기 4. 프로젝트 설계

_드레 2021. 6. 6. 19:17

1~3. 에서 Naver API 사용하는거 연습했으니까 

이제 프로젝트 설계해 보기 ! 

 

[0] 필요 기능 확인 

- 키워드로 상품 검색, 결과를 목록으로 보여준다 (naver API)

- 관심상품 등록하기

- 관심상품 조회하기

- 관심상품에 원하는 가격 등록, 그 가격보다 낮은 경우에 표시해주기

 

[1] API

기능 Method URL 반환값
키워드검색, 결과 list GET /api/search?query=검색어 List<ItemDto>
관심 상품 등록 POST /api/products Product
관심 상품 조회 GET /api/products List<Product>
관심상품 가격 등록/표시 PUT /api/products/{id} id

[2] 3계층 설계 

    1. Controller 

            - ProductRestController : 관심 상품 관련

            - SearchRequestController : 검색 관련

    2. Service 

            - ProductService : 관심 상품 가격 변경

    3. Repository

            - Product : 관심 상품 테이블 (DB 저장)

            - ProductRepository : 관심 상품 조회, 저장

            - ProductRequestDto : 관심 상품 등록하기

            - ProductMypriceRequestDto : 관심 가격 변경하기

            - ItemDto : 검색 결과 주고받기