Investment_service - [1] 기획

Dongwoo Kim·2022년 9월 15일
0

원티드 - 프리온보딩
디셈버앤컴퍼니 기업과제
[1] 기획


1. 요구사항

참여기업

디셈버앤컴퍼니 - 핀트

기업과제

주어진 고객 투자 데이터를 응답하는 REST API 개발


2. 프로젝트 기획

Investment_service


투자 조회 및 입금 서비스

MVP


  • 데이터 조회 : 투자화면, 투자상세 화면, 투자종목 화면
  • 투자금 입금
    • Phase1 : 입금 거래 정보를 서버에 등록
    • Phase2 : phase1 에서 등록한 거래정보 검증 후 실제 고객의 자산을 업데이트

과제 해석


1. 고객 관리

고객은 본인의 투자(계좌)종목을 조회할 수 있다.

  • 고객 정보
    • 고객명
    • 패스워드
  • 주요 기능
    • 로그인

2. 투자 관리

투자(계좌)고객에 의해 조회될 수 있다.

  • 투자(계좌) 정보
    • 고객 - FK
    • 증권사 - FK
    • 계좌명
    • 계좌번호
    • 투자원금
    • 계좌 총 자산
  • 주요 기능
    • 투자 조회
    • 투자 상세 조회

3. 종목 관리

종목은 하나의 투자(계좌)에 여러개가 등록될 수 있다. (ManyToMany 관계)

  • 종목 정보
    • 자산그룹 - FK
    • 종목 이름
    • 현재가
    • ISIN
  • 투자종목 정보
    • 종목 - FK
    • 투자(계좌) - FK
    • 보유 수량
  • 주요기능
    • 보유종목 조회

4. 투자금 입금 관리

입금은 서버에 등록된 입금거래정보를 의미하며 고객투자(계좌)정보를 포함한다. 투

  • '투자금 입금 Phase 1'에서 서버 등록시 DB에 생성된다.
  • '투자금 입금 Phase 2'에서 검증 실패시 DB에서 삭제된다.
  • 입금 정보
    • 고객 - FK
    • 투자(계좌) - FK
    • 거래 금액
    • 거래정보 식별자

고려항목

1. 고객관리 - 로그인

요구사항에는 포함되어있지 않지만 투자 조회(또는 투자금 입금) 시 고객이 본인의 투자를 조회(또는 투자금 입금)한다고 가정하고 JWT를 통한 로그인 기능을 구현하고 고객인증을 통해 본인의 투자(계좌)만을 조회(또는 투자금 입금)할 수 있도록 계획

  • 고객 데이터 생성시 비밀번호는 기본 고정값으로 설정, 비밀번호 기본 고정값은 .env파일에서 관리

2. 고객 - 투자(계좌) 관계

제공된 데이터셋에는 1명의 고객에 1개의 투자(계좌)로만 구성되었지만 구조적으로 1개 이상의 투자(계좌)를 가질 수 있다고 가정하고 FK로 계획, 따라서 투자 조회시 본인이 가진 투자(계좌)를 리스트로 조회할 수 있다.

  • 투자 조회 정리
    (고객 로그인)
    -> 고객 본인의 투자(계좌) 리스트 조회
    -> 그중에 하나 선택 시 해당 투자(계좌)에 대한 상세 조회
    -> 보유 종목 선택시 해당 투자(계좌)의 종목 리스트 조회

3. '투자 조회', '보유 종목 조회' -> 응답 데이터에 id 포함

'투자 상세 조회'를 제외한 '투자 조회'와 '보유 종목 조회' 기능은 여러개가 리스트로 조회될 수 있으므로 Front에서 각각의 개체를 식별할 수 있는 고유 id값을 응답 데이터에 포함시킬 계획

기타 추가사항

1. Batch

제공되는 데이터셋을 매일 최신 데이터로 갱신할 수 있어야함 오류 데이터 구분해야 함

2. 적절한 오류/예외 처리

3. 원본 데이터와 응답 값에 일관성(Consistency) 이 유지

투자금 입금 기능에서 고객의 총 자산을 업데이트할 때 일관성이 유지되도록 구현해야함

ERD

API 문서

상세보기

기획문서

노션 - 디셈버앤컴퍼니 기업과제

profile
kimphysicsman

0개의 댓글