[프로젝트] payhere 기업과제 회고

Error maze·2022년 7월 19일
0

project

목록 보기
2/4
post-thumbnail

7.4 ~ 7.8

5일 간의 첫번째과제, payhere 기업과제가 끝났다.
나는 가계부의 crud를 구현하고, 그에 대한 테스트코드를 작성했다.
브랜치를 사용하여 협업을 하는 것에 익숙해졌다.

😬 Problems I faced

첫번째 문제 : Docker 환경에서의 개발

협업을 함에 있어 각자의 로컬환경이 다르다보니 도커로 개발환경을 만들어 작업을 진행하는게 좋다는 의견이 나와 모델링과 함께 개발환경도 같이 세팅했다.
그리고 docker-compose 파일에 웹서버와 db를 만들어 동시에 컨테이너를 실행시키는 방식으로 진행을 하였는데, 웹서버를 실행시키는 명령어를 잘못 입력한 부분에서 계속 막혔었다. (web bash를 사용하겠다는 명령어를 입력한 다음에 서버를 실행시켜야했다)
이렇게 초반에 개발환경 세팅 때 시간이 꽤 지체됐었던 것은 docker에 익숙지 않아서였다고 생각한다.

그리고 마지막으로 도커가 무거워서 내 노트북이 굉장히 느려졌다.
테스트하는 데도 시간이 오래걸렸다. 빨리 새 노트북을 사고 싶다..

두번째 문제 : 삭제했던 것을 복구하는 기능

삭제한 내역은 언제든지 다시 복구 할 수 있어야 한다는 것이 과제의 요구사항 중 하나였다. 이를 함수로 정의하여 delete_flag를 기준으로 toggle형식으로 삭제/복구할 수 있도록 구현하였는데(다른 팀원이 의견을 내신 후 utills.py에 작성하셨다.) 이.. 함수가 적용되는 것을 이해하는 데에 오래걸렸다.

세번째 문제 : 테스트 코드

가계부 crud를 테스트하는 코드를 작성하던 중에
로그인을 한 사용자, 즉 이 프로젝트에서는 token이 발급된 사용자만이 crud를 할 수있다고 생각해서 토큰이 발급되는 부분까지 테스트코드를 짰다.
근데 이렇게 테스트 코드를 짜면 unit test가 아니라 integration test가 되어버린다.

😊 What I learned

  • delete_flag를 설정하여 삭제/복구를 구현하는 로직에 대해 이해했다.
  • 보통 delete는 완전삭제라서 잘 쓰지않는다고 한다. patch로 구현했다. (인스타계정을 삭제해도 한 달 간 다시 복구할 수 있는 것도 이 로직에 의한 것일까)
  • docker 환경에서 개발하는 방법에 대해 배웠다.
  • 한개의 APIView에서 메소드를 오버라이딩하는 방법을 배웠다.
    한개의 view로 깔끔한 코드를 작성할 수 있었다.
  • 테스트코드를 로그인까지 구현하면서 시간은 오래 걸렸지만, jwt토큰이 작동하는 방식에 대해 이해할 수 있었다.
  • test와 view의 폴더를 따로 생성하여 협업할 때 느꼈던 불편함을 해결했다.
    이때 test 폴더 안에는 init.py를 생성해야 테스트가 작동한다.
  • crud의 테스트 코드를 작성하는 방법에 대해 배웠다. 데이터 setup 부터 성공, 실패 테스트까지
  • postman으로 회원가입, 로그인, crud api를 실행하고 사용하는 방법에 대해 배웠다.
  • 코드리뷰에 익숙해졌다.

🤗 I'll try later

나중에 도커에서 작업하는 환경을 직접 세팅하여 개발해보고 싶다.
다른 팀원이 작성한 카테고리 view를 분석해야겠다.

profile
에러의 지옥 속 막다른 길 (ง •̀_•́)ง

0개의 댓글