Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

토큰 값에 memberId 추가 및 기타 예외 처리 #219

Merged
merged 10 commits into from
Mar 19, 2024

Conversation

jschoi-96
Copy link
Contributor

💡 작업 내용

  • 회원 가입 시 중복된 이메일, 닉네임 에러 처리
  • 토큰에 memberId 추가
  • 로그아웃 단위 테스트, 예외 처리 테스트 수정

💡 자세한 설명

중복 에러 처리

스크린샷 2024-03-18 오전 2 09 49

회원 가입 시 중복된 이메일이나 닉네임으로 가입하려고 할 때 key constraints 에러가 발생해서 중복 체크 로직을 추가했습니다.

토큰에 memberId 값 추가

스크린샷 2024-03-18 오전 2 12 50
스크린샷 2024-03-18 오전 2 12 59

토큰 claims에 memberId 값을 넣어 주었습니다. getMemberId 메서드를 통해서 값을 꺼내올 수 있습니다.

스크린샷 2024-03-18 오전 2 15 04

로그인 후 발급된 accessToken 값에 memberId 가 포함된 것을 확인 할 수 있습니다.

로그아웃 테스트 코드

스크린샷 2024-03-18 오전 2 18 55

로그아웃 성공, 실패 단위 테스트를 수정했습니다.

📗 참고 자료 (선택)

📢 리뷰 요구 사항 (선택)

🚩 후속 작업 (선택)

✅ 셀프 체크리스트

  • PR 제목을 형식에 맞게 작성했나요?
  • 브랜치 전략에 맞는 브랜치에 PR을 올리고 있나요? (master/main이 아닙니다.)
  • 이슈는 close 했나요?
  • Reviewers, Labels, Projects를 등록했나요?
  • 작업 도중 문서 수정이 필요한 경우 잘 수정했나요?
  • 테스트는 잘 통과했나요?
  • 불필요한 코드는 제거했나요?

closes #212

@jschoi-96 jschoi-96 added ✔︎ pull requests pull requests 코드 체크 요청 👨🏻‍💻 backend 🛠️ fix 오류 수정 labels Mar 17, 2024
@jschoi-96 jschoi-96 added this to the Sprint 6 milestone Mar 17, 2024
@jschoi-96 jschoi-96 self-assigned this Mar 17, 2024
@jschoi-96 jschoi-96 changed the title Feat/212 add memberid token 토큰 값에 memberId 추가 및 기타 예외 처리 Mar 18, 2024
@Hanjaemo Hanjaemo requested review from Hanjaemo and gywns0417 March 19, 2024 10:35
@jschoi-96 jschoi-96 merged commit 78f5496 into dev Mar 19, 2024
2 checks passed
@jschoi-96 jschoi-96 deleted the feat/212-add-memberid-token branch March 19, 2024 12:42
Hanjaemo added a commit that referenced this pull request Mar 19, 2024
* 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 f27a0d9.

* 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 f27a0d9.

* 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 f27a0d9.

* 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 d24deef.

* 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]>
Hanjaemo added a commit that referenced this pull request Mar 22, 2024
* 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 f27a0d9.

* 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 f27a0d9.

* 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 f27a0d9.

* 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 d24deef.

* 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 수정

---------

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]>
jschoi-96 added a commit that referenced this pull request Mar 23, 2024
* 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 f27a0d9.

* 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 f27a0d9.

* 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 f27a0d9.

* 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 d24deef.

* 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]>
Hanjaemo added a commit that referenced this pull request Mar 23, 2024
* 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)

---------

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]>
Hanjaemo added a commit that referenced this pull request Mar 25, 2024
* 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]>
Hanjaemo added a commit that referenced this pull request Mar 25, 2024
* 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]>
Hanjaemo added a commit that referenced this pull request Mar 25, 2024
* 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)

---------

Co-authored-by: Junsoo Choi <[email protected]>
Co-authored-by: gywns0417 <[email protected]>
Co-authored-by: king_0417 <[email protected]>
Hanjaemo added a commit that referenced this pull request Mar 27, 2024
* 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)

---------

