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