[Investment-service] 프로젝트 회고

그냥·2022년 9월 21일
0

drf

목록 보기
2/2

1. 구성

1) 설명

증권 서비스(앱)에서 사용되는 투자 및 자산 관리 API를 만든 프로젝트이다. 자산 메인 및 상세 화면과 보유 종목 그리고 투자금 입금 API를 구현하였다.


2) 개발 기간

2022.09.16 ~ 2022.09.21



2. 구현 사항

1) 데이터 업로더

  • 제공되는 데이터 셋을 API에서 사용할 수 있도록 정제하여 DB에 업로드
  • 오류 데이터가 있을 경우 이를 제외한 데이터만 업로드

2) 투자화면 데이터 조회 API

  • 계좌명, 증권사 등 기본적인 계좌 정보들을 조회할 수 있는 API

3) 투자상세 화면 데이터 조회 API

  • 계좌 정보와 투자 원금, 총 수익금, 수익률을 조회할 수 있는 API
  • 총 수익금, 수익률은 DB 내에 저장되어 있지 않음
  • 총 자산, 투자 원금, 총 수익금을 연산 처리하여 총 수익금, 수익률을 반환

4) 보유 종목 조회 API

  • 유저가 보유하고 있는 종목을 조회할 수 있는 API
  • 보유 종목 평가 금액은 DB에 저장되어 있는 종목 보유 수량과 종목 현재가를 곱해서 반환

5) 투자금 입금 API

투자금 유효성 검사 API

  • 계좌번호, 고객명, 거래금액을 요청 데이터로 받음
  • 전달한 계좌번호의 계좌가 전달한 고객명으로 되어 있는지 유효성 검사
  • 식별자를 클라이언트에 반환


3. 회고

DRF 기반으로 만든 두 번째 프로젝트였다. 첫 번째로 만들었을 때보다는 확실히 익숙해졌지만 그래도 기본적인 부분에서 놓치는 것이 많았다.

Blocker

POST body로 데이터를 날렸을 때 Serializer에서 request.data를 받는 법

이는 Serializer에서 Meta의 fields에 받는 데이터 항목이 있어야 하는데 이를 알지 못하고 그냥 받으려고 했다가 validated(self, data)의 data가 빈 값으로 되어 이었다.

Serializer에서 Meta의 fields에 없는 항목을 Response로 주는 방법

var = serializers.SerializerMethodField()

처럼 fields 위에서 먼저 선언해주어야 한다. 그리고 def get_변수명 으로 함수를 선언하고 그 안에서 반환되는 값이 {"var" : "return 값"}으로 들어간다.

Serializer에서 Meta의 fields에 있는 항목을 POST의 데이터를 받는 용도로만 사용하고 Response에서는 없애는 방법

extra_kwargs = {	
	"user_name": {"write_only": True}
}

이처럼 Serializer의 Meta 안에 {항목명: {"write_only": True}}를 하면 POST에서 data를 받는 용도로만 사용되고 Response에는 나오지 않는다.

다음 프로젝트를 진행할 때는 기본적인 부분을 빨리 진행하고 좀 더 많은 기능과 리팩토링을 진행할 수 있도록 해야겠다.

0개의 댓글