-
🆕 회원 가입 API
-
API 가 사용될 화면 보기
-
username, password를 Client에서 전달받기
-
username은
최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)
로 구성되어야 한다. -
password는
최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9)
로 구성되어야 한다. -
DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기
-
참고자료
-
-
🆕 로그인 API
-
**게시글할일카드 작성 기능 API** -
선택한
게시글할일카드 조회 기능 API -
**게시글할일카드 목록 조회 기능 API** -
선택한
게시글할일카드 수정 기능 API-
API 가 사용될 화면 보기
-
선택한
게시글할일카드의제목
,작성 내용
을 수정할 수 있습니다. (작성자명)- 토큰을 검사한 후, 유효한 토큰이면서 해당 사용자가 작성한 게시글만 수정 가능
- 할일 제목, 할일 내용을 수정하고 수정된 할일 정보는 Client 로 반환됩니다.
서버에 게시글 수정을 요청할 때 비밀번호를 함께 전달합니다.선택한 게시글의 비밀번호와 요청할 때 함께 보낸 비밀번호가 일치할 경우에만 수정이 가능합니다.
-
수정된
게시글할일의 정보를 반환 받아 확인할 수 있습니다.- 반환 받은 할일 정보에는
할일 제목
,할일 내용
,작성자
,작성일
정보가 들어있습니다. 반환 받은 게시글의 정보에 비밀번호는 제외 되어있습니다.
- 반환 받은 할일 정보에는
-
-
🆕 할일카드 완료 기능 API
-
🆕 댓글 작성 API
-
🆕 댓글 수정 API
- 토큰을 검사한 후, 유효한 토큰이면서 해당 사용자가 작성한 댓글만 수정 가능
- 선택한 댓글의 DB 저장 유무를 확인하기
- 선택한 댓글이 있다면 댓글 수정하고 수정된 댓글 반환하기
-
🆕 댓글 삭제 API
- 토큰을 검사한 후, 유효한 토큰이면서 해당 사용자가 작성한 댓글만 삭제 가능
- 선택한 댓글의 DB 저장 유무를 확인하기
- 선택한 댓글이 있다면 댓글 삭제하고 Client 로 성공했다는 메시지, 상태코드 반환하기
-
🆕 예외 처리 (ResponseEntity 사용)
-
API 예외응답 예시 보기
-
토큰이 필요한 API 요청에서 토큰을 전달하지 않았거나 정상 토큰이 아닐 때는 "토큰이 유효하지 않습니다." 라는 에러메시지와 statusCode: 400을 Client에 반환하기
-
토큰이 있고, 유효한 토큰이지만 해당 사용자가 작성한 게시글/댓글이 아닌 경우에는 “작성자만 삭제/수정할 수 있습니다.”라는 에러메시지와 statusCode: 400을 Client에 반환하기
-
DB에 이미 존재하는 username으로 회원가입을 요청한 경우 "중복된 username 입니다." 라는 에러메시지와 statusCode: 400을 Client에 반환하기
-
로그인 시, 전달된 username과 password 중 맞지 않는 정보가 있다면 "회원을 찾을 수 없습니다."라는 에러메시지와 statusCode: 400을 Client에 반환하기
-
https://documenter.getpostman.com/view/30857682/2s9YXpWJpo#869d62ab-cec4-41bf-bb31-7e6b6aa796e3
- JWT 인증 / 인가
- Spring Security를 이용한 보안
- @Valid를 이용한 유효성 판단
- HttpResponse를 이용한 헤더로 원하는 정보 전달
- JPA를 이용한 Server와 DB 연결
- Postman을 이용한 JWT 토큰 헤더로 주고 받기
- ResponseEntity를 이용한 Status와 Message 전달하기
- Spring Security 자체가 굉장히 복잡하고 어려웠던 것 같다.
- JWT에 대한 이해도가 많이 떨어지는 것 같다.
- @Valid에 대한 이용방법이 미숙했다.
- ResponseEntity에 대한 이용방법이 미숙했다.
- Spring Security에 대한 이해도를 높여야할 필요성이있습니다. 좀 더 자세하게 뜯어보고 공부를 많이 해봐야되겠다는 생각을 갖게 되었습니다.
- JWT 또한 마찬가지로 좀 더 깊게 이해할 필요성을 느꼈습니다. 강의를 좀 더 보고 갖고있는 책에 JWT에 관한 내용을 찾아봐야겠습니다.
- @Valid의 Min과 Max에 대한 이해가 문제였습니다. 이 두 가지 Annotation이 숫자에만 해당하는 것을 몰랐습니다.. 좀 더 찾아보고 사용하는 습관을 들여야될 것 같습니다.
- ResponseEntity를 이용한 예외처리를 통해 Status와 message를 전달하는 방법을 이번 프로젝트를 통해 연습을 하였습니다. 좀 더 많은 코드를 보고 더 많은 경험이 필요할 것 같습니다.
- 🆕 DTO, Entity Test 추가하기
@Test
를 사용해서 DTO 와 Entity Test 를 추가합니다.- User, Todo, Comment, DTO 에 존재하는 메서드들에 대해서 테스트를 추가합니다.
- 🆕 Controller Test 추가하기
@WebMvcTest
를 사용하여 Controller Test 를 추가합니다.- Todo, Comment Controller 에 대해서 테스트를 추가합니다.
- 🆕 Service Test 추가하기
@ExtendWith
를 사용하여 Service Test 를 추가합니다.- User, UserDetails, Todo, Comment Service 에 대해서 테스트를 추가합니다.
- 🆕 Repository Test 추가하기
@DataJpaTest
를 사용하여 Repository Test 를 추가합니다.- User, Todo, Comment Repository 에 대해서 테스트를 추가합니다.
- @Test를 이용하여 테스트 코드 작성
- Mock을 이용한 가짜 객체 생성
- assertThat을 이용한 예측값과 실제값 비교
- mockMvc를 이용하여 가상 서버로 응답 받기
- given - when - then 패턴
- Generate의 타입이 Identity였는데 이 경우 Transaction이 걸려있어도 rollback이 되지 않는다는 사실을 몰랐습니다.
- Test라는 개념 자체가 와닿지 않는 부분이 있었습니다.
- 새로운 개념을 공부하는 것에 대하여 조금 어려운 부분이 있었습니다.
- given() 메소드에서 메소드를 만났을 때 Return에 해당하는 부분이 나간다는 사실을 받아들이기 어려웠습니다.
- void 테스트를 어떻게 해야하는지가 막막했습니다.
- 테스트에 관하여 좀 더 많은 공부를 진행해야 할 것 같습니다.
- void 메소드를 테스트를 진행할 때 verify를 사용하거나 doXXX를 사용하여 테스트를 진행하였습니다.
- assertThat을 이용하여 비교하는 방식을 더 공부하였습니다.
- Test가 더 익숙해지도록 프로그램을 짤 때 자주 이용해 봐야겠습니다.