개발 일자 : 2021.03.01 ~
박우림 회장 |
전순구 부회장 |
전민재 프런트 개발 (팀장) |
전상준 프런트 개발자 |
박우림 백엔드 개발 (팀장) |
전순구 백엔드 개발자 |
김지원 백엔드 개발자 |
- 기본적인 CRUD 기능 구현
- AWS S3를 통한 이미지 업로드 포함
- 인증 기능 구현
- 회원가입
- bcrypt를 이용하여 비밀번호 해시암호화
- salt와 함께 DB에 저장한다. -> salt는 비밀번호 복호화 시에도 사용된다.
- 로그인
- JWT 이용
- HS256 알고리즘 사용
- 로그인 유효시간 24시간
- 아이디 찾기
- 사용자가 입력한 이름 & 이메일을 인증한 후 해당 이메일로 아이디 발송
- 비밀번호 찾기
- 사용자가 입력한 아이디 & 이메일을 인증한 후 해당 이메일로 비밀번호 변경 URL 발송
- 비밀번호 변경 페이지의 URL은 랜덤한 토큰값 사용
- 토큰 유효시간 24시간
- 비밀번호가 변경되면 토큰이 삭제된다. -> 동일한 토큰으로 비번 변경은 1회만 가능.
- URL을 전달받은 회원만 비번 변경이 가능하다.
- 회원가입
- 알림 기능 구현
- 거래 완료
- 댓글
- 대댓글
- 모든 알림은 이메일을 통해 사용자에게 전송된다.
- 관심목록, 판매 목록, 구매 목록 구현
- 프로필 구현
- 무한 스크롤 구현
- 댓글(대댓글) 기능 구현
- 판매중, 예약중, 거래완료 등 상태를 통한 거래 진행 상황 기능 구현
- 협업 도구:
Git
,GitHub
,Kakao work
GitHub
에 Event(PR, Commit 등) 가 발생하면kakao work
로 알림이 간다.- 비대면으로 개발을 할 때에도 서로 어떠한 작업을 하고 있는지
kakao work
로 알 수 있도록 하였다.
- 협업 방법:
애자일
- 데일리 스크럼:
- 주 5일, 매일 오전 10시에 "어제 뭐 했고, 오늘은 무엇을 하겠다" 와 같이 나눈 후 각자 개발에 착수했다.
- 기능 구현을 시작할 때나 완료하였을 때는 기술 스택은 어떤 것을 사용했고, 왜 사용했는지 등에 대해 구체적으로 나누었으며, 더 좋은 방안은 없는지 팀원들의 피드백을 수렴했다.
- 스프린트:
GitHub
의Issue
를 활용.- 개개인이 주도적으로 자신의 개발 프로세스를 선정하고 스프린트(Issue) 를 작성했다.
- 각 스프린트 는 프로젝트 칸반보드의 ToDo가 되었으며, 이를 각 팀원이 직접 오늘 할 일을 지정하여 In Progress로 옮겨 작업하였다.
- 팀원이 미처 발견하지 못한 Issue가 있을 경우에는 회장 박우림이 최종 스프린트를 작성하였다.
- 기술 공유:
- 스프린트로 작성된
Issue
에 어떻게 구현하였는지 기록함으로써 팀원이 함께 성장할 수 있었으며, 이러한 자료는 후배 기수들에게도 좋은 자료와 모범이 될 수 있었다. - 테크톡을 2주에 1번씩 진행하였다.
- 개개인이 CS지식을 전문가가 될 정도로 공부한 뒤 강의하기 때문에 팀원 모두가 보다 효율적으로 다양한 CS 지식을 습득할 수 있었다.
- 스프린트로 작성된
- 데일리 스크럼:
프로덕트 서버의 기술 아키텍쳐
- 개발 서버도 아래와 동일하나 MariaDB가 별도로 분리되어있지 않고, 하나의 인스턴스로 운영된다는 것이 다르다.
- Jenkins와 Docker를 사용하여 배포 자동화를 구현하였다.