본문 바로가기

Project

[Pre-Onboarding] 8percent 회고록

1.  프로젝트 설명

▶ Github

https://github.com/Wanted-Preonboarding-Backend-1st-G5/Assignment4

 

▶ 팀원 구성

김태우, 고유영, 박지원, 박세원, 최신혁

 

▶ 진행 기간

21.11.11(목) 17:00 ~ 21.11.13(토) 10:00

 

▶ 필수 구현 기능

 

▶ 사용기술 스택

▷ Python 3.8 & Django 3.2 & sqllite

▷ AWS EC2, Docker

▷ Git, Github, Swagger

 

2.  주요 기능

▶ 모델링

 

▶ 유저 API(회원가입, 로그인, 로그아웃)

▷ 장고 인증 시스템을 사용하여 커스텀 유저 생성

저는 이전에 회원가입, 로그인 부분을 구현할 때 장고에서 기본적으로 제공하는 기능들을 사용하지 않고 구현을 했었습니다.

이번에는 장고에서 기본적으로 제공하는 기능들을 사용했고, 기본적으로 아래의 사항을 지원합니다.

저희는 username 필드를 email로 사용하기로 했고, 필수로 name이라는 필드를 받기로 커스텀해서 사용했습니다!

Django 공식문서

 

▷ rest_auth를 사용하여 로그인, 로그아웃, 토큰 발행 구현

rest_auth와 rest_framework.authtoken을 설치한 뒤, 제공하는 LoginView, LogoutView를 사용해서 로그인 기능과 로그아웃 기능을 구현하였습니다. 그리고 로그인을 했을 때 아래와 같이 토큰 값이 생성됨을 알 수 있었습니다!

 

 

▶ 입금, 출금 API

▷ 계좌의 소유주만 계좌에서 입금, 출금

▷ 잔액을 넘어서 출금 요청을 하면 에러 메세지 반환

 

▶ 계좌 생성 및 계좌 List API

▷ 로그인한 유저만 접근 및 생성 가능

▷ 자신의 계좌만 List로 보여준다

 

▶ 거래내역 조회 API

▷ 계좌의 소유주만 거래 내역 조회 가능

▷ 입금, 출금만 선택해서 필터링

▷ 거래일시별로 조회 기간을 정해서 필터링, Pagination

 

4. 프로젝트를 마치며

▶ 기억에 남는 부분

과제를 받고 팀원들과 오랜 시간 동안 각자 이해한 프로젝트의 구체적인 내용을 공유하고 궁금점들을 이야기하는 시간을 가졌습니다.

과제 시작 전에 각자 모델링과 API 구성을 생각해오기로 했고, 과제 요구사항들을 보면서 궁금한 점들을 노션에 적어 공유하고 이야기하는 시간이었는데 너무 유익한 시간이었습니다!

 

V 모델링에서 출금과 입금 테이블을 각각 나눌 것인지? 합쳐서 진행하는 것이 나을지?
V 과제에서 입금, 출금 이외에 송금도 과제의 일부로 생각하였는지?
V 계좌조회 URL에서 노출되는 계좌 정보를 어떻게 표현할 것인가?
V 에러코드 작성은 어떻게 할 것인가?
V 변수는 어떻게 만들면 좋을지?

 

위의 질문처럼 사소한 것부터 과제를 각자 어떻게 이해했는지 이야기하고 과제를 시작하니, 

기능을 분담하고 코드를 치기 전, 고민하고 충분한 소통이 이루어져야 하는 부분이 어떤 부분인지 알게 되었다.

사소한 컨벤션도 직접 피드백 주셔서 디테일을 더욱 잡아가는 과정이라 나한테는 더욱 의미 있는 시간들이었고,

더욱 신경 써야겠다!

 

 

 

▶ 아쉬웠던 부분 & 보완할 점

이번 과제에서는 개인적인 사정으로 다른 분들에 비해 시간 투자를 많이 하지 못했다.

프로젝트의 어느 정도 담당 기능 구현을 하고 마지막 마무리까지 팀원들과 같이 하지 못해서 너무 죄송했고,

그만큼 아쉬운 마음이 남았다.