Co-authored-by: Junsoo Choi <[email protected]>
Co-authored-by: gywns0417 <[email protected]>
Co-authored-by: king_0417 <[email protected]>
Hanjaemo added a commit that referenced this pull request Mar 29, 2024
* 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 후 에러 수정

---------

Co-authored-by: Junsoo Choi <[email protected]>
Co-authored-by: gywns0417 <[email protected]>
Co-authored-by: king_0417 <[email protected]>
jschoi-96 added a commit that referenced this pull request Mar 30, 2024
* 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

---------

Co-authored-by: Hanjaemo <[email protected]>
Co-authored-by: gywns0417 <[email protected]>
Co-authored-by: king_0417 <[email protected]>
jschoi-96 added a commit that referenced this pull request Mar 31, 2024
* 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: 스웨거 필드 값 수정

---------

Co-authored-by: Hanjaemo <[email protected]>
Co-authored-by: gywns0417 <[email protected]>
Co-authored-by: king_0417 <[email protected]>
Hanjaemo added a commit that referenced this pull request Apr 5, 2024
* 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]>
Hanjaemo added a commit that referenced this pull request Apr 9, 2024
* 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 에서 답글 수 반환하도록 구현

* 토큰 재발급 시 memberId가 토큰에 포함되지 않던 오류 수정 (#301)

* fix: 사용하지 않는 tokenDto 클래스 삭제

* refactor: 사용자 로그인 상태에서 memberId를 추출할 수 있도록 Spring Security 설정 정보 수정

* refactor: memberId를 전달해줘서 토큰을 재발급 받을 수 있도록 리팩토링

* refactor: 불필요한 코드 삭제 및 로그아웃 상태에서 토큰 재발급 시도 할 때 에러 문구 추가

* 게시글, 댓글 신고 예외 처리 추가 (#299)

* feat: 본인 게시글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* feat: 본인 댓글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* 회원 프로필 조회 기능 구현 (#294)

* feat: 회원 프로필 정보를 보여주는 dto 생성

* feat: 회원 프로필 정보 조회 기능 구현

* feat: 회원 프로필 정보 조회 API 시큐리티 URL 허용

* refactor: 회원 프로필 조회 URL 수정 및 시큐리티 허용

* refactor: 회원 프로필 사진 정보를 가져올 때 사진도 같이 가져오도록 구현

* refactor: 회원 프로필을 가져올 때 storedName에서 getURL로 변경

* 게시글, 댓글 응답에 작성자 ID 추가 (#303)

* feat: PostResponse에 memberId(게시글 작성자 ID) 추가

* feat: CommentResponse에 writerId(댓글 작성자 ID) 추가

* refactor: 댓글 응답과 통일하기 위해 필드명 변경

---------

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]>
jschoi-96 added a commit that referenced this pull request Apr 22, 2024
* 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 에서 답글 수 반환하도록 구현

* 토큰 재발급 시 memberId가 토큰에 포함되지 않던 오류 수정 (#301)

* fix: 사용하지 않는 tokenDto 클래스 삭제

* refactor: 사용자 로그인 상태에서 memberId를 추출할 수 있도록 Spring Security 설정 정보 수정

* refactor: memberId를 전달해줘서 토큰을 재발급 받을 수 있도록 리팩토링

* refactor: 불필요한 코드 삭제 및 로그아웃 상태에서 토큰 재발급 시도 할 때 에러 문구 추가

* 게시글, 댓글 신고 예외 처리 추가 (#299)

* feat: 본인 게시글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* feat: 본인 댓글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* 회원 프로필 조회 기능 구현 (#294)

* feat: 회원 프로필 정보를 보여주는 dto 생성

* feat: 회원 프로필 정보 조회 기능 구현

* feat: 회원 프로필 정보 조회 API 시큐리티 URL 허용

* refactor: 회원 프로필 조회 URL 수정 및 시큐리티 허용

* refactor: 회원 프로필 사진 정보를 가져올 때 사진도 같이 가져오도록 구현

* refactor: 회원 프로필을 가져올 때 storedName에서 getURL로 변경

* 게시글, 댓글 응답에 작성자 ID 추가 (#303)

* feat: PostResponse에 memberId(게시글 작성자 ID) 추가

* feat: CommentResponse에 writerId(댓글 작성자 ID) 추가

* refactor: 댓글 응답과 통일하기 위해 필드명 변경

* 비회원 상태에서 프로필 조회 시 401에러 (#307)

* docs: 회원 프로필 조회 API swagger에 추가

* fix: 회원 프로필이 없는 경우에 예외 처리 추가

* fix: Post 데드라인에서 @Future 어노테이션 제거 (#311)

* 본인 게시글, 댓글을 신고할 때 에러 메세지 수정 및 데드라인 지난 게시글 조회 시 에러 (#308)

* fix: 본인 게시글, 댓글을 신고할 때 에러가 정상적으로 반환되도록 수정

* fix: Post 데드라인에서 @Future 어노테이션 제거

* fix: 다른 브랜치에 커밋

* 에러 테스트

* fix: 깃허브 ci/cd 토큰 만료 이슈 해결

* feat: ReplyResponse에 답글 작성자 ID 추가 (#312)

---------

Co-authored-by: Hanjaemo <[email protected]>
Co-authored-by: gywns0417 <[email protected]>
Co-authored-by: king_0417 <[email protected]>
Hanjaemo added a commit that referenced this pull request Apr 27, 2024
* 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 에서 답글 수 반환하도록 구현

* 토큰 재발급 시 memberId가 토큰에 포함되지 않던 오류 수정 (#301)

* fix: 사용하지 않는 tokenDto 클래스 삭제

* refactor: 사용자 로그인 상태에서 memberId를 추출할 수 있도록 Spring Security 설정 정보 수정

* refactor: memberId를 전달해줘서 토큰을 재발급 받을 수 있도록 리팩토링

* refactor: 불필요한 코드 삭제 및 로그아웃 상태에서 토큰 재발급 시도 할 때 에러 문구 추가

* 게시글, 댓글 신고 예외 처리 추가 (#299)

* feat: 본인 게시글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* feat: 본인 댓글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* 회원 프로필 조회 기능 구현 (#294)

* feat: 회원 프로필 정보를 보여주는 dto 생성

* feat: 회원 프로필 정보 조회 기능 구현

* feat: 회원 프로필 정보 조회 API 시큐리티 URL 허용

* refactor: 회원 프로필 조회 URL 수정 및 시큐리티 허용

* refactor: 회원 프로필 사진 정보를 가져올 때 사진도 같이 가져오도록 구현

* refactor: 회원 프로필을 가져올 때 storedName에서 getURL로 변경

* 게시글, 댓글 응답에 작성자 ID 추가 (#303)

* feat: PostResponse에 memberId(게시글 작성자 ID) 추가

* feat: CommentResponse에 writerId(댓글 작성자 ID) 추가

* refactor: 댓글 응답과 통일하기 위해 필드명 변경

* 비회원 상태에서 프로필 조회 시 401에러 (#307)

* docs: 회원 프로필 조회 API swagger에 추가

* fix: 회원 프로필이 없는 경우에 예외 처리 추가

* fix: Post 데드라인에서 @Future 어노테이션 제거 (#311)

* 본인 게시글, 댓글을 신고할 때 에러 메세지 수정 및 데드라인 지난 게시글 조회 시 에러 (#308)

* fix: 본인 게시글, 댓글을 신고할 때 에러가 정상적으로 반환되도록 수정

* fix: Post 데드라인에서 @Future 어노테이션 제거

* fix: 다른 브랜치에 커밋

* 에러 테스트

* fix: 깃허브 ci/cd 토큰 만료 이슈 해결

* feat: ReplyResponse에 답글 작성자 ID 추가 (#312)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가 (#315)

---------

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]>
Hanjaemo added a commit that referenced this pull request Apr 27, 2024
* 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 에서 답글 수 반환하도록 구현

* 토큰 재발급 시 memberId가 토큰에 포함되지 않던 오류 수정 (#301)

* fix: 사용하지 않는 tokenDto 클래스 삭제

* refactor: 사용자 로그인 상태에서 memberId를 추출할 수 있도록 Spring Security 설정 정보 수정

* refactor: memberId를 전달해줘서 토큰을 재발급 받을 수 있도록 리팩토링

* refactor: 불필요한 코드 삭제 및 로그아웃 상태에서 토큰 재발급 시도 할 때 에러 문구 추가

* 게시글, 댓글 신고 예외 처리 추가 (#299)

* feat: 본인 게시글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* feat: 본인 댓글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* 회원 프로필 조회 기능 구현 (#294)

* feat: 회원 프로필 정보를 보여주는 dto 생성

* feat: 회원 프로필 정보 조회 기능 구현

* feat: 회원 프로필 정보 조회 API 시큐리티 URL 허용

* refactor: 회원 프로필 조회 URL 수정 및 시큐리티 허용

* refactor: 회원 프로필 사진 정보를 가져올 때 사진도 같이 가져오도록 구현

* refactor: 회원 프로필을 가져올 때 storedName에서 getURL로 변경

* 게시글, 댓글 응답에 작성자 ID 추가 (#303)

* feat: PostResponse에 memberId(게시글 작성자 ID) 추가

* feat: CommentResponse에 writerId(댓글 작성자 ID) 추가

* refactor: 댓글 응답과 통일하기 위해 필드명 변경

* 비회원 상태에서 프로필 조회 시 401에러 (#307)

* docs: 회원 프로필 조회 API swagger에 추가

* fix: 회원 프로필이 없는 경우에 예외 처리 추가

* fix: Post 데드라인에서 @Future 어노테이션 제거 (#311)

* 본인 게시글, 댓글을 신고할 때 에러 메세지 수정 및 데드라인 지난 게시글 조회 시 에러 (#308)

* fix: 본인 게시글, 댓글을 신고할 때 에러가 정상적으로 반환되도록 수정

* fix: Post 데드라인에서 @Future 어노테이션 제거

* fix: 다른 브랜치에 커밋

* 에러 테스트

* fix: 깃허브 ci/cd 토큰 만료 이슈 해결

* feat: ReplyResponse에 답글 작성자 ID 추가 (#312)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가 (#315)

* 게시글 관련 테스트 코드 수정 (#317)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가

* test: 마감 여부 필드 추가에 따른 테스트 코드 수정

---------

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]>
Hanjaemo added a commit that referenced this pull request Apr 28, 2024
* 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 에서 답글 수 반환하도록 구현

* 토큰 재발급 시 memberId가 토큰에 포함되지 않던 오류 수정 (#301)

* fix: 사용하지 않는 tokenDto 클래스 삭제

* refactor: 사용자 로그인 상태에서 memberId를 추출할 수 있도록 Spring Security 설정 정보 수정

* refactor: memberId를 전달해줘서 토큰을 재발급 받을 수 있도록 리팩토링

* refactor: 불필요한 코드 삭제 및 로그아웃 상태에서 토큰 재발급 시도 할 때 에러 문구 추가

* 게시글, 댓글 신고 예외 처리 추가 (#299)

* feat: 본인 게시글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* feat: 본인 댓글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* 회원 프로필 조회 기능 구현 (#294)

* feat: 회원 프로필 정보를 보여주는 dto 생성

* feat: 회원 프로필 정보 조회 기능 구현

* feat: 회원 프로필 정보 조회 API 시큐리티 URL 허용

* refactor: 회원 프로필 조회 URL 수정 및 시큐리티 허용

* refactor: 회원 프로필 사진 정보를 가져올 때 사진도 같이 가져오도록 구현

* refactor: 회원 프로필을 가져올 때 storedName에서 getURL로 변경

* 게시글, 댓글 응답에 작성자 ID 추가 (#303)

* feat: PostResponse에 memberId(게시글 작성자 ID) 추가

* feat: CommentResponse에 writerId(댓글 작성자 ID) 추가

* refactor: 댓글 응답과 통일하기 위해 필드명 변경

* 비회원 상태에서 프로필 조회 시 401에러 (#307)

* docs: 회원 프로필 조회 API swagger에 추가

* fix: 회원 프로필이 없는 경우에 예외 처리 추가

* fix: Post 데드라인에서 @Future 어노테이션 제거 (#311)

* 본인 게시글, 댓글을 신고할 때 에러 메세지 수정 및 데드라인 지난 게시글 조회 시 에러 (#308)

* fix: 본인 게시글, 댓글을 신고할 때 에러가 정상적으로 반환되도록 수정

* fix: Post 데드라인에서 @Future 어노테이션 제거

* fix: 다른 브랜치에 커밋

* 에러 테스트

* fix: 깃허브 ci/cd 토큰 만료 이슈 해결

* feat: ReplyResponse에 답글 작성자 ID 추가 (#312)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가 (#315)

* 게시글 관련 테스트 코드 수정 (#317)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가

* test: 마감 여부 필드 추가에 따른 테스트 코드 수정

* 게시글 조회 시 마감 여부 필터링 로직 추가 (#320)

* feat: 게시글 조회 시 마감 여부 필터링 로직 추가

* refactor: 불필요한 필드 및 메서드 제거

---------

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]>
Hanjaemo added a commit that referenced this pull request Apr 28, 2024
* 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 에서 답글 수 반환하도록 구현

* 토큰 재발급 시 memberId가 토큰에 포함되지 않던 오류 수정 (#301)

* fix: 사용하지 않는 tokenDto 클래스 삭제

* refactor: 사용자 로그인 상태에서 memberId를 추출할 수 있도록 Spring Security 설정 정보 수정

* refactor: memberId를 전달해줘서 토큰을 재발급 받을 수 있도록 리팩토링

* refactor: 불필요한 코드 삭제 및 로그아웃 상태에서 토큰 재발급 시도 할 때 에러 문구 추가

* 게시글, 댓글 신고 예외 처리 추가 (#299)

* feat: 본인 게시글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* feat: 본인 댓글 신고 불가, 중복해서 신고가 불가능하도록 에러 처리

* 회원 프로필 조회 기능 구현 (#294)

* feat: 회원 프로필 정보를 보여주는 dto 생성

* feat: 회원 프로필 정보 조회 기능 구현

* feat: 회원 프로필 정보 조회 API 시큐리티 URL 허용

* refactor: 회원 프로필 조회 URL 수정 및 시큐리티 허용

* refactor: 회원 프로필 사진 정보를 가져올 때 사진도 같이 가져오도록 구현

* refactor: 회원 프로필을 가져올 때 storedName에서 getURL로 변경

* 게시글, 댓글 응답에 작성자 ID 추가 (#303)

* feat: PostResponse에 memberId(게시글 작성자 ID) 추가

* feat: CommentResponse에 writerId(댓글 작성자 ID) 추가

* refactor: 댓글 응답과 통일하기 위해 필드명 변경

* 비회원 상태에서 프로필 조회 시 401에러 (#307)

* docs: 회원 프로필 조회 API swagger에 추가

* fix: 회원 프로필이 없는 경우에 예외 처리 추가

* fix: Post 데드라인에서 @Future 어노테이션 제거 (#311)

* 본인 게시글, 댓글을 신고할 때 에러 메세지 수정 및 데드라인 지난 게시글 조회 시 에러 (#308)

* fix: 본인 게시글, 댓글을 신고할 때 에러가 정상적으로 반환되도록 수정

* fix: Post 데드라인에서 @Future 어노테이션 제거

* fix: 다른 브랜치에 커밋

* 에러 테스트

* fix: 깃허브 ci/cd 토큰 만료 이슈 해결

* feat: ReplyResponse에 답글 작성자 ID 추가 (#312)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가 (#315)

* 게시글 관련 테스트 코드 수정 (#317)

* feat: 게시글 조회 응답 DTO에 마감 여부 필드 추가

* test: 마감 여부 필드 추가에 따른 테스트 코드 수정

* 게시글 조회 시 마감 여부 필터링 로직 추가 (#320)

* feat: 게시글 조회 시 마감 여부 필터링 로직 추가

* refactor: 불필요한 필드 및 메서드 제거

* chore: 요청 파라미터에 대해 swagger 설정 (#323)

---------

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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🛠️ fix 오류 수정 ✔︎ pull requests pull requests 코드 체크 요청
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants