Coder Social home page Coder Social logo

goods-for-you's Issues

프로토 타입 화면 수정

  • 프로토타입 화면 수정(카카오 Oven 이용)
  • 프로토 타입 화면 버전별 snapshot으로 관리를 하기 위해 프로토 타입 화면 wiki로 이동

회원 가입 시 Validation 적용

  • 회원 가입 시, 적용 할 Validation 방법으로 어떤것들이 있는지 조사
  • 조사한 내용을 토대로 어떤 방식을 프로젝트에 적용할 지
  • 프로젝트에 선택한 Validation 방법 적용

로그 적용

목표

  • 프로젝트에 로그를 적용함으로써, 병목 지점이나, 요청과 응답에 대한 값, 그리고 예외발생 원인을 확인 합니다.

요구사항

  • 프로젝트에서 병목지점이 될만한 부분에 로그 작성
  • 요청과 응답에 대해 로그 작성
  • 예외 발생 지점에 대해 로그 작성

exception 구조 계층 구조로 변경

  • 동일한 핸들링 방식인데 일일히 exception 마다 만들어 줘야 하는 불편함이 있어 현재의 exception 구조를 계층화 시키는 방향으로 변경 할 예정.

Todo

  • Exception 계층도 설계
  • Exception 계층도 적용

거래 등록 기능

목표

  • 거래 등록 기능에 대해 구현

요구사항

  • 거래의 상태로는 거래 전,거래 진행 중, 거래 완료가 있다.
  • 거래 상품은 거래 상품 수량이라는 값을 가진다
  • #66
  • 구매를 원하는 상품을 구매하기를 선택 해 구매 요청을 한다.
  • 구매자는 거래 전, 구매 가능 상태의 상품만 구매 요청을 할 수 있다.
  • 구매자는 구입을 원하는 상품의 수량을 정한뒤 구매할 상품의 거래를 진행한다.
  • 상품 거래 신청 시, 해당 상품의 거래 진행 상태를 거래 전으로 등록한다.

참고 자료

거래 시나리오

프로젝트 구성도 작성

✔ TODO

  • Scale in / Scale Out 과 High availability(고 가용성)을 중점적으로 고려해서 구성도 초기 버전 작성.
  • **Elastic Load Balancer(ELB)**와 Nginx그리고 두개와 관련된 키워드에 대해 학습.
  • 프로젝트 구성도 작성 시, ELBNginx 중 한 개만 사용할 것인지, 둘다 사용할 것인지 또는 다른 솔루션을 사용할 것인지에 대해서도 고민.
  • 회원 인증 설계 관련 내용 프로젝트에 구현 후 구성도에 추가

에러 로그 추가

목표

  • 서버 내부에서 발생하는 에러를 확인하기 위해, 에러 로그를 추가 합니다.

요구사항

  • 서버 내부 에러에 대해 로그를 남긴다.
  • error 로그에는 stackTrace와, tradeId를 남긴다.

예외처리시 예상치 않은 예외 값이 반환됨

목표

TradeControllerAdvice를 사용하여 예외를 처리할 때 예상 값과 다른 예외 값이 반환되는 것을 확인했습니다. 이로 인해 애플리케이션에서 예기치 않은 값이 반환되어 해당 이슈를 해결하고자 합니다.

요구사항

예외 처리시 예상한 값이 반환되도록 예외 처리 관련 코드를 수정합니다.

유저 모듈 리팩토링 진행

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • 유저 모듈의 코드 수준 부터 패키지 수준까지 리팩토링을 진행합니다.

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • 유저 프로덕션 코드 리팩토링
  • 유저 테스트 코드 리팩토링
  • 유저 프로덕션,테스트 패키지 구조 리팩토링

데이터 모델링하기

  • 프로토 타입 화면을 토대로 엔티티와 속성 식별
  • 엔티티간의 관계 식별
  • 식별된 유스케이스와 액터를 토대로 도메인 모델링 작성
  • ERD를 그리는 이유 에 대해 고민해보기

로그인 설계

✔ TODO

  • 세션 VS 토큰 방식
  • 세션 관리 방법의 여러가지 솔루션 및 장단점 파악
  • #27
  • #33
  • #36

유저 모듈 jpa 적용

목표

  • User 모듈에 JPA를 적용합니다.

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

참고 자료

  • 해당 작업 진행 시, 참고했던 자료에 대해 기재합니다.(ex 기능 별 사진)

배포 스크립트 수정

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • 부하 분산 처리에 따른, 배포 스크립트를 수정 합니다.

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • 배포 스크립트 과정 중, NCP 웹 서버 인스턴스에 배포하도록 변경

api 기능 테스트를 위한 regression test 작성

목표

  • 서비스의 기능이 추가되거나 변경됨에 따라 새로운 버그가 발생하거나 이전에 작동하던 기능이 작동을 중지하지 않도록 하기위해
    regression test를 작성합니다.

