우리 팀원
❤ 팀 소개
- 프로젝트 이름 : 뉴스피드 프로젝트
- 프로젝트 소개 : 취준생을 위한 뉴스피드
⭐ KPT
프로젝트
- 팀명 : Spring… 참 10조?
- 팀원 : 김진훈, 김지현, 장동하, 최혁
- 개발 기간 : 2023.11.21 ~ 2023.11.27
- 개발 내용 : 뉴스피드 사이트 백엔드 API 만들기
📜 KPT 회고
1. KEEP (잘 한 것)
협업
- 기능별로 개발 역할 분담
- Git, Github를 적극적으로 사용하려고 시도함
- main, dev, feature branch를 나누고, dev branch에 pull request를 요청해서 코드 리뷰 후에 merge 하는 방식으로 협업함
- pull request마다 코드 리뷰를 진행함
- application.yml 설정 파일을 개인별로 잘 관리함
- 코딩 컨벤션과 커밋 컨벤션을 정하고 지키려고 노력함
- 저녁에 매일 기능 개발 상황을 공유하는 시간을 갖음
기술
- 필요한 기능을 구현하기 위해 필요한 기술을 공부하고 잘 적용했음
- Swagger를 통한 API 명세 작성과 테스트
- AWS s3 버킷을 이용한 이미지 서버 연동
- Gmail SMTP를 이용한 이메일 자동 전송 기능 활용
- Github의 Read me 작성을 통한 꼼꼼한 문서화
2. PROBLEM (아쉬운 것)
협업
- Git commit 로그에 의미 없는 merge 로그가 많이 생성되어 지저분함
- Git pull reqeust 올리기 전에 pull을 받지 않고 올린 경우가 있음
기술
- tokenvalue에 jwt 형식이 아닌 값이 들어왔을 때의 허용하는 페이지에 대한 예외처리 미흡
- 다대다 연관관계 테이블에 복합키 개념을 적용하지 않음
3. TRY (하고싶은 것)
협업
- 팀원 개인의 역량을 파악하는 시간을 갖기
- 할 수 있는 것과 없는 것의 명확한 구분 필요
- Git commit 로그를 깔끔하게 관리해보고 싶음
기술
- 리팩토링 시도
- 다대다 연관관계에 복합키 개념을 적용 시도
# FEEL
김진훈
얼떨결에 팀장을 맡았는데 다들 얘기도 잘 들어주시고 맡은 기능 개발도 열심히 해주셔서 좋은 경험이였습니다.
저번 프로젝트에서 협업할 때 하고 싶었던 것들을 이번 프로젝트에서 많이 적용할 수 있어서 좋았습니다.
프로젝트 시간이 촉박해서 여전히 리팩토링은 도전하지 못한 것이 조금 아쉽습니다.
김지현
프로젝트에서 많은 기능을 구현하였음에도 적절한 분배와 역할 분담, 꼼꼼한 설계, 테스트, 개개인의 노력이 잘 이루어져 완성도 높은 프로젝트를 함께 이룬 것이 좋았습니다.
또한 적극적인 git 사용과 코드 리뷰를 통해 git과 github에 익숙해질 수 있었습니다.
장동하
오랜만에 몰입하는 경험을 해서 개인적으로는 좋았지만, 몰입한 시간 대비 많은 성과물을 내지 못해 아쉽습니다.
기능 구현을 재촉하지 않고 기다려주시고 또 많은 개념들을 알려주신 팀원 분들에게 감사드리며 항상 건승하시길 바랍니다.
최혁
잘 하는 분들 사이에서 정말 많이 배우고 갑니다.
⭐ 개발 일정
개발 일정
추가 할 일 메모
BaseResponse → API 명세와 동기화 해야함 → 처리했음
프로필 수정할 때 중복 닉네임 체크 해야함 - > 처리했음
유저 생성할 때 프로필 자동 생성되게 해야함 → 처리했음
모든 API 실행 테스트 해야함 → 했음
실행 테스트 끝나면 스웨거 적용 해야함 → 했음
스웨거 테스트 영상 만들어야함 → 햇음
ERD 수정해야함 → 했음
README → 했음
기능들 사용하는거 다 상상해보고 가능한 예외처리 해야함 → AOP로 하면 더 좋고
구현 기능 목록
- [x] 사용자 인증 기능 - 장동하
- 회원가입 기능
- 새로운 사용자가 ID와 비밀번호의 형태로 서비스에 가입할 수 있어야 합니다.
- 이 때, 비밀번호는 안전하게 암호화되어 저장되어야 합니다!
- 로그인 및 로그아웃 기능
- 사용자는 자신의 계정으로 서비스에 로그인하고 로그아웃할 수 있어야 합니다.
- 로그인에 성공하면 Jwt를 발급한다.
- 비밀번호 수정 시에는 비밀번호를 한 번 더 입력받는 과정이 필요합니다.
- 기능 시나리오
- 회원가입을 요청하면 인증 없이, 이메일과 비밀번호를 전달하는데, 이메일 인증을 통과하기 전에는 GUEST 권한을 가진 유저고, 통과하면 USER 권한을 가진 유저가 된다. → 회원가입 요청 API, 이메일 인증 요청하는 API
- GUEST의 권한: 이메일 인증 요청만 가능, USER의 권한: 모든 요청 가능
- 회원가입 요청에 대한 응답으로 성공 여부를 리턴한다.
- 로그인 요청을 하면, 이메일과 비밀번호를 전달하고 인증을 통과하면 응답으로 쿠키에 Jwt 토큰을 받는다.
- 로그아웃 요청을 하면, Jwt 토큰을 헤더에 넣고, 응답으로 쿠키에 로그아웃된 Jwt 토큰을 받는다.
- 이메일 인증 요청을 하면, 이메일 인증 값을 전달하고, 응답으로 성공 여부를 리턴한다. - 이메일 인증 값 생성 방법 구체화 필요
- [x] 이메일 가입 및 인증 기능 - 장동하