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 종류
- 좋아요 등록 API
- AccessToken이 있고, 유효한 Token일 때만 요청 가능하도록 하기
- 게시글, 댓글, 대댓글 reponse에 좋아요 개수 함께 나타내기
- 좋아요 취소 API
- AccessToken이 있고, 유효한 Token일 때만 요청 가능하도록 하기
- 게시글, 댓글, 대댓글 reponse에 좋아요 개수 함께 나타내기
기능2
- 대댓글
- 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 댓글/대댓글 작성 가능하게 하기
- 댓글 리스트 response할 때 대댓글 리스트도 모두 포함해서 보여주기
- Exception AccessToken이 없거나, 유효하지 않은 Token일 때 ‘로그인이 필요합니다.’를 200 정상 응답으로 나타내기
- API 종류
- 대댓글 목록 조회 API
- AccessToken이 없어도 댓글 목록 조회가 가능하도록 하기
- 조회하는 게시글에 작성된 모든 댓글을 response에 포함하기
- 대댓글 작성 API
- AccessToken이 있고, 유효한 Token일 때만 댓글 작성이 가능하도록 하기
- 대댓글 수정 API
- AccessToken이 있고, 유효한 Token이면서 해당 사용자가 작성한 댓글만 수정 가능하도록 하기
- 대댓글 삭제 API
- AccessToken이 있고, 유효한 Token이면서 해당 사용자가 작성한 댓글만 삭제 가능하도록 하기
기능3
- (게시글에 들어갈) 이미지 업로드
- hint. AWS IAM, SDK, S3
- 게시글 작성 중 요청하는 플로우이며, 게시글당 1개의 이미지만 업로드 가능하다는 전제로 진행
- 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 요청 가능하게 하기
- s3 객체 주소를 response로 반환하기 (이미지 url)
- Exception Multipartfile로 이미지 파일을 받고, 파일 변환에 실패할 경우, ‘파일 변환에 실패했습니다’를 200 정상 응답으로 나타내기
- API 종류
- 이미지 조회 API
- 게시글 조회 시 이미지 url 포함해서 response 하기
- 이미지 등록 API
- AccessToken이 있고, 유효한 Token일 때만 이미지 업로드 API 요청이 가능하도록 하기
기능4
- 게시글
- 이미지 업로드 후, 받아온 response의 imgUrl을 포함하여 글 제목,내용,이미지 주소를 함께 업로드한다.
- 200 AccessToken이 있고, 유효한 Token일 때(== 로그인 상태일 때)만 요청 가능하게 하기
- Exception 해당 게시글 조회 시, 존재하지 않는 게시글 id 일 때, ‘존재하지 않는 게시글 입니다.’를 200 정상 응답으로 나타내기
- API 종류
- 전체 게시글 목록 조회 API
- 게시글 하나 조회 API
- 게시글 작성 API
- 게시글 수정 API
- 게시글 삭제 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