Giter Site home page Giter Site logo

modu-ui-market's Introduction

modu-ui-market

1. 서비스 설명

자신만의 마켓을 만들어 물건을 판매할 수 있는 오픈마켓 서비스입니다.

2. ERD

modu-ui-market (1)

3. CI/CD 구조

CICD구성도

modu-ui-market's People

Contributors

chayujin avatar chanwoothecali avatar f-lab-bot avatar

Stargazers

 avatar SANG DO PARK avatar  avatar GuyKim avatar 이규진 (빌 규진) avatar qrry12b avatar 임재혁 avatar wooyounggggg avatar 명권 avatar  avatar

Watchers

 avatar  avatar

Forkers

chayujin

modu-ui-market's Issues

회원가입 구현

회원가입 구현

  • 필수정보를 받아 회원을 등록한다.
  • password를 암호화 저장한다.
  • 회원가입은 sms 인증 후 이루어진다.

TimeEntity 코드 통일

Market 엔티티와 User 엔티티의 Date필드에 대한 처리가 다르게 처리되어있으므로 코드 통일이 필요하다.

어드민 - 회원 조회

회원 전체 조회

  • 관리자는 회원의 데이터를 조회할 수 있다.
  • 해당 기능 수행시 로그인된 사용자가 관리자인지 확인한다.

상품 등록

  • 상품 등록 요청으로 마켓에 상품을 등록할 수 있어야 한다.
  • 상품 등록 요청에 대한 파라메터에 대한 유효성을 검사해야 한다.
  • 기능 동작에 대한 테스트 코드를 작성해야 한다.

상품 이미지를 NCP의 objectStorage로 처리

현재 상품등록 API로 이미지 데이터를 multipart로 보내게 되어있는데, 이를 NCP의 objectStorage를 사용해 처리하도록 수정이 필요하다.

  • Product DTO의 파라미터를 objectStorage 사용하여 처리하도록 수정
  • objectStorage에 대한 유효성 검사
  • 테스트 코드 수정

DB 테이블 설계 (ERD 작성)

기능 리스트를 바탕으로 ERD 설계 필요

<기능리스트>
회원 (구매자/판매자)

  • 회원 가입
  • 로그인/로그아웃
  • 회원 탈퇴
    판매자
  • 상품 등록
  • 상품 정보수정/삭제
  • 상품 목록 조회
  • 주문 조회(마켓내 전체 주문 내역 및 상태조회)
  • 쿠폰 등록
    구매자
  • 주문
  • 주문 조회(나의 주문 내역 및 상태조회)
  • 주문 취소/교환/반품
  • 주문 이벤트 및 배송 알림
  • 찜/장바구니
  • 쿠폰 받기
    어드민
  • 회원 조회
  • 회원 정지

마켓 등록

  • 마켓 등록을 처리하는 API가 필요하다.
  • 마켓 등록 API 요청시 파라메터에 대한 유효성을 검사해야 한다.
  • 마켓 등록이 불가능한 경우, 마켓 등록 실패에 대한 메시지를 포함시켜 응답값을 보내야 한다.
  • 등록 성공, 실패 케이스에 대한 테스트 코드를 작성해야 한다.

주문 재시도 로직 추가

현재 주문 로직이 낙관적 락으로 구현되어 있는데, 재시도 로직이 존재하지 않아 비관적 락에 비해 데이터 정합성이 떨어지는 이슈가 존재

  • 주문 재시도 로직 추가

CI/CD 연동

자동화 프로세스(빌드, 테스트 자동화 과정) 구축 필요

상품 주문

  • 상품 주문에 기능 구현
  • 상품 주문 트랜잭션 적용
  • 테스트코드 작성

마켓기능에 로그인 기능 적용

현재 만들어져있는 마켓 생성 기능에는 로그인 기능과 연동되어있지 않다.
이 때문에 마켓 생성에 관련된 테스트가 오류가 나는 문제도 발생하고 있다.
마켓 기능에도 사용자 로그인 기능을 적용하고 마켓 생성 API요청시 받는 sellerId정보도 로그인 정보에서 가져오도록 수정해야 한다.

프로젝트 설정

의존성 추가

  • lombok
  • spring-boot-devtools
  • h2database
  • spring-boot-starter-data-jpa
  • spring-restdocs-mockmvc
  • spring-boot-starter-validation

H2 DB 로컬 연결 설정

  • application.yml

중복되는 ControllerAdvice 클래스 통일

@RestControllerAdvice가 붙어 ExceptionHandling을 하는 클래스가 GlobalExceptionHandler와 GlobalExceptionController 2개의 클래스에서 작업이 되고 있어서 하나로 통일시키는 작업이 필요하다.

  • ExceptionHandler를 하나로 합치는 작업

로그인/로그아웃 구현

로그인/로그아웃 구현

  • email과 password로 회원이 로그인을 한다.
  • 로그인 정보는 세션에 저장된다.
  • 로그인 된 사용자가 로그아웃을 한다.

상품 주문

상품 주문

  • 상품을 주문하는 기능
  • 낙관적 락 적용

테스트용 브랜치 및 서버 생성

  • 테스트를 위한 브랜치를 생성하고 테스트용 코드가 동작할 서버를 생성한다.
  • 테스트 브랜치 (lab) 구축
  • 테스트용 was 구축
  • 테스트할 코드 생성 (낙관적 락, 비관적 락 등)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.