Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* main -> dev merge (#252) * Dev to main (#251) * feat: Tag, Post, PostTag 엔티티 간 연관관계 매핑 (#20) * feat: 신고 카테고리 항목 추가 * Update PULL_REQUEST_TEMPLATE.md * feat: filetype enum값 추가 * feat: entity에 검증 어노테이션 추가 (#11) * feat: entity에 검증 어노테이션 추가 * feat: entity에 검증 어노테이션 추가 * style: 업로드 파일명, 서버 관리 파일명의 필드명 변경 --------- Co-authored-by: gywns0417 <[email protected]> * chore: 패키지 구조 개선 * Revert "chore: 패키지 구조 개선" This reverts commit f27a0d95080e705a953d94cfb7ef365a6a1f49cb. * chore: 패키지 구조 개선 * feat: Tag, Post, PostTag 엔티티 간 연관관계 매핑 --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> * feat: 검증 애노테이션 추가 (#26) * feat: 엔티티에 검증 애노테이션 추가 * style: 불필요한 import문 제거 * feat: 댓글 리포지토리 구현 * feat: 댓글 DTO 클래스 구현 * feat: 임시 Member, Post 리포지토리 구현 * feat: 댓글 리포지토리 재구현 * feat: 댓글 Service 클래스 구현 * feat: 댓글 Controller 클래스 일부 구현 * 게시글 작성 기능 구현 (#28) * feat: 신고 카테고리 항목 추가 * Update PULL_REQUEST_TEMPLATE.md * feat: filetype enum값 추가 * feat: entity에 검증 어노테이션 추가 (#11) * feat: entity에 검증 어노테이션 추가 * feat: entity에 검증 어노테이션 추가 * style: 업로드 파일명, 서버 관리 파일명의 필드명 변경 --------- Co-authored-by: gywns0417 <[email protected]> * chore: 패키지 구조 개선 * Revert "chore: 패키지 구조 개선" This reverts commit f27a0d95080e705a953d94cfb7ef365a6a1f49cb. * chore: 패키지 구조 개선 * commit test * dto * feat: 커밋 과정에서 변경사항 추가 * feat: getter 추가 * feat: dto 클래스 추가 * refactor: dto 구조 수정 * refactor: entity 생성자 추가 * feat: 게시글 작성 기능 추가 * test: 게시글 작성 기능 테스트 * feat: FileDto 클래스 추가 * test: fileDto 추가 * refactor: 불필요한 코드 제거 * fix: JSON 매핑 오류 해결 (#33) * fix: tag <-> TagPost 영속성 전이 추가 * feat: 게시글 전체 조회 기능 추가 (#34) --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> * refactor: 댓글 Service 코드 가독성 향상 * move: 불필요한 댓글 Request Dto 삭제 * refactor: 댓글 API 엔드포인트 수정 * feat: Post 엔티티 어노테이션 추가 구현 * fix: Post 엔티티 Category, viewStatus 필드 임시 @NotNull 해제 쿼리 테스트를 위해 미구현 상태인 Post 엔티티 필드 어노테이션을 일부 수정했습니다. * feat: Member 엔티티 @Getter 임시 추가 * feat: BalanceOptionRepository 임시 구현 * feat: BalanceOption 엔티티 @Getter 임시 추가 * feat: CommentCreateRequest 클래스에 balanceOptionId 필드 추가 * fix: CommentResponse 클래스에 likeCount() 임시 비활성화 테스트를 위해 현재 미구현 상태인 CommentLike 관련 코드를 임시 비활성화 했습니다.(Null값) * feat: CommentService 추가 구현 완료 BalanceOption 검증 코드(추후 BalanceOption 구현 완료 시 사용)를 추가 했습니다. * refactor: 댓글 컨트롤러 createComment() 메서드 수정 댓글 API 엔드포인트를 설계에 맞게 수정함에 따라 관련 사항들을 수정했습니다. * fix: 댓글 API 사용시 401 에러 해결 localhost:8080 접속 시 로그인이 필요 없도록 임시로 수정했습니다. * 게시글 CRUD 기능 구현 (#39) * feat: 신고 카테고리 항목 추가 * Update PULL_REQUEST_TEMPLATE.md * feat: filetype enum값 추가 * feat: entity에 검증 어노테이션 추가 (#11) * feat: entity에 검증 어노테이션 추가 * feat: entity에 검증 어노테이션 추가 * style: 업로드 파일명, 서버 관리 파일명의 필드명 변경 --------- Co-authored-by: gywns0417 <[email protected]> * chore: 패키지 구조 개선 * Revert "chore: 패키지 구조 개선" This reverts commit f27a0d95080e705a953d94cfb7ef365a6a1f49cb. * chore: 패키지 구조 개선 * commit test * dto * feat: 커밋 과정에서 변경사항 추가 * feat: getter 추가 * feat: dto 클래스 추가 * refactor: dto 구조 수정 * refactor: entity 생성자 추가 * feat: 게시글 작성 기능 추가 * test: 게시글 작성 기능 테스트 * feat: FileDto 클래스 추가 * test: fileDto 추가 * refactor: 불필요한 코드 제거 * fix: JSON 매핑 오류 해결 (#33) * fix: tag <-> TagPost 영속성 전이 추가 * feat: 게시글 전체 조회 기능 추가 (#34) * feat: 게시글 단건 조회 기능 추가 * feat: 게시글 삭제 기능 추가 * fix: 생성자 private으로 접근 제어 * feat: MemberRepository 클래스 추가 * refactor: 리뷰받은 내용들 수정 * test: 게시글 CRUD 테스트 코드 작성 * refactor: dto에서 views, viewstatus 제거 --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> * feat: 회원 투표 기능 구현 (#32) * chore: Spring Security 라이브러리 임시 주석 처리 * feat: 회원 투표 기능 구현 * test: 투표 생성 기능 단위 테스트 * feat: 선택지 투표 API 컨트롤러에 응답 메시지 추가 * feat: VoteController의 vote 메서드에 201 응답 코드 추가 * test: Mockito를 사용해서 테스트 코드 작성 * feat: 투표 현황 조회 기능 구현 * test: 투표 현황 조회 기능 단위 테스트 * feat: 투표 변경 기능 구현 * refactor: Post의 category 필드명 수정 * refactor: VoteRequest에 @Builder 추가 * test: 회원 투표 수정 기능 단위 테스트 * refactor: 빌더 사용 및 메서드 위치 수정 * refactor: 기본값 설정 방법을 @PrePersist 사용 방식으로 변경 * refactor: 테스트 코드에서 EntityManager 주입 로직 제거 * refactor: 조회 메서드에 @Transactional(readOnly = true) 추가 * style: import문 압축 * feat: 조회한 선택지가 게시글에 포함되지 않은 게시글인 경우 예외 발생 * fix: 댓글 수정 시 json으로 데이터 전송되지 않던 에러 해결 * feat: 댓글 작성 시 postId를 API 주소에서 가져오게 기능 변경 * feat: 댓글 수정 성공 시 ResponseEntity 전달하도록 구현 * style: 현재 사용하지 않는 BalanceOption 검증 기능 주석 처리 * test: 댓글 CRUD 테스트 코드 작성 및 통과 완료 * style: 불필요한 import문 제거 * feat: 댓글 CRUD 응답 시 댓글 작성 일시, 댓글 최종 수정 일시 반환 구현 * refactor: 메서드 단위로 트랜잭션 구현 * refactor: dev 브랜치에 맞게 클래스 수정 * fix: voteCount() 메서드 문법 오류 수정 * refactor: dev 브랜치에 맞게 클레스 수정 * fix: @NotNull import 미포함 수정 완료 * fix: 중복 MemberRepository 클래스 삭제 완료 * 투표 기능 예외 처리 (#49) * feat: 투표 생성 시 존재하지 않는 데이터를 요구한 경우 예외 처리 * feat: 중복 투표를 진행하는 경우 예외 처리 * feat: 투표가 이미 종료된 게시글에 투표하려는 경우 예외 처리 * style: 로직 순서 변경 * feat: 존재하지 않는 데이터 요청 시 예외 처리 * feat: 카테고리가 'CASUAL'인 게시글에서 투표를 수정하려는 경우 예외 처리 * feat: 해당 게시글에서 투표한 기록이 없을 때 투표를 수정하려는 경우 예외 처리 * 게시글 추천 기능 구현 (#54) * feat: 게시글 추천 기능 구현 * test: 게시글의 마감기한, 회원의 투표 정보 필드 추가 * test: 게시글 좋아요 기능 단위 테스트 * test: 게시글 추천 시 해당 게시글이 존재하지 않는 경우 예외 처리에 대한 단위 테스트 * test: 게시글 중복 추천 시 예외 처리에 대한 단위 테스트 * style: 불필요한 메서드 제거 * 댓글 추천 기능 구현 (#55) * feat: 댓글 추천 기능 구현 * test: 댓글 추천 기능 단위 테스트 * test: 댓글 중복 추천 시 예외 처리 단위 테스트 * style: 각 코드의 구분자를 세미콜론에서 쉼표로 변경 * 댓글 기능 예외 처리 구현 * feat: 댓글 CRUD 예외 처리 구현 * style: TODO-Comment-BalanceOption 연관 필요 * refactor: 댓글 컨트롤러 가독성 개선 * feat: PR 리뷰에 따른 코드 수정 * test: 댓글 예외 처리 단위 테스트 작성 및 통과 완료 * fix: { 문법 오류 수정 * 회원 정보 조회 기능 구현 (#69) * feat: jwt 라이브러리 추가 * fix: merge 과정에서 충돌 이슈 제거 * feat: 토큰 생성, 검증을 하는 TokenProvider 클래스 생성 * feat: SecurityConfig 클래스 추가 * feat: Jwt Filter 적용 * feat: UserDetailService 추가 및 Member에 메서드 추가 * feat: 로그인, 회원가입 시 필요한 dto 클래스 생성 * feat: 유저 회원가입 기능 구현 * feat: 유저 로그인 기능 구현 * feat: 공통 Exception 클래스들 추가 * refactor: LoginSuccessDto 추가 * feat: LoginSuccessDto 추가 * feat: 회원 정보 조회 기능 추가 * feat: 회원 정보 조회 기능 추가 * fix: securityConfig에서 posts url 허용 * feat: 회원 전체 목록 기능 구현 * feat: ErrorCode 적용 * feat: 단위 테스트 작성 * fix: postCount, postLike 값이 null이 들어가는 오류 수정 * refactor: 불필요한 코드 제거 * feat: 회원 로그인, 조회 예외 처리 * fix: signWith() deprecated 수정 * fix: errorCode 중복 네이밍 제거 * 회원 정보 수정 기능 구현 (#76) * feat: jwt 라이브러리 추가 * fix: merge 과정에서 충돌 이슈 제거 * feat: 토큰 생성, 검증을 하는 TokenProvider 클래스 생성 * feat: SecurityConfig 클래스 추가 * feat: Jwt Filter 적용 * feat: UserDetailService 추가 및 Member에 메서드 추가 * feat: 로그인, 회원가입 시 필요한 dto 클래스 생성 * feat: 유저 회원가입 기능 구현 * feat: 유저 로그인 기능 구현 * feat: 공통 Exception 클래스들 추가 * refactor: LoginSuccessDto 추가 * feat: LoginSuccessDto 추가 * feat: 회원 정보 조회 기능 추가 * feat: 회원 정보 조회 기능 추가 * fix: securityConfig에서 posts url 허용 * feat: 회원 전체 목록 기능 구현 * feat: ErrorCode 적용 * feat: 단위 테스트 작성 * fix: postCount, postLike 값이 null이 들어가는 오류 수정 * refactor: 불필요한 코드 제거 * feat: 회원 로그인, 조회 예외 처리 * merge branch * 댓글 추천 기능 구현 (#55) * feat: 댓글 추천 기능 구현 * test: 댓글 추천 기능 단위 테스트 * test: 댓글 중복 추천 시 예외 처리 단위 테스트 * style: 각 코드의 구분자를 세미콜론에서 쉼표로 변경 * feat: 유저 정보를 업데이트 하는 메서드 추가 * refactor: merge 충돌 제거 * feat: 회원 정보 수정 기능 구현 * feat: 회원 정보 수정 단위 테스트 추가 * refactor: save 메서드 없이도 변경감지로 업데이트 적용 --------- Co-authored-by: Hanjaemo <[email protected]> * refactor: PostService 에러코드 수정 (#83) * 멤버 삭제 기능 구현 (#81) * feat: 회원 탈퇴 기능 추가 * feat: 에러 코드 추가 * feat: 멤버 삭제 단위 테스트 추가 * 북마크 기능 구현 완료 (#80) * feat: BookmarkRepository 구현 완료 * feat: BookmarkRequestDto 구현 완료 * feat: 북마크에 게시글 추가 기능 구현 완료 * feat: BookmarkResponseDto 구현 완료 * feat: 북마크에 추가된 게시글 전체 목록 조회 기능 구현 완료 * feat: 게시글 북마크 해제 기능 구현 완료 * fix: 북마크 조회 기능을 특정 멤버의 북마크 조회 기능으로 수정 및 API 주소 변경 * refactor: 북마크 API 주소 수정 * feat: 북마크 기능 예외처리 구현 완료 * style: 사용하지 않는 북마크 에러코드 삭제 * style: TODO 추가-게시글을 삭제하면 북마크, 댓글은 어떤 상태로 남아야 하는가? * style: TODO 제거 * test: 북마크 기능, 예외 처리 단위 테스트 구현 및 통과 완료 * refactor: 북마크 삭제 API HTTPStatus 변경 * style: 불필요한 import 삭제 * feat: 게시글 추천 취소 기능 구현 (#78) * feat: 댓글 추천 취소 기능 구현 (#79) * Spring Swagger 세팅 (#89) * feat: Swagger config 설정 * refactor: 시큐리티 url 전체 허용 * feat: swagger 작업 * 댓글 조회시 selectedOptionId 반환 기능 구현 완료 (#86) * feat: 댓글 조회시 해당 댓글이 작성된 balanceOptionId 반환하게 구현 해당 기능 구현을 위해 Comment<->BalanceOption 엔티티 사이에 연관 관계를 맺어줬습니다. ERD 업데이트가 필요합니다. * feat: 댓글 조회시 투표 옵션 통해 작성된 balanceOptionId 반환하게 구현 수정 * refactor: balanceOptionId -> selectedOptionId 필드명 변경 * feat: 투표한 사람만 댓글 작성할 수 있도록 예외 처리 구현(회원 한정) * feat: 북마크 기능 swagger에 추가 (#91) * test: 댓글 기능 및 예외처리 테스트 재작성 및 통과 완료 (#95) * 이메일 발송 기능 구현 (#98) * feat: 메일 서버 의존성 추가 * refactor: 에러 코드 수정 * refactor: mail config 설정 * feat: 메일 발송 yml 설정 * refactor: 이메일 발송 config 수정 * feat: 이메일 발송 dto 클래스 추가 * feat: 이메일 발송 컨트롤러 생성 * feat: 이메일 발송 서비스 생성 * feat: 구글 SMTP 설정 * fix: email dto 삭제 * fix: config 파일 제거 * fix: 메일 컨트롤러, 서비스 코드 수정 * fix: 모든 url에 대해서 시큐리티 허용 * feat: EmailRequest dto 추가 * 파일 업로드 기능 구현 완료 (#97) * feat: 파일 업로드 기능 구현 * style: 스웨거에 추가하지 않는 필드 스웨거 추가 * feat: 파일 다운로드 기능 구현 완료 (#102) * Redis 설정 (#104) * feat: Redis 디펜던시 추가 * feat: yml 환경변수 세팅 * refactor: yml 수정 * feat: config 파일 추가 * feat: service 클래스 추가 * fix: BalanceOption import 추가 * fix: Redis CRUD 단위 테스트 추가 * config 파일 서브 모듈로 관리 (#106) * chore: application.yml 제거 * chore: config 파일 서브모듈로 관리 * 파일 기능 예외 처리 구현 (#112) * feat: 파일 기능 예외 처리 구현 완료 * chore: 단일 파일 최대 업로드 크기, 전체 요청 최대 크기 설정 * chore: 파일 업로드 위치 설정 완료 * feat: 파일 기능 Configuration 클래스 구현 * feat: 파일 기능 예외 처리 구현 * style: 불필요한 import 삭제 * refactor: downloadFile에 사용 되는 에러 코드 수정 * feat: FileDto에서 엔티티 생성 시 storedName 전달 구현 * move: merge 충돌 방지 위한 application.yml 삭제 * 회원 정보 수정 닉네임 / 패스워드 분리 (#109) * fix: 삭제된 yml 파일 추가 * Revert "fix: 삭제된 yml 파일 추가" This reverts commit d24deef0a0bdab526b7e34ccd39a76fcfda8ec4c. * fix: 삭제된 yml 파일 추가 * refactor: 비밀번호 변경, 닉네임 변경 로직 둘로 분리 * refactor: dto 파일 수정 * test: 비밀번호, 닉네임 수정 단위 테스트 작성 * 리프레시 토큰 추가 구현 및 전체적인 jwt 로직 수정 (#114) * fix: 암호화 된 비밀번호가 제약조건 때문에 db에 저장안되는 오류 해결 * feat: authenticationManager를 Bean으로 등록 * refactor: 반환되는 User 객체가 이메일, 비밀번호, 권한 정보를 포함하게 변경 * refactor: JwtFilter 에러 케이스 추가 * feat: RefreshToken 생성 로직 추가 및 리팩토링 * fix: dto 클래스에 accessToken, refreshToken 두개의 필드 분리 * feat: jwt yml 설정 정보 추가 * refactor: changePassword 메서드 제거 * refactor: refreshToken 만료 1주 -> 2주로 변경 * fix: yml 파일 config 폴더 내부로 이동 * AWS S3를 이용한 파일 업로드 기능 구현 (#118) * chore: AWS S3 dependecy 추가 * chore: S3 관련 설정 추가 * chore: S3 관련 dependency를 Spring Cloud AWS에서 AWS SDK for Java로 변경 * feat: S3 설정 클래스 추가 * chore: 불필요한 설정 제거 * refactor: File 엔티티 내 필드명 수정 uploadName -> originalName * feat: AWS S3를 이용한 이미지 업로드 기능 구현 * feat: 다중 이미지 업로드 기능 구현 * chore: 파일 최대 용량 설정 * refactor: 다중 이미지 업로드 메서드명 수정 * Delete src/main/resources/application.yml * refactor: config 파일 최신화 * solve conflict * 게시글 작성 시 이미지 업로드 기능 구현 (#132) * chore: config 업데이트 * refactor: 다중 업로드 기능 불필요하다고 결정됨으로써 해당 코드 제거 * chore: 기존에 작성된 FileService 클래스 제거 * refactor: 클래스 이름 수정 및 메서드 추출 * style: 불필요한 코드 제거 * refactor: FileDto 클래스에서 불필요한 코드 제거 및 필드 주입 수정 * refactor: JPEG의 확장자를 jpg에서 jpeg로 변경 * feat: 게시글 작성 시 이미지 엔티티와 매핑 * 발송된 숫자코드 검증 기능 구현 (#107) * feat: 30분 유효시간 설정 * refactor: dto 이름 수정 * feat: 발송 코드가 일치하는지 검증 기능 구현 * feat: 이메일 검증에 필요한 dto 클래스 추가 * feat: 에러 코드 추가 * refactor: validator 분리 및 에러코드 추가 * feat: swagger 코드 추가 * refactor: 리뷰 내용 리팩토링 * fix: yml 파일 config 폴더 내부로 이동 * refactor: mail패키지를 global에서 module로 이동 및 의미를 더 명확하게 하기 위해 authmail로 이름 변경 * refactor: 메서드 camel case 형식에 맞게 수정 * refactor: 회원 정보에서 ip 제거 (#138) * 엑세스 토큰 만료 시 리프레시 토큰으로 액세스 토큰 재발급 하는 기능 추가 (#124) * feat: 유효한 자격증명을 제공하지 않을 때 401 에러 리턴하는 기능 구현 * feat: 유효한 권한이 존재하지 않는 경우 403 에러 리턴하는 기능 구현 * feat: 401, 403에러 exception handling * refactor: 토큰 필드를 TokenDto를 생성하여 따로 분리 * feat: accessToken 만료시 refreshToken 재발급 하는 기능 구현 * feat: 에러 코드 추가 * refactor: yml 파일 config로 이동 * refactor: JwtTokenProvider 에서 AuthenticationManager 삭제하여 순환 참조 에러 해결 * JwtTokenProvider 테스트 코드 작성 및 예외 테스트 코드 작성 (#128) * fix: 오류 나는 코드 주석 처리 및 수정 * feat: payload 조회 기능 구현 및 authentication null 체크하는 메서드 추가 * fix: file 테스트 수정 * test: 토큰 테스트 코드 작성 * refacotor: 불필요한 코드 제거 * todo 주석 추가 * refactor:불필요한 코드 삭제 * fix: IllegalArgumentException 다른 amazon.awssdk import문 제거!!!!! * 게시글 단건, 전체 조회 API 응답에 누락된 필드 추가 (#135) * feat: 응답 DTO에 게시글 추천수 필드 추가 * feat: 응답 DTO에 게시글 작성일, 작성자 필드 추가 * feat: 응답 DTO에 게시글 추천, 북마크 여부 필드 추가 * feat: likes가 null일 경우 0 반환하는 로직 추가 * refactor: 메서드 파라미터로 memberId 전달 * 회원 정보 조회 로직 수정 (#130) * refactor: merge * feat: 토큰 생성할 때 grantType 부여 * Todo: jwt 토큰을 추출하는 공통 로직 추가 예정 * 게시글 작성 시 이미지 업로드 기능 구현 (#132) * chore: config 업데이트 * refactor: 다중 업로드 기능 불필요하다고 결정됨으로써 해당 코드 제거 * chore: 기존에 작성된 FileService 클래스 제거 * refactor: 클래스 이름 수정 및 메서드 추출 * style: 불필요한 코드 제거 * refactor: FileDto 클래스에서 불필요한 코드 제거 및 필드 주입 수정 * refactor: JPEG의 확장자를 jpg에서 jpeg로 변경 * feat: 게시글 작성 시 이미지 엔티티와 매핑 * 발송된 숫자코드 검증 기능 구현 (#107) * feat: 30분 유효시간 설정 * refactor: dto 이름 수정 * feat: 발송 코드가 일치하는지 검증 기능 구현 * feat: 이메일 검증에 필요한 dto 클래스 추가 * feat: 에러 코드 추가 * refactor: validator 분리 및 에러코드 추가 * feat: swagger 코드 추가 * refactor: 리뷰 내용 리팩토링 * fix: yml 파일 config 폴더 내부로 이동 * refactor: mail패키지를 global에서 module로 이동 및 의미를 더 명확하게 하기 위해 authmail로 이름 변경 * refactor: 메서드 camel case 형식에 맞게 수정 * refactor: 회원 정보에서 ip 제거 (#138) * 엑세스 토큰 만료 시 리프레시 토큰으로 액세스 토큰 재발급 하는 기능 추가 (#124) * feat: 유효한 자격증명을 제공하지 않을 때 401 에러 리턴하는 기능 구현 * feat: 유효한 권한이 존재하지 않는 경우 403 에러 리턴하는 기능 구현 * feat: 401, 403에러 exception handling * refactor: 토큰 필드를 TokenDto를 생성하여 따로 분리 * feat: accessToken 만료시 refreshToken 재발급 하는 기능 구현 * feat: 에러 코드 추가 * refactor: yml 파일 config로 이동 * refactor: JwtTokenProvider 에서 AuthenticationManager 삭제하여 순환 참조 에러 해결 * JwtTokenProvider 테스트 코드 작성 및 예외 테스트 코드 작성 (#128) * fix: 오류 나는 코드 주석 처리 및 수정 * feat: payload 조회 기능 구현 및 authentication null 체크하는 메서드 추가 * fix: file 테스트 수정 * test: 토큰 테스트 코드 작성 * refacotor: 불필요한 코드 제거 * todo 주석 추가 * refactor:불필요한 코드 삭제 * fix: IllegalArgumentException 다른 amazon.awssdk import문 제거!!!!! * refactor: merge * Todo: jwt 토큰을 추출하는 공통 로직 추가 예정 --------- Co-authored-by: Hanjaemo <[email protected]> * 회원 정보 수정, 삭제 리팩토링 (#134) * refactor: merge * feat: 토큰 생성할 때 grantType 부여 * Todo: jwt 토큰을 추출하는 공통 로직 추가 예정 * refactor: 회원 정보 수정, 회원 삭제 memberId -> 토큰으로 리팩토링 * refactor: 회원 정보 조회할 때 memberId 값 추가 * refactor: 회원 이메일을 jwt 토큰에서 추출하는 중복 코드를 메서드로 변경 * refactor: pr 내용 반영해서 코드 리팩토링 * refactor: merge과정에서 삭제된 메서드 추가 * 답글 작성 기능 구현 완료 (#133) * feat: Comment 엔티티에 답글 관계 구현을 위한 부모 댓글 참조 필드 구현 * feat: 답글 RequestDto 구현 * feat: 답글 작성 기능 및 예외 처리 구현 * style: optimize imports 적용 * 이메일 인증 단위 테스트 및 예외 처리 단위 테스트 구현 (#141) * refactor: dto에 어노테이션 추가 * refactor: member, post 테스트 로직 오류 때문에 임시 주석처리 * test: 인증 메일 단위 테스트, 에외 처리 단위 테스트 작성 * 로그아웃 기능 구현 (#144) * chore: * feat: 로그 아웃 된 사용자가 글을 쓸때를 막는 에러코드 추가 * feat: 로그아웃 될 때 Redis에 저장된 토큰값을 제거하는 기능 구현 * feat: 글을 작성할 때 Redis에 저장된 토큰 값이 없다면, 에러를 던지는 기능 추가 * feat: 로그인을 하지 않은 사용자가 로그아웃을 시도할 때 에러를 던지는 기능 추가 * 답글 depth를 1로 제한하는 기능 구현 완료 (#145) * feat: 답글 depth 에러 코드 추가 * feat: 답글에 depth 제한 기능 구현 * test: 답글 기능, 예외 단위 테스트 작성 및 통과 완료, 기존 테스트 통과 확인 * chore: redis 호스트 분리 * refactor: 기존 id를 통해 회원을 조회하는 로직을 jwt를 사용해 조회하도록 수정 * refactor: 메서드 분리 등 코드 개선 * 북마크 API URL 개선 완료 (#148) * feat: 북마크 삭제 권한 없음 에러 코드 추가 * feat: BookmarkRequestDto 에서 memberId 필드 삭제 * feat: 북마크 기능 사용 시 memberId 대신 현재 인증된 사용자의 정보 조회하도록 구현 * feat: BookmarkRequestDto 의 불필요한 postId 필드 제거 * feat: 북마크 삭제 API postId 기반 작동 구현 완료 * test: 변경된 북마크 개선점 기반으로 기존의 전체 테스트코드 수정 및 통과 완료 * style: optimze imports 적용 완료 * refactor: 불필요한 BookmarkRequestDto 클래스 삭제 * test: 변경점으로 인한 테스트 코드 수정 및 전체 통과 완료 * 댓글 기능 memberId 사용 -> JWT 사용으로 수정 (#150) * feat: 댓글 기능에서 memberId 삭제 및 JWT로 로그인한 사용자 이메일 기반으로 멤버 조회하도록 변경 * refactor: getCurrentMember 메서드 SecurityUtils 클래스로 분리 * feat: 댓글 삭제 및 수정 요청 시 본인이 작성한 댓글인지 검증 구현 * refactor: CommentCreateRequest 내 불필요한 memberId 필드 제거 * test: 댓글 기능 변경점에 따라 테스트 코드 수정 및 전체 통과 완료 * test: 댓글 수정, 삭제 시 권한 없음 예외 테스트코드 작성 및 통과 * feat: SecurityUtils 클래스 기본 생성자 접근 방지 구현 * fix: mergy 후 충돌 재수정 * refactor: 불필요한 파라미터 삭제 * style: BookmarkService의 save 메서드명 createBookmard로 수정 (컨벤션) * 멤버 단위 테스트, 예외 처리 테스트 추가 (#157) * refactor: merge * fix: dto 파일 삭제 * refactor: 메일 dto에 기본 생성자 추가 * test: MemberService 단위 테스트, 예외 테스트 추가 * fix: 서비스 로직 merge * fix: import 오류 수정 * 투표 생성 기능 단위 테스트 작성 (#159) * fix: BookmarkServiceTest 패키지 위치로 인해 발생한 컴파일에러 해결 * test: memberId를 통해 회원을 조회하던 방식에서 jwt로 변경됨에 따라 테스트 코드 수정 * test: 비회원 투표 기능 단위 테스트 * test: 투표 생성 시 게시글 정보가 없는 경우 단위 테스트 * test: 투표 생성 시 선택지 정보가 없는 경우 단위 테스트 * test: 투표 생성 시 회원 정보가 없는 경우 단위 테스트 * test: 투표 생성 시 선택지가 다른 게시글의 선택지인 경우 단위 테스트 * test: 투표 생성 시 게시글 마감 기한이 만료된 경우 단위 테스트 * test: 투표 생성 시 이미 투표한 기록이 있는 게시글인 경우 단위 테스트 * 투표 현황 조회 및 투표 수정 기능에 대한 단위 테스트 작성 (#162) * test: 투표 현황 조회 시 게시글 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 게시글 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 선택지 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 회원 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 회원 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 게시글의 카테고리가 캐주얼인 경우 단위 테스트 * 게시글 기능 memberId 대신에 jwt를 사용하도록 수정 (#153) * feat: SecurityUtils 클래스 생성하여 로그인한 회원의 이메일을 가져오는 기능 추가 * refactor: RedisConfigTest 수정 * feat: jwt를 사용하여 게시글 작성 및 삭제 기능 추가 * feat: 게시글 추천 상태가 0일때 추천 취소를 누를 경우 에러 코드 추가 * feat: jwt를 사용하여 게시글 추천, 추천 취소 기능 수정 * refactor: postId로 포스트를 찾는 로직을 메서드화 해서 중복 제거 * 댓글 기능 사용 시 해당 댓글이 URL의 게시글 id와 매칭 여부 검증 로직 추가 완료 (#164) * refactor: getCurrentMember() 메서드 전역 static 메서드 사용하도록 수정 * feat: 해당 게시글에 존재하지 않는 댓글 예외 구현 * style: optimze imports 적용 완료 * test: 예외 추가에 따른 테스트 코드 추가 작성 및 전체 테스트 코드 통과 완료 * feat: 게시글 작성 시 storedFileName이 Null일 경우에 대한 로직 구현 (#167) * refactor: 게시글 조회 시 응답 DTO 이름 변경 및 불필요한 파라미터 제거 (#169) * test: 단위 테스트 및 예외 테스트 추가 (#161) * 회원가입, 로그인 시 RequestBody, Response 수정 (#176) * refactor: 유저가 db에 등록될 때 자동으로 USER 값이 들어가도록 설정 * refactor: 로그인 했을 때 토큰 정보만 클라이언트에 전달하도록 변경 * test: 로직 변경에 따른 테스트 코드 수정 * 공지사항 작성 기능 구현 완료 (#172) * move: Notice 클래스 패키지 생성 및 이동 * feat: NoticeRepository 클래스 작성 * feat: Notice 엔티티 어노테이션 추가 * feat: 공지사항 작성 기능 구현 및 예외처리 구현 * feat: NoticeResponse에 content 반환 추가 * style: 불필요한 공백 제거 * test: 공지사항 작성 및 관련 예외 테스트 코드 작성 및 통과 완료 * feat: 전체 공지 조회, 단건 공지 조회 기능 구현 및 예외 처리 구현 * test: 전체 공지사항 조회, 단건 공지사항 조회 구현에 따른 테스트 코드 추가 작성 * style: optimze imports 적용 * fix: SecurityContextHolder로 인한 다른 테스트와 충돌 일어나는 에러 수정 * feat: 불필요한 생성자 어노테이션 삭제 * feat: 제약 조건을 DTO에서 검증하도록 구현 및 핸들링 클래스 작성 * 공지사항 목록 조회, 특정 공지사항 조회 기능 구현 완료 (#174) * move: Notice 클래스 패키지 생성 및 이동 * feat: NoticeRepository 클래스 작성 * feat: Notice 엔티티 어노테이션 추가 * feat: 공지사항 작성 기능 구현 및 예외처리 구현 * feat: NoticeResponse에 content 반환 추가 * style: 불필요한 공백 제거 * test: 공지사항 작성 및 관련 예외 테스트 코드 작성 및 통과 완료 * 게시글 조회 API에 조회수 증가 로직 추가 (#181) * refactor: memberId로 조회하던 기존 로직을 JWT를 사용하여 조회하도록 수정 * fix: Authorization 필수 여부를 false로 수정 * feat: 게시글 조회 API에 조회수 증가 로직 추가 * refactor: findAll 메서드의 readOnly를 true로 지정함으로써 조회용 메서드임을 강조 * 스웨거 헤더 값으로 토큰 추가 (#182) * feat: swagger 문서에 토큰 헤더값 추가 * fix: multipart file 스웨거 설정 추가 * fix: swagger 문서에 날짜 정보가 example 대로 안들어가던 오류 수정 * fix: afterEach로 테스트 종료 시 SecurityContextHolder context 제거 * test: global 폴더에 위치한 테스트 코드 삭제 * refactor: 파일 어노테이션 RequestParam에서 RequestPart로 변경 * 회원 닉네임 중복 검증 API 추가 및 테스트 코드 작성 (#178) * feat: 회원 닉네임 중복 검증 기능 구현 * test: 회원 닉네임 중복 검증 기능 단위 테스트 추가 * refactor: 파라미터에 닉네임 정보를 넣어 중복 체크하도록 변경 * test: 공지사항 생성 실패 테스트 스프링 통합 테스트로 변경 * 게시글, 댓글 조회 API 페이징, 정렬 처리 (#191) * chore: 설정 업데이트 * feat: 게시글 목록 조회 페이징 처리 * test: PostServiceTest 임시 주석 처리 * feat: 댓글 목록 조회 API 페이징 처리 * chore: 기본 페이지 사이즈 설정 추가 * refactor: 댓글 목록 조회 메서드의 반환 타입을 List<CommentResponse>에서 Page<CommentResponse>로 수정 * refactor: 게시글 목록 조회 메서드의 반환 타입을 List<PostResponse>에서 Page<PostResponse>로 수정 * refactor: PostRequest에서 memberId 제거 * 시큐리티 인증 URL 추가 및 에러 처리 추가 (#199) * refactor: 이메일 인증 에러코드 HttpStatus 변경 * refactor: JwtTokenProvider 코드 리팩토링 및 에러 코드 추가 * refactor: 테스트 코드 예외 처리할 때 메세지 String -> ErrorCode 형태로 수정 * refactor: 닉네임, 비밀번호 변경할 때 현재 값과 동일할 때 에러 메세지 추가 * refactor: 회원 가입 시 중복 이메일, 중복 닉네임 예외 처리 * refactor: 로그인 상태가 아닐 때 에러 메세지를 던지도록 수정 * refactor: 유효한 토큰이 아닐 때 클라이언트에 에러 메세지를 보내주도록 설정 * feat: 유효하지 않은 토큰인 경우 에러 코드 추가 * feat: 인증이 필요하지 않은 API URL 설정 * fix: swagger 문서에서 이중 배열로 데이터가 나타나던 문제 해결 * refactor: likeCount -> likesCount로 필드 이름 통일 * feat: 미인증 상태일 때 클라이언트에 json 형태로 httpStatus와 message를 보여주는 기능 추가 * refactor: 리뷰 내용 반영하여 에러 코드 이름 수정 * 회원가입 시 프로필 사진 선택 기능 구현 완료 (#207) * feat: 회원가입 시 프로필 사진 선택 가능하게 구현 * test: 기능 변경에 따른 기존 테스트 코드 변경 * feat: 게시글 응답 dto에 투표 여부 추가 (#198) * 인기 댓글 조회 기능 구현 (#206) * chore: HTTP 메서드가 GET인 댓글 관련 모든 URL 허용 * feat: 인기 댓글 목록 조회 기능 구현 * feat: 비회원과 회원 각각의 경우에 따른 조회 로직 구분, 응답 DTO에 myLike 필드 추가 * refactor: api 테스트용으로 사용하던 매직 넘버를 상수로 수정 * 인기 게시글 조회 기능 구현 (#203) * feat: 인기 게시글 조회 기능 구현 * style: 불필요한 개행 제거 * fix: PostService update * fix: PostController update * test: 시큐리티 인증 기능 추가로 인한 기존 공지 테스트 코드 수정 * feat: 게시글 응답 시 balanceOptionId 반환 구현 (#195) * Create ci.yml * Update ci.yml * init ci.yml * fix: CommentServiceTest * Embedded Redis 적용 (#218) * chore: embedded redis 설정 추가 * chore: 내장 redis를 profile이 local일때만 동작하도록 설정 * fix: 임시로 실패하는 로그아웃 단위 테스트 주석 처리 * refactor: 로그 아웃 테스트 코드 수정 * 비밀번호 찾기 기능 구현 (#205) * feat: 임시 비밀번호 발급 기능 구현 * feat: 임시 비밀번호 발급 후 데이터베이스에 저장된 비밀번호 변경 * feat: 이메일 발송이 실패한 경우 에러 코드 추가 * test: 임시 비밀번호 발송 후 회원 비밀번호 단위 테스트 추가 * refactor: 리뷰 받은 내용들 반영하여 수정 * Update ci.yml * Update ErrorCode.java * NoticeControllerTest 임시 주석 처리 * 공지사항 수정, 삭제 기능, 파일 첨부 구현 완료 (#186) * feat: 공지사항 수정, 삭제 에러 코드 추가 및 403번 에러로 변경 * feat: 공지사항 수정, 삭제 기능 구현 * test: 공지사항 수정, 삭제 기능에 대한 테스트 코드 작성 및 통과 완료 * feat: 공지사항 파일 첨부 구현 * fix: 공지사항 파일 첨부 시 Response에서 파일 목록이 null로 뜨던 에러 수정 * test: 공지사항 기능 추가 구현에 대한 테스트 코드 수정 및 추가 작성 완료 * test: 테스트 주석 처리 * 토큰 값에 memberId 추가 및 기타 예외 처리 (#219) * feat: 회원 가입 시 중복된 닉네임, 중복된 이메일 에러 처리 추가 * feat: 토큰 claims 정보에 memberId 추가 * feat: 파일 업로드 URL 시큐리티 접근 허용 * refactor: Notice Controller 테스트 주석 처리 * refactor: 누락된 코드 추가 --------- Co-authored-by: Hanjaemo <[email protected]> * Create cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * feat: 선택지별 득표 수, 게시글 전체 투표 수 반환 구현 * Update cd.yml * feat: 게시글 전체 투표 수 필드명 변경 * 게시글 응답 필드(이미지 url) 변경 (#211) * refactor: 파일 업로드 경로 변경 및 상수화 * refactor: 게시글 조회 시 이미지 이름 대신 URL을 응답하도록 수정 * Bean Validation 사용 시 API 에러 메세지 처리 구현 (#222) * feat: 회원가입 할 때 입력 유효성 검증 추가 * feat: 메일 인증 서비스 유효성 검사 추가 * feat: 게시글 작성 유효성 검사 추가 * feat: 밸런스 옵션, 게시글 작성시 BalanceOption이 비어있는 경우 유효성 검사 * feat: 투표 생성 유효성 검사 * refactor: bookmark -> bookmarks로 url 수정 * refactor: "/posts" url 삭제 * refactor: @Valid 어노테이션 추가 및 파일 업로드 URL 시큐리티 허용 * refactor: Notice Controller 테스트 주석 처리 --------- Co-authored-by: Hanjaemo <[email protected]> * 게시글 검색, 태그 검색 기능 구현 (#233) * feat: 게시글 제목 검색 기능 구현 * feat: 게시글 태그 검색 기능 구현 * refactor: pageable 파라미터 제거 * test: 게시글 제목 검색, 태그 검색 단위 테스트 작성 * 마이페이지 본인이 작성한 게시글, 댓글 조회 기능 구현 (#209) * feat: 마이페이지 - 본인이 작성한 게시글 조회 기능 구현 완료 * feat: 마이페이지 - 본인이 작성한 댓글 조회 기능 구현 완료 * 마이페이지 본인이 투표한 게시글, 즐겨찾기한 게시글 조회 기능 구현 (#214) * feat: 마이페이지 - 본인이 작성한 게시글 조회 기능 구현 완료 * feat: 마이페이지 - 본인이 작성한 댓글 조회 기능 구현 완료 * feat: 마이페이지 - 본인이 투표한 게시글 조회 기능 구현 완료 * fix: 페이지네이션 적용 안되던 문제 해결 * feat: 마이페이지 - 본인이 북마크한 게시글 조회 기능 구현 완료 * style: 메서드 네이밍 수정 * feat: 마이페이지 컨트롤러 누락된 어노테이션 추가 * fix: 머지 후 conflicts 해결 * feat: totalVoteCount -> totalVotesCount 필드명 수정 * 게시글 응답 시 투표한 선택지인 selectedOptionId 반환 구현 완료 (#228) * feat: 게시글 응답 시 투표한 선택지인 selectedOptionId 반환 구현 * feat: 비회원 게시글 조회 가능 및 selectedOptionId null 반환 구현 * 게시글 및 댓글 응답시 사용자 프로필 이미지 반환 구현 완료 (#230) * feat: 게시글 응답 시 게시글 작성자의 프로필 이미지 반환 구현 * feat: 댓글 응답 시 모든 댓글 작성자의 프로필 이미지 반환 구현 * 댓글 응답시 부모 댓글(원 댓글) id 응답 추가 구현 완료 (#232) * feat: 게시글 응답 시 게시글 작성자의 프로필 이미지 반환 구현 * feat: 댓글 응답 시 모든 댓글 작성자의 프로필 이미지 반환 구현 * feat: 댓글 응답 시 부모 댓글 id 반환 구현 * fix: merge 후 conflicts 수정 * fix: PostRequest, PostResponse에서 리스트 형태로 된 Schema 삭제 * 회원 이미지 수정 기능 추가 (#226) * feat: 선택지별 득표 수, 게시글 전체 투표 수 반환 구현 * dev -> main (#223) * feat: Tag, Post, PostTag 엔티티 간 연관관계 매핑 (#20) * feat: 신고 카테고리 항목 추가 * Update PULL_REQUEST_TEMPLATE.md * feat: filetype enum값 추가 * feat: entity에 검증 어노테이션 추가 (#11) * feat: entity에 검증 어노테이션 추가 * feat: entity에 검증 어노테이션 추가 * style: 업로드 파일명, 서버 관리 파일명의 필드명 변경 --------- Co-authored-by: gywns0417 <[email protected]> * chore: 패키지 구조 개선 * Revert "chore: 패키지 구조 개선" This reverts commit f27a0d95080e705a953d94cfb7ef365a6a1f49cb. * chore: 패키지 구조 개선 * feat: Tag, Post, PostTag 엔티티 간 연관관계 매핑 --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> * feat: 검증 애노테이션 추가 (#26) * feat: 엔티티에 검증 애노테이션 추가 * style: 불필요한 import문 제거 * feat: 댓글 리포지토리 구현 * feat: 댓글 DTO 클래스 구현 * feat: 임시 Member, Post 리포지토리 구현 * feat: 댓글 리포지토리 재구현 * feat: 댓글 Service 클래스 구현 * feat: 댓글 Controller 클래스 일부 구현 * 게시글 작성 기능 구현 (#28) * feat: 신고 카테고리 항목 추가 * Update PULL_REQUEST_TEMPLATE.md * feat: filetype enum값 추가 * feat: entity에 검증 어노테이션 추가 (#11) * feat: entity에 검증 어노테이션 추가 * feat: entity에 검증 어노테이션 추가 * style: 업로드 파일명, 서버 관리 파일명의 필드명 변경 --------- Co-authored-by: gywns0417 <[email protected]> * chore: 패키지 구조 개선 * Revert "chore: 패키지 구조 개선" This reverts commit f27a0d95080e705a953d94cfb7ef365a6a1f49cb. * chore: 패키지 구조 개선 * commit test * dto * feat: 커밋 과정에서 변경사항 추가 * feat: getter 추가 * feat: dto 클래스 추가 * refactor: dto 구조 수정 * refactor: entity 생성자 추가 * feat: 게시글 작성 기능 추가 * test: 게시글 작성 기능 테스트 * feat: FileDto 클래스 추가 * test: fileDto 추가 * refactor: 불필요한 코드 제거 * fix: JSON 매핑 오류 해결 (#33) * fix: tag <-> TagPost 영속성 전이 추가 * feat: 게시글 전체 조회 기능 추가 (#34) --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> * refactor: 댓글 Service 코드 가독성 향상 * move: 불필요한 댓글 Request Dto 삭제 * refactor: 댓글 API 엔드포인트 수정 * feat: Post 엔티티 어노테이션 추가 구현 * fix: Post 엔티티 Category, viewStatus 필드 임시 @NotNull 해제 쿼리 테스트를 위해 미구현 상태인 Post 엔티티 필드 어노테이션을 일부 수정했습니다. * feat: Member 엔티티 @Getter 임시 추가 * feat: BalanceOptionRepository 임시 구현 * feat: BalanceOption 엔티티 @Getter 임시 추가 * feat: CommentCreateRequest 클래스에 balanceOptionId 필드 추가 * fix: CommentResponse 클래스에 likeCount() 임시 비활성화 테스트를 위해 현재 미구현 상태인 CommentLike 관련 코드를 임시 비활성화 했습니다.(Null값) * feat: CommentService 추가 구현 완료 BalanceOption 검증 코드(추후 BalanceOption 구현 완료 시 사용)를 추가 했습니다. * refactor: 댓글 컨트롤러 createComment() 메서드 수정 댓글 API 엔드포인트를 설계에 맞게 수정함에 따라 관련 사항들을 수정했습니다. * fix: 댓글 API 사용시 401 에러 해결 localhost:8080 접속 시 로그인이 필요 없도록 임시로 수정했습니다. * 게시글 CRUD 기능 구현 (#39) * feat: 신고 카테고리 항목 추가 * Update PULL_REQUEST_TEMPLATE.md * feat: filetype enum값 추가 * feat: entity에 검증 어노테이션 추가 (#11) * feat: entity에 검증 어노테이션 추가 * feat: entity에 검증 어노테이션 추가 * style: 업로드 파일명, 서버 관리 파일명의 필드명 변경 --------- Co-authored-by: gywns0417 <[email protected]> * chore: 패키지 구조 개선 * Revert "chore: 패키지 구조 개선" This reverts commit f27a0d95080e705a953d94cfb7ef365a6a1f49cb. * chore: 패키지 구조 개선 * commit test * dto * feat: 커밋 과정에서 변경사항 추가 * feat: getter 추가 * feat: dto 클래스 추가 * refactor: dto 구조 수정 * refactor: entity 생성자 추가 * feat: 게시글 작성 기능 추가 * test: 게시글 작성 기능 테스트 * feat: FileDto 클래스 추가 * test: fileDto 추가 * refactor: 불필요한 코드 제거 * fix: JSON 매핑 오류 해결 (#33) * fix: tag <-> TagPost 영속성 전이 추가 * feat: 게시글 전체 조회 기능 추가 (#34) * feat: 게시글 단건 조회 기능 추가 * feat: 게시글 삭제 기능 추가 * fix: 생성자 private으로 접근 제어 * feat: MemberRepository 클래스 추가 * refactor: 리뷰받은 내용들 수정 * test: 게시글 CRUD 테스트 코드 작성 * refactor: dto에서 views, viewstatus 제거 --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> * feat: 회원 투표 기능 구현 (#32) * chore: Spring Security 라이브러리 임시 주석 처리 * feat: 회원 투표 기능 구현 * test: 투표 생성 기능 단위 테스트 * feat: 선택지 투표 API 컨트롤러에 응답 메시지 추가 * feat: VoteController의 vote 메서드에 201 응답 코드 추가 * test: Mockito를 사용해서 테스트 코드 작성 * feat: 투표 현황 조회 기능 구현 * test: 투표 현황 조회 기능 단위 테스트 * feat: 투표 변경 기능 구현 * refactor: Post의 category 필드명 수정 * refactor: VoteRequest에 @Builder 추가 * test: 회원 투표 수정 기능 단위 테스트 * refactor: 빌더 사용 및 메서드 위치 수정 * refactor: 기본값 설정 방법을 @PrePersist 사용 방식으로 변경 * refactor: 테스트 코드에서 EntityManager 주입 로직 제거 * refactor: 조회 메서드에 @Transactional(readOnly = true) 추가 * style: import문 압축 * feat: 조회한 선택지가 게시글에 포함되지 않은 게시글인 경우 예외 발생 * fix: 댓글 수정 시 json으로 데이터 전송되지 않던 에러 해결 * feat: 댓글 작성 시 postId를 API 주소에서 가져오게 기능 변경 * feat: 댓글 수정 성공 시 ResponseEntity 전달하도록 구현 * style: 현재 사용하지 않는 BalanceOption 검증 기능 주석 처리 * test: 댓글 CRUD 테스트 코드 작성 및 통과 완료 * style: 불필요한 import문 제거 * feat: 댓글 CRUD 응답 시 댓글 작성 일시, 댓글 최종 수정 일시 반환 구현 * refactor: 메서드 단위로 트랜잭션 구현 * refactor: dev 브랜치에 맞게 클래스 수정 * fix: voteCount() 메서드 문법 오류 수정 * refactor: dev 브랜치에 맞게 클레스 수정 * fix: @NotNull import 미포함 수정 완료 * fix: 중복 MemberRepository 클래스 삭제 완료 * 투표 기능 예외 처리 (#49) * feat: 투표 생성 시 존재하지 않는 데이터를 요구한 경우 예외 처리 * feat: 중복 투표를 진행하는 경우 예외 처리 * feat: 투표가 이미 종료된 게시글에 투표하려는 경우 예외 처리 * style: 로직 순서 변경 * feat: 존재하지 않는 데이터 요청 시 예외 처리 * feat: 카테고리가 'CASUAL'인 게시글에서 투표를 수정하려는 경우 예외 처리 * feat: 해당 게시글에서 투표한 기록이 없을 때 투표를 수정하려는 경우 예외 처리 * 게시글 추천 기능 구현 (#54) * feat: 게시글 추천 기능 구현 * test: 게시글의 마감기한, 회원의 투표 정보 필드 추가 * test: 게시글 좋아요 기능 단위 테스트 * test: 게시글 추천 시 해당 게시글이 존재하지 않는 경우 예외 처리에 대한 단위 테스트 * test: 게시글 중복 추천 시 예외 처리에 대한 단위 테스트 * style: 불필요한 메서드 제거 * 댓글 추천 기능 구현 (#55) * feat: 댓글 추천 기능 구현 * test: 댓글 추천 기능 단위 테스트 * test: 댓글 중복 추천 시 예외 처리 단위 테스트 * style: 각 코드의 구분자를 세미콜론에서 쉼표로 변경 * 댓글 기능 예외 처리 구현 * feat: 댓글 CRUD 예외 처리 구현 * style: TODO-Comment-BalanceOption 연관 필요 * refactor: 댓글 컨트롤러 가독성 개선 * feat: PR 리뷰에 따른 코드 수정 * test: 댓글 예외 처리 단위 테스트 작성 및 통과 완료 * fix: { 문법 오류 수정 * 회원 정보 조회 기능 구현 (#69) * feat: jwt 라이브러리 추가 * fix: merge 과정에서 충돌 이슈 제거 * feat: 토큰 생성, 검증을 하는 TokenProvider 클래스 생성 * feat: SecurityConfig 클래스 추가 * feat: Jwt Filter 적용 * feat: UserDetailService 추가 및 Member에 메서드 추가 * feat: 로그인, 회원가입 시 필요한 dto 클래스 생성 * feat: 유저 회원가입 기능 구현 * feat: 유저 로그인 기능 구현 * feat: 공통 Exception 클래스들 추가 * refactor: LoginSuccessDto 추가 * feat: LoginSuccessDto 추가 * feat: 회원 정보 조회 기능 추가 * feat: 회원 정보 조회 기능 추가 * fix: securityConfig에서 posts url 허용 * feat: 회원 전체 목록 기능 구현 * feat: ErrorCode 적용 * feat: 단위 테스트 작성 * fix: postCount, postLike 값이 null이 들어가는 오류 수정 * refactor: 불필요한 코드 제거 * feat: 회원 로그인, 조회 예외 처리 * fix: signWith() deprecated 수정 * fix: errorCode 중복 네이밍 제거 * 회원 정보 수정 기능 구현 (#76) * feat: jwt 라이브러리 추가 * fix: merge 과정에서 충돌 이슈 제거 * feat: 토큰 생성, 검증을 하는 TokenProvider 클래스 생성 * feat: SecurityConfig 클래스 추가 * feat: Jwt Filter 적용 * feat: UserDetailService 추가 및 Member에 메서드 추가 * feat: 로그인, 회원가입 시 필요한 dto 클래스 생성 * feat: 유저 회원가입 기능 구현 * feat: 유저 로그인 기능 구현 * feat: 공통 Exception 클래스들 추가 * refactor: LoginSuccessDto 추가 * feat: LoginSuccessDto 추가 * feat: 회원 정보 조회 기능 추가 * feat: 회원 정보 조회 기능 추가 * fix: securityConfig에서 posts url 허용 * feat: 회원 전체 목록 기능 구현 * feat: ErrorCode 적용 * feat: 단위 테스트 작성 * fix: postCount, postLike 값이 null이 들어가는 오류 수정 * refactor: 불필요한 코드 제거 * feat: 회원 로그인, 조회 예외 처리 * merge branch * 댓글 추천 기능 구현 (#55) * feat: 댓글 추천 기능 구현 * test: 댓글 추천 기능 단위 테스트 * test: 댓글 중복 추천 시 예외 처리 단위 테스트 * style: 각 코드의 구분자를 세미콜론에서 쉼표로 변경 * feat: 유저 정보를 업데이트 하는 메서드 추가 * refactor: merge 충돌 제거 * feat: 회원 정보 수정 기능 구현 * feat: 회원 정보 수정 단위 테스트 추가 * refactor: save 메서드 없이도 변경감지로 업데이트 적용 --------- Co-authored-by: Hanjaemo <[email protected]> * refactor: PostService 에러코드 수정 (#83) * 멤버 삭제 기능 구현 (#81) * feat: 회원 탈퇴 기능 추가 * feat: 에러 코드 추가 * feat: 멤버 삭제 단위 테스트 추가 * 북마크 기능 구현 완료 (#80) * feat: BookmarkRepository 구현 완료 * feat: BookmarkRequestDto 구현 완료 * feat: 북마크에 게시글 추가 기능 구현 완료 * feat: BookmarkResponseDto 구현 완료 * feat: 북마크에 추가된 게시글 전체 목록 조회 기능 구현 완료 * feat: 게시글 북마크 해제 기능 구현 완료 * fix: 북마크 조회 기능을 특정 멤버의 북마크 조회 기능으로 수정 및 API 주소 변경 * refactor: 북마크 API 주소 수정 * feat: 북마크 기능 예외처리 구현 완료 * style: 사용하지 않는 북마크 에러코드 삭제 * style: TODO 추가-게시글을 삭제하면 북마크, 댓글은 어떤 상태로 남아야 하는가? * style: TODO 제거 * test: 북마크 기능, 예외 처리 단위 테스트 구현 및 통과 완료 * refactor: 북마크 삭제 API HTTPStatus 변경 * style: 불필요한 import 삭제 * feat: 게시글 추천 취소 기능 구현 (#78) * feat: 댓글 추천 취소 기능 구현 (#79) * Spring Swagger 세팅 (#89) * feat: Swagger config 설정 * refactor: 시큐리티 url 전체 허용 * feat: swagger 작업 * 댓글 조회시 selectedOptionId 반환 기능 구현 완료 (#86) * feat: 댓글 조회시 해당 댓글이 작성된 balanceOptionId 반환하게 구현 해당 기능 구현을 위해 Comment<->BalanceOption 엔티티 사이에 연관 관계를 맺어줬습니다. ERD 업데이트가 필요합니다. * feat: 댓글 조회시 투표 옵션 통해 작성된 balanceOptionId 반환하게 구현 수정 * refactor: balanceOptionId -> selectedOptionId 필드명 변경 * feat: 투표한 사람만 댓글 작성할 수 있도록 예외 처리 구현(회원 한정) * feat: 북마크 기능 swagger에 추가 (#91) * test: 댓글 기능 및 예외처리 테스트 재작성 및 통과 완료 (#95) * 이메일 발송 기능 구현 (#98) * feat: 메일 서버 의존성 추가 * refactor: 에러 코드 수정 * refactor: mail config 설정 * feat: 메일 발송 yml 설정 * refactor: 이메일 발송 config 수정 * feat: 이메일 발송 dto 클래스 추가 * feat: 이메일 발송 컨트롤러 생성 * feat: 이메일 발송 서비스 생성 * feat: 구글 SMTP 설정 * fix: email dto 삭제 * fix: config 파일 제거 * fix: 메일 컨트롤러, 서비스 코드 수정 * fix: 모든 url에 대해서 시큐리티 허용 * feat: EmailRequest dto 추가 * 파일 업로드 기능 구현 완료 (#97) * feat: 파일 업로드 기능 구현 * style: 스웨거에 추가하지 않는 필드 스웨거 추가 * feat: 파일 다운로드 기능 구현 완료 (#102) * Redis 설정 (#104) * feat: Redis 디펜던시 추가 * feat: yml 환경변수 세팅 * refactor: yml 수정 * feat: config 파일 추가 * feat: service 클래스 추가 * fix: BalanceOption import 추가 * fix: Redis CRUD 단위 테스트 추가 * config 파일 서브 모듈로 관리 (#106) * chore: application.yml 제거 * chore: config 파일 서브모듈로 관리 * 파일 기능 예외 처리 구현 (#112) * feat: 파일 기능 예외 처리 구현 완료 * chore: 단일 파일 최대 업로드 크기, 전체 요청 최대 크기 설정 * chore: 파일 업로드 위치 설정 완료 * feat: 파일 기능 Configuration 클래스 구현 * feat: 파일 기능 예외 처리 구현 * style: 불필요한 import 삭제 * refactor: downloadFile에 사용 되는 에러 코드 수정 * feat: FileDto에서 엔티티 생성 시 storedName 전달 구현 * move: merge 충돌 방지 위한 application.yml 삭제 * 회원 정보 수정 닉네임 / 패스워드 분리 (#109) * fix: 삭제된 yml 파일 추가 * Revert "fix: 삭제된 yml 파일 추가" This reverts commit d24deef0a0bdab526b7e34ccd39a76fcfda8ec4c. * fix: 삭제된 yml 파일 추가 * refactor: 비밀번호 변경, 닉네임 변경 로직 둘로 분리 * refactor: dto 파일 수정 * test: 비밀번호, 닉네임 수정 단위 테스트 작성 * 리프레시 토큰 추가 구현 및 전체적인 jwt 로직 수정 (#114) * fix: 암호화 된 비밀번호가 제약조건 때문에 db에 저장안되는 오류 해결 * feat: authenticationManager를 Bean으로 등록 * refactor: 반환되는 User 객체가 이메일, 비밀번호, 권한 정보를 포함하게 변경 * refactor: JwtFilter 에러 케이스 추가 * feat: RefreshToken 생성 로직 추가 및 리팩토링 * fix: dto 클래스에 accessToken, refreshToken 두개의 필드 분리 * feat: jwt yml 설정 정보 추가 * refactor: changePassword 메서드 제거 * refactor: refreshToken 만료 1주 -> 2주로 변경 * fix: yml 파일 config 폴더 내부로 이동 * AWS S3를 이용한 파일 업로드 기능 구현 (#118) * chore: AWS S3 dependecy 추가 * chore: S3 관련 설정 추가 * chore: S3 관련 dependency를 Spring Cloud AWS에서 AWS SDK for Java로 변경 * feat: S3 설정 클래스 추가 * chore: 불필요한 설정 제거 * refactor: File 엔티티 내 필드명 수정 uploadName -> originalName * feat: AWS S3를 이용한 이미지 업로드 기능 구현 * feat: 다중 이미지 업로드 기능 구현 * chore: 파일 최대 용량 설정 * refactor: 다중 이미지 업로드 메서드명 수정 * Delete src/main/resources/application.yml * refactor: config 파일 최신화 * solve conflict * 게시글 작성 시 이미지 업로드 기능 구현 (#132) * chore: config 업데이트 * refactor: 다중 업로드 기능 불필요하다고 결정됨으로써 해당 코드 제거 * chore: 기존에 작성된 FileService 클래스 제거 * refactor: 클래스 이름 수정 및 메서드 추출 * style: 불필요한 코드 제거 * refactor: FileDto 클래스에서 불필요한 코드 제거 및 필드 주입 수정 * refactor: JPEG의 확장자를 jpg에서 jpeg로 변경 * feat: 게시글 작성 시 이미지 엔티티와 매핑 * 발송된 숫자코드 검증 기능 구현 (#107) * feat: 30분 유효시간 설정 * refactor: dto 이름 수정 * feat: 발송 코드가 일치하는지 검증 기능 구현 * feat: 이메일 검증에 필요한 dto 클래스 추가 * feat: 에러 코드 추가 * refactor: validator 분리 및 에러코드 추가 * feat: swagger 코드 추가 * refactor: 리뷰 내용 리팩토링 * fix: yml 파일 config 폴더 내부로 이동 * refactor: mail패키지를 global에서 module로 이동 및 의미를 더 명확하게 하기 위해 authmail로 이름 변경 * refactor: 메서드 camel case 형식에 맞게 수정 * refactor: 회원 정보에서 ip 제거 (#138) * 엑세스 토큰 만료 시 리프레시 토큰으로 액세스 토큰 재발급 하는 기능 추가 (#124) * feat: 유효한 자격증명을 제공하지 않을 때 401 에러 리턴하는 기능 구현 * feat: 유효한 권한이 존재하지 않는 경우 403 에러 리턴하는 기능 구현 * feat: 401, 403에러 exception handling * refactor: 토큰 필드를 TokenDto를 생성하여 따로 분리 * feat: accessToken 만료시 refreshToken 재발급 하는 기능 구현 * feat: 에러 코드 추가 * refactor: yml 파일 config로 이동 * refactor: JwtTokenProvider 에서 AuthenticationManager 삭제하여 순환 참조 에러 해결 * JwtTokenProvider 테스트 코드 작성 및 예외 테스트 코드 작성 (#128) * fix: 오류 나는 코드 주석 처리 및 수정 * feat: payload 조회 기능 구현 및 authentication null 체크하는 메서드 추가 * fix: file 테스트 수정 * test: 토큰 테스트 코드 작성 * refacotor: 불필요한 코드 제거 * todo 주석 추가 * refactor:불필요한 코드 삭제 * fix: IllegalArgumentException 다른 amazon.awssdk import문 제거!!!!! * 게시글 단건, 전체 조회 API 응답에 누락된 필드 추가 (#135) * feat: 응답 DTO에 게시글 추천수 필드 추가 * feat: 응답 DTO에 게시글 작성일, 작성자 필드 추가 * feat: 응답 DTO에 게시글 추천, 북마크 여부 필드 추가 * feat: likes가 null일 경우 0 반환하는 로직 추가 * refactor: 메서드 파라미터로 memberId 전달 * 회원 정보 조회 로직 수정 (#130) * refactor: merge * feat: 토큰 생성할 때 grantType 부여 * Todo: jwt 토큰을 추출하는 공통 로직 추가 예정 * 게시글 작성 시 이미지 업로드 기능 구현 (#132) * chore: config 업데이트 * refactor: 다중 업로드 기능 불필요하다고 결정됨으로써 해당 코드 제거 * chore: 기존에 작성된 FileService 클래스 제거 * refactor: 클래스 이름 수정 및 메서드 추출 * style: 불필요한 코드 제거 * refactor: FileDto 클래스에서 불필요한 코드 제거 및 필드 주입 수정 * refactor: JPEG의 확장자를 jpg에서 jpeg로 변경 * feat: 게시글 작성 시 이미지 엔티티와 매핑 * 발송된 숫자코드 검증 기능 구현 (#107) * feat: 30분 유효시간 설정 * refactor: dto 이름 수정 * feat: 발송 코드가 일치하는지 검증 기능 구현 * feat: 이메일 검증에 필요한 dto 클래스 추가 * feat: 에러 코드 추가 * refactor: validator 분리 및 에러코드 추가 * feat: swagger 코드 추가 * refactor: 리뷰 내용 리팩토링 * fix: yml 파일 config 폴더 내부로 이동 * refactor: mail패키지를 global에서 module로 이동 및 의미를 더 명확하게 하기 위해 authmail로 이름 변경 * refactor: 메서드 camel case 형식에 맞게 수정 * refactor: 회원 정보에서 ip 제거 (#138) * 엑세스 토큰 만료 시 리프레시 토큰으로 액세스 토큰 재발급 하는 기능 추가 (#124) * feat: 유효한 자격증명을 제공하지 않을 때 401 에러 리턴하는 기능 구현 * feat: 유효한 권한이 존재하지 않는 경우 403 에러 리턴하는 기능 구현 * feat: 401, 403에러 exception handling * refactor: 토큰 필드를 TokenDto를 생성하여 따로 분리 * feat: accessToken 만료시 refreshToken 재발급 하는 기능 구현 * feat: 에러 코드 추가 * refactor: yml 파일 config로 이동 * refactor: JwtTokenProvider 에서 AuthenticationManager 삭제하여 순환 참조 에러 해결 * JwtTokenProvider 테스트 코드 작성 및 예외 테스트 코드 작성 (#128) * fix: 오류 나는 코드 주석 처리 및 수정 * feat: payload 조회 기능 구현 및 authentication null 체크하는 메서드 추가 * fix: file 테스트 수정 * test: 토큰 테스트 코드 작성 * refacotor: 불필요한 코드 제거 * todo 주석 추가 * refactor:불필요한 코드 삭제 * fix: IllegalArgumentException 다른 amazon.awssdk import문 제거!!!!! * refactor: merge * Todo: jwt 토큰을 추출하는 공통 로직 추가 예정 --------- Co-authored-by: Hanjaemo <[email protected]> * 회원 정보 수정, 삭제 리팩토링 (#134) * refactor: merge * feat: 토큰 생성할 때 grantType 부여 * Todo: jwt 토큰을 추출하는 공통 로직 추가 예정 * refactor: 회원 정보 수정, 회원 삭제 memberId -> 토큰으로 리팩토링 * refactor: 회원 정보 조회할 때 memberId 값 추가 * refactor: 회원 이메일을 jwt 토큰에서 추출하는 중복 코드를 메서드로 변경 * refactor: pr 내용 반영해서 코드 리팩토링 * refactor: merge과정에서 삭제된 메서드 추가 * 답글 작성 기능 구현 완료 (#133) * feat: Comment 엔티티에 답글 관계 구현을 위한 부모 댓글 참조 필드 구현 * feat: 답글 RequestDto 구현 * feat: 답글 작성 기능 및 예외 처리 구현 * style: optimize imports 적용 * 이메일 인증 단위 테스트 및 예외 처리 단위 테스트 구현 (#141) * refactor: dto에 어노테이션 추가 * refactor: member, post 테스트 로직 오류 때문에 임시 주석처리 * test: 인증 메일 단위 테스트, 에외 처리 단위 테스트 작성 * 로그아웃 기능 구현 (#144) * chore: * feat: 로그 아웃 된 사용자가 글을 쓸때를 막는 에러코드 추가 * feat: 로그아웃 될 때 Redis에 저장된 토큰값을 제거하는 기능 구현 * feat: 글을 작성할 때 Redis에 저장된 토큰 값이 없다면, 에러를 던지는 기능 추가 * feat: 로그인을 하지 않은 사용자가 로그아웃을 시도할 때 에러를 던지는 기능 추가 * 답글 depth를 1로 제한하는 기능 구현 완료 (#145) * feat: 답글 depth 에러 코드 추가 * feat: 답글에 depth 제한 기능 구현 * test: 답글 기능, 예외 단위 테스트 작성 및 통과 완료, 기존 테스트 통과 확인 * chore: redis 호스트 분리 * refactor: 기존 id를 통해 회원을 조회하는 로직을 jwt를 사용해 조회하도록 수정 * refactor: 메서드 분리 등 코드 개선 * 북마크 API URL 개선 완료 (#148) * feat: 북마크 삭제 권한 없음 에러 코드 추가 * feat: BookmarkRequestDto 에서 memberId 필드 삭제 * feat: 북마크 기능 사용 시 memberId 대신 현재 인증된 사용자의 정보 조회하도록 구현 * feat: BookmarkRequestDto 의 불필요한 postId 필드 제거 * feat: 북마크 삭제 API postId 기반 작동 구현 완료 * test: 변경된 북마크 개선점 기반으로 기존의 전체 테스트코드 수정 및 통과 완료 * style: optimze imports 적용 완료 * refactor: 불필요한 BookmarkRequestDto 클래스 삭제 * test: 변경점으로 인한 테스트 코드 수정 및 전체 통과 완료 * 댓글 기능 memberId 사용 -> JWT 사용으로 수정 (#150) * feat: 댓글 기능에서 memberId 삭제 및 JWT로 로그인한 사용자 이메일 기반으로 멤버 조회하도록 변경 * refactor: getCurrentMember 메서드 SecurityUtils 클래스로 분리 * feat: 댓글 삭제 및 수정 요청 시 본인이 작성한 댓글인지 검증 구현 * refactor: CommentCreateRequest 내 불필요한 memberId 필드 제거 * test: 댓글 기능 변경점에 따라 테스트 코드 수정 및 전체 통과 완료 * test: 댓글 수정, 삭제 시 권한 없음 예외 테스트코드 작성 및 통과 * feat: SecurityUtils 클래스 기본 생성자 접근 방지 구현 * fix: mergy 후 충돌 재수정 * refactor: 불필요한 파라미터 삭제 * style: BookmarkService의 save 메서드명 createBookmard로 수정 (컨벤션) * 멤버 단위 테스트, 예외 처리 테스트 추가 (#157) * refactor: merge * fix: dto 파일 삭제 * refactor: 메일 dto에 기본 생성자 추가 * test: MemberService 단위 테스트, 예외 테스트 추가 * fix: 서비스 로직 merge * fix: import 오류 수정 * 투표 생성 기능 단위 테스트 작성 (#159) * fix: BookmarkServiceTest 패키지 위치로 인해 발생한 컴파일에러 해결 * test: memberId를 통해 회원을 조회하던 방식에서 jwt로 변경됨에 따라 테스트 코드 수정 * test: 비회원 투표 기능 단위 테스트 * test: 투표 생성 시 게시글 정보가 없는 경우 단위 테스트 * test: 투표 생성 시 선택지 정보가 없는 경우 단위 테스트 * test: 투표 생성 시 회원 정보가 없는 경우 단위 테스트 * test: 투표 생성 시 선택지가 다른 게시글의 선택지인 경우 단위 테스트 * test: 투표 생성 시 게시글 마감 기한이 만료된 경우 단위 테스트 * test: 투표 생성 시 이미 투표한 기록이 있는 게시글인 경우 단위 테스트 * 투표 현황 조회 및 투표 수정 기능에 대한 단위 테스트 작성 (#162) * test: 투표 현황 조회 시 게시글 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 게시글 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 선택지 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 회원 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 회원 정보가 없는 경우 단위 테스트 * test: 투표 수정 시 게시글의 카테고리가 캐주얼인 경우 단위 테스트 * 게시글 기능 memberId 대신에 jwt를 사용하도록 수정 (#153) * feat: SecurityUtils 클래스 생성하여 로그인한 회원의 이메일을 가져오는 기능 추가 * refactor: RedisConfigTest 수정 * feat: jwt를 사용하여 게시글 작성 및 삭제 기능 추가 * feat: 게시글 추천 상태가 0일때 추천 취소를 누를 경우 에러 코드 추가 * feat: jwt를 사용하여 게시글 추천, 추천 취소 기능 수정 * refactor: postId로 포스트를 찾는 로직을 메서드화 해서 중복 제거 * 댓글 기능 사용 시 해당 댓글이 URL의 게시글 id와 매칭 여부 검증 로직 추가 완료 (#164) * refactor: getCurrentMember() 메서드 전역 static 메서드 사용하도록 수정 * feat: 해당 게시글에 존재하지 않는 댓글 예외 구현 * style: optimze imports 적용 완료 * test: 예외 추가에 따른 테스트 코드 추가 작성 및 전체 테스트 코드 통과 완료 * feat: 게시글 작성 시 storedFileName이 Null일 경우에 대한 로직 구현 (#167) * refactor: 게시글 조회 시 응답 DTO 이름 변경 및 불필요한 파라미터 제거 (#169) * test: 단위 테스트 및 예외 테스트 추가 (#161) * 회원가입, 로그인 시 RequestBody, Response 수정 (#176) * refactor: 유저가 db에 등록될 때 자동으로 USER 값이 들어가도록 설정 * refactor: 로그인 했을 때 토큰 정보만 클라이언트에 전달하도록 변경 * test: 로직 변경에 따른 테스트 코드 수정 * 공지사항 작성 기능 구현 완료 (#172) * move: Notice 클래스 패키지 생성 및 이동 * feat: NoticeRepository 클래스 작성 * feat: Notice 엔티티 어노테이션 추가 * feat: 공지사항 작성 기능 구현 및 예외처리 구현 * feat: NoticeResponse에 content 반환 추가 * style: 불필요한 공백 제거 * test: 공지사항 작성 및 관련 예외 테스트 코드 작성 및 통과 완료 * feat: 전체 공지 조회, 단건 공지 조회 기능 구현 및 예외 처리 구현 * test: 전체 공지사항 조회, 단건 공지사항 조회 구현에 따른 테스트 코드 추가 작성 * style: optimze imports 적용 * fix: SecurityContextHolder로 인한 다른 테스트와 충돌 일어나는 에러 수정 * feat: 불필요한 생성자 어노테이션 삭제 * feat: 제약 조건을 DTO에서 검증하도록 구현 및 핸들링 클래스 작성 * 공지사항 목록 조회, 특정 공지사항 조회 기능 구현 완료 (#174) * move: Notice 클래스 패키지 생성 및 이동 * feat: NoticeRepository 클래스 작성 * feat: Notice 엔티티 어노테이션 추가 * feat: 공지사항 작성 기능 구현 및 예외처리 구현 * feat: NoticeResponse에 content 반환 추가 * style: 불필요한 공백 제거 * test: 공지사항 작성 및 관련 예외 테스트 코드 작성 및 통과 완료 * 게시글 조회 API에 조회수 증가 로직 추가 (#181) * refactor: memberId로 조회하던 기존 로직을 JWT를 사용하여 조회하도록 수정 * fix: Authorization 필수 여부를 false로 수정 * feat: 게시글 조회 API에 조회수 증가 로직 추가 * refactor: findAll 메서드의 readOnly를 true로 지정함으로써 조회용 메서드임을 강조 * 스웨거 헤더 값으로 토큰 추가 (#182) * feat: swagger 문서에 토큰 헤더값 추가 * fix: multipart file 스웨거 설정 추가 * fix: swagger 문서에 날짜 정보가 example 대로 안들어가던 오류 수정 * fix: afterEach로 테스트 종료 시 SecurityContextHolder context 제거 * test: global 폴더에 위치한 테스트 코드 삭제 * refactor: 파일 어노테이션 RequestParam에서 RequestPart로 변경 * 회원 닉네임 중복 검증 API 추가 및 테스트 코드 작성 (#178) * feat: 회원 닉네임 중복 검증 기능 구현 * test: 회원 닉네임 중복 검증 기능 단위 테스트 추가 * refactor: 파라미터에 닉네임 정보를 넣어 중복 체크하도록 변경 * test: 공지사항 생성 실패 테스트 스프링 통합 테스트로 변경 * 게시글, 댓글 조회 API 페이징, 정렬 처리 (#191) * chore: 설정 업데이트 * feat: 게시글 목록 조회 페이징 처리 * test: PostServiceTest 임시 주석 처리 * feat: 댓글 목록 조회 API 페이징 처리 * chore: 기본 페이지 사이즈 설정 추가 * refactor: 댓글 목록 조회 메서드의 반환 타입을 List<CommentResponse>에서 Page<CommentResponse>로 수정 * refactor: 게시글 목록 조회 메서드의 반환 타입을 List<PostResponse>에서 Page<PostResponse>로 수정 * refactor: PostRequest에서 memberId 제거 * 시큐리티 인증 URL 추가 및 에러 처리 추가 (#199) * refactor: 이메일 인증 에러코드 HttpStatus 변경 * refactor: JwtTokenProvider 코드 리팩토링 및 에러 코드 추가 * refactor: 테스트 코드 예외 처리할 때 메세지 String -> ErrorCode 형태로 수정 * refactor: 닉네임, 비밀번호 변경할 때 현재 값과 동일할 때 에러 메세지 추가 * refactor: 회원 가입 시 중복 이메일, 중복 닉네임 예외 처리 * refactor: 로그인 상태가 아닐 때 에러 메세지를 던지도록 수정 * refactor: 유효한 토큰이 아닐 때 클라이언트에 에러 메세지를 보내주도록 설정 * feat: 유효하지 않은 토큰인 경우 에러 코드 추가 * feat: 인증이 필요하지 않은 API URL 설정 * fix: swagger 문서에서 이중 배열로 데이터가 나타나던 문제 해결 * refactor: likeCount -> likesCount로 필드 이름 통일 * feat: 미인증 상태일 때 클라이언트에 json 형태로 httpStatus와 message를 보여주는 기능 추가 * refactor: 리뷰 내용 반영하여 에러 코드 이름 수정 * 회원가입 시 프로필 사진 선택 기능 구현 완료 (#207) * feat: 회원가입 시 프로필 사진 선택 가능하게 구현 * test: 기능 변경에 따른 기존 테스트 코드 변경 * feat: 게시글 응답 dto에 투표 여부 추가 (#198) * 인기 댓글 조회 기능 구현 (#206) * chore: HTTP 메서드가 GET인 댓글 관련 모든 URL 허용 * feat: 인기 댓글 목록 조회 기능 구현 * feat: 비회원과 회원 각각의 경우에 따른 조회 로직 구분, 응답 DTO에 myLike 필드 추가 * refactor: api 테스트용으로 사용하던 매직 넘버를 상수로 수정 * 인기 게시글 조회 기능 구현 (#203) * feat: 인기 게시글 조회 기능 구현 * style: 불필요한 개행 제거 * fix: PostService update * fix: PostController update * test: 시큐리티 인증 기능 추가로 인한 기존 공지 테스트 코드 수정 * feat: 게시글 응답 시 balanceOptionId 반환 구현 (#195) * Create ci.yml * Update ci.yml * init ci.yml * fix: CommentServiceTest * Embedded Redis 적용 (#218) * chore: embedded redis 설정 추가 * chore: 내장 redis를 profile이 local일때만 동작하도록 설정 * fix: 임시로 실패하는 로그아웃 단위 테스트 주석 처리 * refactor: 로그 아웃 테스트 코드 수정 * 비밀번호 찾기 기능 구현 (#205) * feat: 임시 비밀번호 발급 기능 구현 * feat: 임시 비밀번호 발급 후 데이터베이스에 저장된 비밀번호 변경 * feat: 이메일 발송이 실패한 경우 에러 코드 추가 * test: 임시 비밀번호 발송 후 회원 비밀번호 단위 테스트 추가 * refactor: 리뷰 받은 내용들 반영하여 수정 * Update ci.yml * Update ErrorCode.java * NoticeControllerTest 임시 주석 처리 * 공지사항 수정, 삭제 기능, 파일 첨부 구현 완료 (#186) * feat: 공지사항 수정, 삭제 에러 코드 추가 및 403번 에러로 변경 * feat: 공지사항 수정, 삭제 기능 구현 * test: 공지사항 수정, 삭제 기능에 대한 테스트 코드 작성 및 통과 완료 * feat: 공지사항 파일 첨부 구현 * fix: 공지사항 파일 첨부 시 Response에서 파일 목록이 null로 뜨던 에러 수정 * test: 공지사항 기능 추가 구현에 대한 테스트 코드 수정 및 추가 작성 완료 * test: 테스트 주석 처리 * 토큰 값에 memberId 추가 및 기타 예외 처리 (#219) * feat: 회원 가입 시 중복된 닉네임, 중복된 이메일 에러 처리 추가 * feat: 토큰 claims 정보에 memberId 추가 * feat: 파일 업로드 URL 시큐리티 접근 허용 * refactor: Notice Controller 테스트 주석 처리 * refactor: 누락된 코드 추가 --------- Co-authored-by: Hanjaemo <[email protected]> * Create cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml --------- Co-authored-by: Junsoo Choi <[email protected]> Co-authored-by: gywns0417 <[email protected]> Co-authored-by: king_0417 <[email protected]> Co-authored-by: Junsoo Choi <[email protected]> * Update .gitmodules * Update cd.yml * feat: 게시글 전체 투표 수 필드명 변경 * Update cd.yml * Update cd.yml * feat: 임시 비밀번호 발송 API 시큐리티 허용 * feat: 회원 프로필 이미지 수정 기능 추가 * feat: 회원 프로필 이미지 수정 단위 테스트 추가 * 게시글 응답 필드(이미지 url) 변경 (#211) * refactor: 파일 업로드 경로 변경 및 상수화 * refactor: 게시글 조회 시 이미지 이름 대신 URL을 응답하도록 수정 * Bean Validation 사용 시 API 에러 메세지 처리 구현 (#222) * feat: 회원가입 할 때 입력 유효성 검증 추가 * feat: 메일 인증 서비스 유효성 검사 추가 * feat: 게시글 작성 유효성 검사 추가 * feat: 밸런스 옵션, 게시글 작성시 BalanceOption이 비어있는 경우 유효성 검사 * feat: 투표 생성 유효성 검사 * refactor: bookmark -> bookmarks로 url 수정 * refactor: "/posts" url 삭제 * refactor: @Valid 어노테이션 추가 및 파일 업로드 URL 시큐리티 허용 * refactor: Notice Controller 테스트 주석 처리 --------- Co-authored-by: Hanjaemo <[email protected]> * Update cd.yml * 게시글 검색, 태그 검색 기능 구현 (#233) * feat: 게시글 제목 검색 기능 구현 * feat: 게시글 태그 검색 기능 구현 * refactor: pageable 파라미터 제거 * test: 게시글 제목 검색, 태그 검색 단위 테스트 작성 * 마이페이지 본인이 작성한 게시글, 댓글 조회 기능 구현 (#209) * feat: 마이페이지 - 본인이 작성한 게시글 조회 기능 구현 완료 * feat: 마이페이지 - 본인이 작성한 댓글 조회 기능 구현 완료 * Create appspec.yml * 마이페이지 본인이 투표한 게시글, 즐겨찾기한 게시글 조회 기능 구현 (#214) * feat: 마이페이지 - 본인이 작성한 게시글 조회 기능 구현 완료 * feat: 마이페이지 - 본인이 작성한 댓글 조회 기능 구현 완료 * feat: 마이페이지 - 본인이 투표한 게시글 조회 기능 구현 완료 * fix: 페이지네이션 적용 안되던 문제 해결 * feat: 마이페이지 - 본인이 북마크한 게시글 조회 기능 구현 완료 * style: 메서드 네이밍 수정 * feat: 마이페이지 컨트롤러 누락된 어노테이션 추가 * fix: 머지 후 conflicts 해결 * feat: totalVoteCount -> totalVotesCount 필드명 수정 * 게시글 응답 시 투표한 선택지인 selectedOptionId 반환 구현 완료 (#228) * feat: 게시글 응답 시 투표한 선택지인 selectedOptionId 반환 구현 * feat: 비회원 게시글 조회 가능 및 selectedOptionId null 반환 구현 * 게시글 및 댓글 응답시 사용자 프로필 이미지 반환 구현 완료 (#230) * feat: 게시글 응답 시 게시글 작성자의 프로필 이미지 반환 구현 * feat: 댓글 응답 시 모든 댓글 작성자의 프로필 이미지 반환 구현 * 댓글 응답시 부모 댓글(원 댓글) id 응답 추가 구현 완료 (#232) * feat: 게시글 응답 시 게시글 작성자의 프로필 이미지 반환 구현 * feat: 댓글 응답 시 모든 댓글 작성자의 프로필 이미지 반환 구현 * feat: 댓글 응답 시 부모 댓글 id 반환 구현 * fix: merge 후 conflicts 수정 * Create gh_deploy.sh * Update build.gradle * Update cd.yml * Update cd.yml * Update cd.yml * Update cd.yml * fix: PostRequest, PostResponse에서 리스트 형태로 된 Schema 삭제 * feat: 임시 비밀번호 발송 API 시큐리티 허용 * feat: 회원 프로필 이미지 수정 기능 추가 * feat: 회원 프로필 이미지 수정 단위 테스트 추가 * fix: storedFileName을 사용하여 이미지를 수정하는 방식으로 코드 리팩토링 --------- Co-authored-by: gywns0417 <[email protected]> Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: king_0417 <[email protected]> * feat: 게시글 응답에 선택지 ID 추가 (#242) * feat: 회원/비회원 로직 구분 개선 (#243) * 리프레시 토큰을 쿠키에 담는 기능 구현 (#236) * refactor: balanceOption 스웨거에서 정상적으로 보여지지 않는 오류 수정 * fix: balanceOption 스웨거에서 정상적으로 보여지지 않는 오류 수정 * refactor: 토큰 만료, 유효하지 않은 토큰 에러인 경우 서버에 에러 메세지 전달하도록 수정 * refactor: 기본 생성자 제거 * feat: allowCredentials true 설정 * feat: 쿠키에 리프레시 토큰을 담는 기능 추가 * feat: 프론트에 쿠키를 보내기 위해 CORS 설정 수정 * feat: 리프레시 토큰을 헤더로 보내서 만료된 액세스 토큰을 재발급 받는 기능 추가 * test: MemberServiceTest 수정 * refactor: 불필요한 주석, Import문 제거 및 @Schema 제거 * refactor: 로그인 시 액세스 토큰만 클라이언트에 전달하도록 수정 * feat: refreshToken 헤더 설정 정보 추가 --------- Co-authored-by: Junsoo Choi <[email protected]> Co-authored-by: gywns0417 <[email protected]> Co-authored-by: king_0417 <[email protected]> Co-authored-by: Junsoo Choi <[email protected]> * �cors 설정 * Update SecurityConfig.java --------- Co-authored-by: Hanjaemo <[email protected]> Co-authored-by: gywns0417 <[email protected]> Co-authored-by: king_0417 <[email protected]> * 공지사항, 마이페이지 시작 페이지 번호 수정 완료 (#239) * feat: 마이페이지 페이지 번호 0부터 시작하도록 수정 * feat: 공지사항 페이지 번호 0부터 시작하도록 수정 * 답글 조회 API 구현 완료 (#254) * feat: 답글 응답 ReplyResponse 클래스 작성 * feat: 답글 조회하는 JPA 쿼리 메서드 추가 * feat: 답글 조회 API 구현 * feat: CommentResponse 내 불필요한 답글 관련 필드, 메서드 삭제 * style: 스웨거 스키마 (댓글 -> 답글) 수정 * feat: 댓글 목록 조회 시 답글 제외 (#249) * feat: 게시글 목록 조회 시 추천수를 기준으로 내림차순 정렬하는 기능 구현 (#248) * fix: PostResponse 응답 시 vote.getMember() 가 null일 경우 처리 구현 (#263) * 스웨거 문서 수정 및 시큐리티 URL 허용 (#269) * refactor: application/json 에서 text/plain 으로 수정 * refactor: 임시 비밀번호 발급 로직을 POST로 변경 후 시큐리티 URL 허용 * feat: 클라이언트에 올바르게 토큰 에러 정보를 보여주도록 수정 (#258) * 회원 조회 시 응답에 있는 프로필 사진의 storedName을 url로 수정 (#268) * fix: VoteRequest에 기본 생성자 추가 및 허용 도메인 주소 변경 * chore: 포트 변경 * feat: MemberResponse에서 프로필 사진 이름 대신 URL을 포함하도록 수정 * 게시글 조회 응답에 댓글 개수 추가 (#271) * feat: 게시글 조회 응답에 댓글 개수 추가 * refactor: 댓글 개수 가져오는 책임을 Post 객체에 위임 * 마이페이지 API 응답 수정 완료 (#253) * move: 기존 마이페이지 Response 클래스 삭제 * feat: CommentResponse 내 불필요해진 postTitle 필드 삭제 * feat: MyPageResponse 클래스 작성 * feat: MyPageResponse 클래스 작성에 따른 기존 코드 수정 * fix: VoteRequest에 누락된 @NoArgsConstructor 어노테이션 추가 * style: 공백 추가 * feat: MyPageResponse 에 postId 반환 추가 구현 * feat: 쿠키를 이용하여 리프레시 토큰을 추출하고 액세스 토큰을 재발급 하는 방법으로 구현 (#264) Co-authored-by: king_0417 <[email protected]> * fix: merge 후 에러 수정 * 게시글, 댓글 신고 기능 구현 (#255) * refactor: dto 클래스에서 기본 생성자 제거 * feat: 게시글 신고 기능 구현 * feat: 댓글 신고 기능 구현 * feat: 신고 관련 파일 추가 * feat: 게시글 신고 횟수가 5가 되면 BLIND로 변경 * feat: 댓글 신고 횟수가 5가 되면 BLIND 상태로 변경 * feat: 회원이 신고당한 횟수를 보여주는 API 추가 * refactor: 리뷰 수정 * refactor: 수정 사항 추가 * fix: 사용하지 않는 메서드, 변수 제거 * fix: 신고만 적용되도록 수정 * refactor: viewStatus 주석 처리 * test * refactor: 리뷰 내용 반영해서 수정 * fix: import 수정 * 영속성 전이 (#279) * submodule * 게시글 작성 할때 데드라인에서 @JsonFormat 수정 (#282) * fix: 게시글 작성 할때 데드라인에서 @JsonFormat 수정 * refactor: 스웨거 필드 값 수정 * 태그 검색 시 401 에러가 뜨던 오류 해결 (#290) * fix: 토큰 값이 없을 때 에러 메세지 삭제 * refactor: 게시글 태그 검색 쿼리 NATURAL JOIN에서 INNER JOIN으로 변경 * 게시글 좋아요 해제 로직 수정 (#292) * refactor: 게시글 좋아요 해제 로직 수정 * feat: 게시글 추천을 한 기록이 없을 때 예외 처리 추가 * refactor: Redis에 저장되는 값을 직렬화 하는 빈 추가 (#296) * fix: 게시글 단건 조회 메서드의 readOnly 설정 해제 (#289) * 댓글 목록 조회 API에서 댓글마다 답글 개수 포함하도록 수정 완료 (#287) * feat: Comment 엔티티에 답글 수 필드 추가 * feat: CommentResponse 에서 답글 수 반환하도록 구현 --------- Co-authored-by: Junsoo Choi <[email protected]> Co-authored-by: gywns0417 <[email protected]> Co-authored-by: king_0417 <[email protected]> Co-authored-by: Junsoo Choi <[email protected]>
- Loading branch information