[Pre Onboarding-회고]Assignment 4

연꽃·2021년 11월 13일
0

Pre Onboarding

목록 보기
7/12

과제 개요

회사

8퍼센트

과제 기간

2021.11.11-2021.11.13

사용 기술스택

  • Typescript
  • Nodejs
  • Nestjs
  • Sqlite
  • Typeorm

개발요구사항

1) 거래내역 조회 API

거래내역 API는 다음을 만족해야 합니다.

  • 계좌의 소유주만 요청 할 수 있어야 합니다.
  • 거래일시에 대한 필터링이 가능해야 합니다.
  • 출금, 입금만 선택해서 필터링을 할 수 있어야 합니다.
  • Pagination이 필요 합니다.
  • 다음 사항이 응답에 포함되어야 합니다.
    • 거래일시
    • 거래금액
    • 잔액
    • 거래종류 (출금/입금)
    • 적요

2) 입금 API

입금 API는 다음을 만족해야 합니다.

  • 계좌의 소유주만 요청 할 수 있어야 합니다.

3) 출금 API

출금 API는 다음을 만족해야 합니다.

  • 계좌의 소유주만 요청 할 수 있어야 합니다.
  • 계좌의 잔액내에서만 출금 할 수 있어야 합니다. 잔액을 넘어선 출금 요청에 대해서는 적절한 에러처리가 되어야 합니다.

과정

1. 트랜잭션에 대한 고민
돈을 주고 받는 과정에서, 시스템의 장애로 인해 돈을 주는 것까지는 진행이 되었는데 돈을 받지는 못한 상황이 나올 수 있다. 그렇기 때문에 트랜잭션에 대해 알았어야 하고 이를 코드에 잘 적용하는 것이 중요하다고 판단하여, 탐원들과 함께 많은 이야기를 나누었다. 그리고 이는 다음 링크에서 더 알아보겠다.

2. DB설계에 대한 고민
DB설계에 대해서도 이야기를 많이 하였다. 그리고 가장 고민을 했던 부분은 입금, 출금, 송금에 대한 데이터를 어떤 방식으로 저장할 것인가이다. 하나의 테이블로 할지, 두개의 테이블로 할지, 세개의 테이블로 할지 고민을 많이 했다. 이에 대한 자세한 고민과 결과는 다음 링크에서 알아보겠다.

배운점

1. 부트캠프 수료생에서 개발자까지 아직 멀었다는 것
이번 과제는 생각해야할 것이 정말 많았다. 그렇다보니 내가 이제까지 코딩을 한다고 생각했던 것이 진정한 코딩과는 거리가 멀다는 것을 깨달았다. 그리고 평범한 부트캠프 수료생이라는 것을 인정할 수밖에 없었다. 이것을 인정하고 개발자로 한 발자국 더 나아가고 싶다. 링크에 더 자세히 적어놓겠다.

2. 트랜잭션
트랜잭션에 대한 개념을 배운 적이 있지만, 그렇게 중요하다고 생각하지 않았다. 하지만 이번 과제를 하면서 트랜잭션에 대해서 조금은 알게 되었고, 앞으로 어떤 상황에서 트랜잭션에 대한 생각을 해야할지 조금 알 것 같았다. 자세한 사항은 링크에서 알아보겠다.

profile
우물에서 자라나는 중

0개의 댓글