[Spring] 숙련강의 프로젝트 - MySelectShop

쓰옹·2022년 12월 14일
0

MySelectShop

깃허브링크


  • 필요한 기능

    1. 키워드로 상품 검색하고 그 결과를 목록으로 보여주기
    2. 회원가입
    3. 로그인
    4. 로그인 성공 시 토큰 발급
    5. 로그아웃
    6. 로그인 한 유저만 관심상품 등록, 조회, 최저가 등록 가능
    7. ADMIN 계정은 모든 상품 조회 가능
    8. 관심상품 목록 페이징 및 정렬 가능
    9. 폴더 생성 및 조회 가능
    10. 관심상품에 폴더 추가 기능
    11. 폴더 별 관심상품 조회 가능

API 설계




설계 진행


1. MySelectShopBeta 프로젝트

  • 기능
    1) 키워드로 상품 검색하고 그 결과를 목록으로 보여주기 ->NAVER Open API 사용
    2) 관심 상품 등록하기
    3) 관심 상품 조회하기
    4) 관심 상품 최저가 등록하기

  • AllInOneController(절차적 프로그래밍) 진행

    • 한계점

      • 한 클래스에 너무 많은 양의 코드 존재

      • 코드 이해 어려움

      • 유지,보수에 많은 resource 발생

-> 리팩토링

2. MySelectShop 프로젝트

1) AllInOneController
-> - ProductController
    - ProductService
    - ProductRepository

2) 코드 정리

  • 중복 코드 정리
  • 스프링 IoC 컨테이너 사용
  • 3-tier Annotaion
    • @Controller
    • @Service
    • @Repository

3) 스케줄러 기능 구현

  • 매일 새벽 1시에 관심 상품 목록 제목으로 검색해서, 최저가 정보를 업데이트

4) 기능 추가

  • 회원가입
  • 로그인
    -> User 설계, JWT 인증방법 사용(토큰, admin계정)
    -> JWT 사용하여 관심상품 등록, 조회로 기능 수정

5) 기능추가

  • 페이징, 정렬
  • 폴더
    • 폴더 테이블 설계
    • 생성, 조회, 관심상품 폴더 추가 기능
    • 중복 이슈 해결
profile
기록하자기록해!

0개의 댓글