요구사항

  • api 기능에 대한 regreesion Test 작성

상품 이미지 업로드 구현

목표

  • 상품 등록 시, 상품 이미지 업로드를 구현

요구사항

  • NCP의 Object Storage의 AWS S3 SDK를 이용해, 상품 이미지 업로드를 구현합니다.

상품, 유저 캐싱 구현

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • 상품 데이터와 유저 데이터 조회 시, 캐싱을 통해 조회 성능을 개선합니다

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • 상품 데이터 캐싱 처리
  • 유저 데이터 캐싱 처리

참고 자료

  • 해당 작업 진행 시, 참고했던 자료에 대해 기재합니다.(ex 기능 별 사진)

로깅 라이브러리 적용

목표

로깅 라이브러리인 Log4j2를 프로젝트에 적용합니다

요구사항

Log4j2를 프로젝트에 적용

예외 처리 리팩토링

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • 예외 처리와 관련된 코드를 리팩토링 합니다

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • ErrorResult 객체에서, 에러 코드도 관리하도록 변경
  • GlobalControllerAdvice 에서, GoodsForYouException 과, 그 외 Exception 처리하도록 변경

프로젝트 설정

  • Spring initializer 사용하지 않고 프로젝트 생성하기 및 의존성 라이브러리 설정하기
  • 프로젝트 설정 중 모르는 키워드가 나오면 학습

로그인 체크 기능 구현

목표

  • 공통 관심사인 로그인 체크 기능에 대해 구현

요구사항

  • 로그인이 요구되는 기능에 대해, 로그인 여부를 체크하는 공통 관심사에 해당하는 기능을 구현

참고 자료

추후 추가 예정

상품 조회 구현

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • 등록된 상품의 ID 값을 통해, 상품을 조회할 수 있도록 합니다

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • 상품 ID를 통한 상품 조회 시, ID값이 정상적이지 않을 경우, 예외를 던집니다.
  • 상품 ID값이 정상적일 경우, ID값에 해당하는 상품을 반환합니다.

@Transactional 프로젝트 코드에 적용

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • @Transactional 어노테이션을 코드에 적용해, 스프링에서 제공하는 트랜잭션 처리를 적용 합니다.

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • @Transactional 어노테이션 적용

액세스 로그 수정

목표

  • 현재 access log의 포맷으로는 사용자의 요청과 응답에 대한 정보가 부족해 포맷을 수정합니다.

요구사항

  • 사용자가 처음 요청했을 때 부터 response 가 내려갈때까지 정보를 한줄에 표시하도록 구현
  • 액세스 로그 포맷 예시
{“traceId”: “request1234”,“status”: 500,“requestTime”: “xxxx-xxx”,“elapseTime”: “100ms”,“reqHeader”: {},“requestBody”: {},“body”: {“WrappedResponseStatusInFilter”: 200,“createUser”: “{}.{}() elapsed time {} ms”,“statusCode in Interceptor”: 201, “ResponseMessage”: “INTERNAL_SERVER_ERR”}}
  • log4j2.xml 파일에 액세스 로그를 기록하는 로거 추가

참고 자료

Github Action을 통한 CI/CD 구축

작업 목표

  • Github Action을 통해, main branch로 코드가 merge 가 되면 Github action이 자동으로 CD 프로세스를 작동시키도록 하는것이 목표

할일

  • Naver Cloud Platform 서버 생성
  • github action을 통한 CI/CD 구축 방법 서칭
  • CD 적용

참고자료

프로젝트 컨벤션 정하기

☑️ TODO List

  • Issue 컨벤션 정하기
  • Pull Request Rule 정하기
  • Commit 컨벤션 정하기
  • Branch 전략 정하기
    • GitFlow 전략을 사용

상품 이미지 모듈 삭제

목표

  • 현재 서버 비용 문제로, object storage를 사용하지 못하고 있어 잠시, 상품 이미지 모듈을 삭제합니다.

상품 목록 조회 API

목표

해당 작업의 목적과 목표에 대해 간략히 설명 합니다.

  • 상품 목록 조회 Api 구현

요구사항

해당 작업에 관한 요구사항에 대해 정리 합니다.

  • 상품 목록 조회 API 구현
    • 상품 목록 조회 시, 10개씩 조회
    • 상품 목록 페이징 처리 시, noOffSet으로 처리
  • 상품 목록은 최신 순(등록일자 기준) 정렬

상품 목록 응답 (json 예시)

{
 "resultCode" : "SUCCESS",
  "result": [
      {
        id : 0,
        categoryId: 1,
        title: "상품1",
        price: 10000,
        productStatus: "TRADABLE",
        createdAt: "2023-06-10",
      }]
}

참고 자료

  • image

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.