본문 바로가기

개발 일지

[TIL]이노베이션 캠프 31일차

 

Spring 심화 주차 8.26(금) ~ 9.1(목)

1. 개인 과제: Spring 핵심 키워드 정리
2. 팀 과제: 요구사항에 맞추어 API 구성 및 Git을 활용한 협업 

 

진행 계획

- 26일(금) API 명세서 작성, ERD 만들기

- 27일(토) 팀 과제에 필요한 강의 수강 및 공부

- 28일(일) 팀 과제 내가 맡은 이미지 업로드 기능 코드 작성

- 29일(월) 개인 과제 Spring 핵심 키워드 정리

- 30일(화) 팀 과제 코드 수정 및 검토

- 31일(수) 팀 과제 코드 취합 및 요구사항 충족 확인

- 1일(목) 팀 과제 코드 최종 취합 및 AWS 배포

 

1. 개발 진행 상황

1)  모든 팀원 각 기능 구현 완료

2) 기능 요구 사항 확인: 포스트맨 문서

 

요구사항

공통

  • cascade를 활용해 연관관계 중 상위 객체가 삭제될 경우, 하위 객체도 모두 삭제되게 하기

기능0

  • 게시글 1개 조회(상세 페이지용) 시, 댓글/대댓글/좋아요 수 모두 포함하여 response

기능1

  • 게시글 좋아요 기능 및 댓글/대댓글 좋아요
    • 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 좋아요 가능하게 하기
    • Exception AccessToken이 없거나, 유효하지 않은 Token일 때 ‘로그인이 필요합니다.’를 200 정상 응답으로 나타내기
    • 게시글 목록 response에 id, 제목, 작성자, 좋아요 개수, 대댓글 제외한 댓글 개수, 등록일, 수정일 나타내기
    • API 종류
      1. 좋아요 등록 API
        • AccessToken이 있고, 유효한 Token일 때만 요청 가능하도록 하기
        • 게시글, 댓글, 대댓글 reponse에 좋아요 개수 함께 나타내기
      2. 좋아요 취소 API
        • AccessToken이 있고, 유효한 Token일 때만 요청 가능하도록 하기
        • 게시글, 댓글, 대댓글 reponse에 좋아요 개수 함께 나타내기

기능2

  • 대댓글
    • 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 댓글/대댓글 작성 가능하게 하기
    • 댓글 리스트 response할 때 대댓글 리스트도 모두 포함해서 보여주기
    • Exception AccessToken이 없거나, 유효하지 않은 Token일 때 ‘로그인이 필요합니다.’를 200 정상 응답으로 나타내기
    • API 종류
      1. 대댓글 목록 조회 API
        • AccessToken이 없어도 댓글 목록 조회가 가능하도록 하기
        • 조회하는 게시글에 작성된 모든 댓글을 response에 포함하기
      2. 대댓글 작성 API
        • AccessToken이 있고, 유효한 Token일 때만 댓글 작성이 가능하도록 하기
      3. 대댓글 수정 API
        • AccessToken이 있고, 유효한 Token이면서 해당 사용자가 작성한 댓글만 수정 가능하도록 하기
      4. 대댓글 삭제 API
        • AccessToken이 있고, 유효한 Token이면서 해당 사용자가 작성한 댓글만 삭제 가능하도록 하기

기능3

  • (게시글에 들어갈) 이미지 업로드
    • hint. AWS IAM, SDK, S3
    • 게시글 작성 중 요청하는 플로우이며, 게시글당 1개의 이미지만 업로드 가능하다는 전제로 진행
    • 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 요청 가능하게 하기
    • s3 객체 주소를 response로 반환하기 (이미지 url)
    • Exception Multipartfile로 이미지 파일을 받고, 파일 변환에 실패할 경우, ‘파일 변환에 실패했습니다’를 200 정상 응답으로 나타내기
    • API 종류
      1. 이미지 조회 API
        • 게시글 조회 시 이미지 url 포함해서 response 하기
      2. 이미지 등록 API
        • AccessToken이 있고, 유효한 Token일 때만 이미지 업로드 API 요청이 가능하도록 하기

기능4

  • 게시글
    • 이미지 업로드 후, 받아온 response의 imgUrl을 포함하여 글 제목,내용,이미지 주소를 함께 업로드한다.
    • 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 요청 가능하게 하기
    • Exception 해당 게시글 조회 시, 존재하지 않는 게시글 id 일 때, ‘존재하지 않는 게시글 입니다.’를 200 정상 응답으로 나타내기
    • API 종류
      1. 전체 게시글 목록 조회 API
      2. 게시글 하나 조회 API
      3. 게시글 작성 API
      4. 게시글 수정 API
      5. 게시글 삭제 API

기능5

  • 마이페이지
    • AccessToken 속 사용자가 작성한 게시글, 댓글/대댓글, 좋아요한 게시글/댓글 분류하여 response
  • 게시글과 댓글 좋아요 개수 표시
    • AccessToken이 없어도 좋아요 개수 조회가 가능하도록 하기
    • 조회하는 게시글 리스트에 작성된 모든 좋아요 개수를 게시글 리스트 response에 포함하기
    • 조회하는 각 게시글에 작성된 모든 좋아요 개수를 게시글 리스트 response에 포함하기
    • 조회하는 각 댓글/대댓글에 작성된 모든 좋아요 개수를 댓글 리스트 response에 포함하기

기능6

  • 스케줄러
    • 매일 AM 01:00 마다 댓글이 0개인 게시물 전체 삭제하기
    • 삭제될 때마다 "게시물 <{게시물 이름}>이 삭제되었습니다." 라는 info level log 남기기

 

2. 새로 배운 것

과제 받았을 때 포스트맨 예시보고 오 저렇게 보여주는 것도 있구나 신기해서 포스트맨 이용해서 요구사항 체크해봤다.

쓸데없는 시간을 썼나 싶기도 하지만..포스트맨 좋다...백엔드를 공부해가면서 코드를 짜도 직관적으로 보는 게 힘들어서 더 이해하기 힘든 부분도 있었는데 저렇게 보이니까 좋기도하고 각 기능 한번씩은 어차피 해봐야하니까 저장 한번만 해놔도 테스트하기 쉬우니까 아주..굳!

 

 

3. 오늘 한 일 / 회고

팀 프로젝트 빌드해서 서버에 올리는것이 내가 마무리로 해야할 부분이었다.

그래서 빌드 하기 전 요구사항에 맞춰서 기능 다 돌려보는데 시간이 꽤 걸렸다ㅠㅠ

그래도 다 했는줄 알았는데 몇개 고쳐야할 부분을 찾아서 헛된 시간은 아니였다!

이제 서버에 올리기만 하면 끄읏!

 

4. TO-DO LIST

- 팀프로젝트 서버에 올리고 팀원들에게 도메인 주소 공유하기

- 팀프로젝트에서 내가 구현 안한 부분 코드 공부하기

 

5. 참고

https://velog.io/@yukyung/POSTMAN%EC%9C%BC%EB%A1%9C-API-%EB%AC%B8%EC%84%9C%ED%99%94-%EC%A7%B1-%EC%89%BD%EA%B2%8C-%ED%95%98%EA%B8%B0

 

POSTMAN으로 API 문서화 짱 쉽게 하기

POSTMAN으로 문서화를 편하게 합시다🤭

velog.io