원티드 - 프리온보딩
디셈버앤컴퍼니 기업과제
[1] 기획
참여기업
디셈버앤컴퍼니 - 핀트
기업과제
주어진 고객 투자 데이터를 응답하는 REST API 개발
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 문서
상세보기
기획문서
노션 - 디셈버앤컴퍼니 기업과제