생각정리/항해99

[주특기 3주차] Spring 5일차

생각중임 2023. 9. 13. 23:21

Spring 과제 Level 5


신규 서비스 요구사항

  1. 게시글 좋아요 API
    • 사용자는 선택한 게시글에 ‘좋아요’를 할 수 있습니다.
    • 사용자가 이미 ‘좋아요’한 게시글에 다시 ‘좋아요’ 요청을 하면 ‘좋아요’를 했던 기록이 취소됩니다.
    • 요청이 성공하면 Client 로 성공했다는 메시지, 상태코드 반환하기
  2. 댓글 좋아요 API
    • 사용자는 선택한 댓글에 ‘좋아요’를 할 수 있습니다.
    • 사용자가 이미 ‘좋아요’한 댓글에 다시 ‘좋아요’ 요청을 하면 ‘좋아요’를 했던 기록이 취소됩니다.
    • 요청이 성공하면 Client 로 성공했다는 메시지, 상태코드 반환하기
  3. 예외처리
    • 아래 예외처리를 AOP 를 활용하여 구현하기

더나가가기 서비스 요구사항 수정

  1. 회원탈퇴(기능추가), 게시글 삭제, 댓글 삭제 시 연관된 데이터 모두 삭제될 수 있도록 구현해 보세요!
  2. 대댓글 기능을 만들어 보세요!
    • 대댓글 작성하기                    
    • 댓글 조회 시 대댓글도 함께 조회하기
  3. 게시글과 댓글 조회할 때 페이징, 정렬 기능을 추가해 보세요!
  4. 게시글 카테고리 만들어 보세요!
    • 게시글을 분류하는 카테고리를 만들어서 게시글을 작성할 때 카테고리 정보도 함께 저장하기
    • 카테고리 별로 게시글을 조회하는 기능 추가하기
  5. AccessToken, RefreshToken에 대해 구글링해 보고 RefreshToken을 적용해 보세요!

API 명세서 및 테스트

노션 - https://brash-scissor-ee5.notion.site/Lv5-bd6a3658d0a44e2e9f9f86088a4aceeb?pvs=4

카테고리를 보드와 일대다 관계로 해서 보드에서도 카테고리를 사용하고 카테고리에서도 보드를 사용하기 때문에 양방향 구현했다.
어제는 생각을 잘 못해서 게시글을 쓰면서 카테고리를 생성해서 입력을 해버렸는데 카테고리는 미리 등록되어 있는 것을 선택해서 사용하는 거기 때문에 카테고리 추가를 따로 구현하고 게시글 작성에서는 등록된 카테고리를 사용만 하니 간단하게 구현을 할 수 있었다.
RefreshToken은 보완강화를 위해서 사용하는 방법으로 AccessToken은 짧은 만료기간을 가지고 RefreshToken은 긴 만료기간에 DB에 저장해서 관리를 하면서 AccessToken이 만료더라도 RefreshToken이 만료가 되지 않았으면 AccessToken을 재발급받아서 바로 사용할 수 있도록 하고 RefreshToken도 탈취의 위험이 있기 때문에 DB의 RefreshToken과 다를 때도 토큰검증을 하도록 하였다.