💫 2차 프로젝트 때, 새롭게 구현한 기능
- 회원가입 CRUD, JWT 인증 방식으로 로그인 구현
- Notification
- TIL 글 좋아요 UP 기능
- Comment (본인 댓글만 삭제할 수 있게, 댓글 달 수 있게)
- My Profile Update
💫 기술적으로 새롭게 배운 것
✅ JWT 인증 방식으로 로그인 구현
- 일반적인 데이터를 다음 페이지로 넘겨주는 것을 넘어 사용자의 id와 password를 이용해 검증된 사용자에게 발급되는 token을 이용하였고, 보안적인 이슈에 대한 고민의 순서를 뒤로 늦추기 위해 로컬, 세션에 저장하지 않고 일단 쿠키에 넣었다.
- token을 쿠키나 storage에 저장하지 않는다면 문제가 생긴다. 왜냐하면, 페이지가 여러 개면 변수가 share 하지 않기 때문이다. 우리는 token을 share 하기 위해, cookie에 넣었다.
✅ GIT 코드, 이슈, 프로젝트, 위키 기능 사용
- issue 란? 프로젝트를 진행하면서 발생하는 모든 이슈를 말하며 버그 발생, 개발, 풀 리퀘스트 등이 있다.
깃헙에서는 이슈기능을 통해 프로젝트에서 발생하는 모든 문제를 관리할 수 있도록 돕는다.
우리 TDP 프로젝트는 여러 이슈를 만들었다.
- 하지만 생성된 이슈는 리스트 형태로 굉장히 관리하기 힘들어 보인다. 이슈가 굉장히 많아지면 어떤 이슈를 찾기가 점점 힘들어 질 것이다. 이러한 문제를 돕기 위한 기능이 label 이다. 우리는 각 이슈에 대해 labeling을 통해 검색할 수 있고, 이슈별 주제를 구분할 수 있게 해주었다.
- 각 이슈를 배당한뒤 개인별 진행과정을 Project 칸반 보드를 통해서 확인하기 쉽게 만들었다.
- 우리는 9시, 14시, 19시 하루 총 3번의 회의를 가졌다. 회의 시간 사이에 프로젝트 기능을 통해 개인별 진행상황을 미리 확인할 수 있어 효율적으로 협업할 수 있었다. 일주일간 총 약 50개의 이슈가 있었고 개인별 하루 평균 2-3개의 이슈를 해결하였다.
✅ 이미지 업로드시 S3 사용하기
- S3는 파일을 저장하는 서비스이다. S3를 사용하여 이미지를 저장하도록 구현했다. 파일을 저장하는 폴더인 버킷 안에 이미지가 저장이 된다. S3에 업로드 되는 모든 파일에는 객체 URL이 부여된다. 파일의 권한을 퍼블릭으로 부여하고, 해당 URL을 브라우저 주소창에서 호출하면 업로드된 파일에 접근할 수 있다.
✅ 설정값 처리
- Python에서 설정값을 관리하는 방법은 총 4가지가 있다. 환경변수 통해 설정값을 관리하는 방법을 택했다. 확장성을 높이기 위해, 해당 방법을 선택했다. MongoDB 계정과, AWS 객체 URI, AWS S3 URI, AWS S3 버킷이름을 설정값 처리 해두어 Github에 배포 할 때, 해당값이 노출되지 않게 했다.
💫 느낀점
- 협업 잘하고 싶어서, 다양한 방법을 시도했었다.
그 중 협업을 잘 하기 위한 근본은 한사람만 프로젝트 전체를 생각하는 것이 아니라, 다같이 회의전에 프로젝트 방향성에 대해 늘 염두해두고, 개발에 집중하고 실행하는 것에 집중하는 것이었다. 개발에 집중하되, 전체방향을 생각하면서 하니 프로젝트 데드라인까지 할 수 있었다. - 그리고, PR 할 때, 2명이상이면 승인해야 push 할 수 있도록 했다. 타인에 대한 코드의 이해를 높일 수 있었고, 코드 개선에도 시간을 많이 투자할 수 있었다. 좋은 역량을 가진 팀원들과 함께함으로, 끝까지 할 수 있었고 매 순간이 감사하고 성장하는 순간이었다.
- 보다 체계적인 협업을 느낄 수 있었고 점점 코드량이 많아지다 보니 서로가 서로의 진행과정을 알아야 하고 API의 변경과 확장에대한 협의가 확실히 이루어지지 않으면 효율적인 작업은 불가능 하다는 것을 깨달았다. DB칼럼명, 함수명, 변수명, 페이지별 API 활용 등등 같이 결정하고 공유하는 과정들이 필수적임을 체감하면서 개발자의 일이라는게 문서화하는 작업이 많이 필요함을 이번 2차 프로젝트에서 자주 느꼈다.
- 1차 프로젝트 때는 데드라인을 후하게 잡고 잔가지들은 다 잘랐다면, 이번 프로젝트는 시간과의 싸움이였다. 1차 프로젝트 때는 가장 필요한 기능들을 기반으로 뿌리를 내리고 나가는데 매번 새로운 issue는 떠올랐고 CRUD를 쪼개며 작업 단위를 작게 만들어 협업을 진행 했다. 하지만 2차 프로젝트 때는 기능 별로 나눠서 협업이 가능해진 시점이 되어, 정말 뿌듯하고 자랑스러웠다.
- 우리 CDP팀 최고 👍🏻
'Project > TIL, WIL' 카테고리의 다른 글
TIL(25) 21-10-21 : 자료구조 (스택, 큐, 해쉬) (0) | 2021.10.21 |
---|---|
TIL(24) 21-10-20 : 구현, Linked List, 이진 탐색, 재귀 (0) | 2021.10.21 |
TIL(22) 21-10-18 : 배포 그리고 보안의 중요성 (0) | 2021.10.19 |
TIL(21) 21-10-15 : PR 코드 리뷰, S3로 이미지 업로드 (0) | 2021.10.19 |
TIL(20) 21-10-14 : My Page 구현 (0) | 2021.10.19 |