생각정리/항해99
[주특기 1주차] Spring 6일차
생각중임
2023. 8. 30. 22:32
Spring 과제 Level 2
신규 서비스 요구사항
- 회원 가입 API
- username, password를 Client에서 전달받기
- username은 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성되어야 한다.
- password는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성되어야 한다.
- DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기
- 참고자료
- 로그인 API
- username, password를 Client에서 전달받기
- DB에서 username을 사용하여 저장된 회원의 유무를 확인하고 있다면 password 비교하기
- 로그인 성공 시, 로그인에 성공한 유저의 정보와 JWT를 활용하여 토큰을 발급하고, 발급한 토큰을 Header에 추가하고 성공했다는 메시지, 상태코드 와 함께 Client에 반환하기
서비스 요구사항 수정
- 전체 게시글 목록 조회 API
- 제목, 작성자명(username), 작성 내용, 작성 날짜를 조회하기
- 작성 날짜 기준 내림차순으로 정렬하기
- 게시글 작성 API
- 토큰을 검사하여, 유효한 토큰일 경우에만 게시글 작성 가능
- 제목, 작성 내용을 저장하고
- 저장된 게시글을 Client 로 반환하기(username은 로그인 된 사용자)
- 선택한 게시글 조회 API
- 선택한 게시글의 제목, 작성자명(username), 작성 날짜, 작성 내용을 조회하기 (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해주세요.)
- 선택한 게시글 수정 API
수정을 요청할 때 수정할 데이터와 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후- 토큰을 검사한 후, 유효한 토큰이면서 해당 사용자가 작성한 게시글만 수정 가능
- 제목, 작성 내용을 수정하고 수정된 게시글을 Client 로 반환하기
- 선택한 게시글 삭제 API
삭제를 요청할 때 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후- 토큰을 검사한 후, 유효한 토큰이면서 해당 사용자가 작성한 게시글만 삭제 가능
- 선택한 게시글을 삭제하고 Client 로 성공했다는 메시지, 상태코드 반환하기
API 명세서 및 테스트
요구사항이 회원가입과 로그인이 추가되었고, 기존에 구현했던 프로젝트에서 게시글 작성, 수정, 삭제에서 토큰 검사 기능이 추가되었다.
페어님과 함께 기능을 분배한 후 같이 코딩을 하면서 계속 서로 물어가면서 기능들을 구현했다.
JWT를 이용해서 처음 추가를 하는 부분에 있어서 조금 오류들이 있어 수정하는데 시간이 조금 걸렸다. 기존에 있는 부분에서 가져와서 적용을 하는데도 작동이 잘 안 하는 부분들이 있어 새로 구현하면서 진행을 했다.
생각보다 회원가입과 로그인을 추가하는 부분에 있어서는 기능 구현은 생각보다 쉽게 되었는데 ResponseEntity를 이용하여 상태메시지를 보내는 부분이 오히려 많이 걸렸던 거 같다. 처음에는 제이슨형태를 넣어보려고 했는데 변환하는 과정에서 오류가 계속 나서 문자열로 수정했다가 결국에는 맵을 사용 해서 메시지를 넘기는 걸로 확정을 하고 구현을 하였다. 제이슨을 사용할 때 추가적으로 사용하는 라이브러리들에 관해서 찾아봐 사용법을 알아봐야겠다.