Skip to content

Commit

Permalink
Main push (#232)
Browse files Browse the repository at this point in the history
* Test(#44): urrentUserEmailArgumentResolver 테스트코드 작성

* Feat(#11): Block 논리 삭제 기능 구현, Block 상태별 전체조회 Query 수정

* Test(#18): Block 논리 삭제 테스트 코드 구현

* Test(#18): Block 논리 삭제 Restdocs 수정

* Test(#18): Block 테스트 코드 구현

* Test(#18): Repository 테스트를 위한 h2 의존성 추가

* Test(#18): BlockRepository 테스트 코드 구현

* Refactor: 중복 클레스 제거

* Test: TokenProvider 목킹 의존성 주입 추가

* Feat(#48): 프로필 정보 조회 기능 구현

* Refactor(#48): MemberController 위치 변경

* Refactor(#48): mypage 반환 값 변경

* Feat(#48): 프로필 정보 수정 구현

* Feat(#52): 프로필 정보 조회 테스트

* Feat(#52): 프로필 정보 변경 테스트

* Refactor(#52): 프로필 조회 관련 url 수정

* Feat(#50): Validation 의존성 추가

* Refactor: RestTemplate 의존성 주입으로 수정

* Feat(#50): Challenge 구현

* Feat(#50): Cycle 구현

* Feat(#50): CycleDetail 구현

* Feat(#48): 회원가입시 랜덤 닉네임 부여

* Refactor(#50): 생성자에 status 추가

* Feat(#50): ChallengeSaveReqDto 구현

* Feat(#50): ChallengeInfoResDto 구현

* Feat(#50):CycleList를 json 배열로 저장하기 위한 CycleDetailsConverter 구현

* Feat(#50): ChallengeRepository 구현

* Feat(#50): customException 구현

* Feat(#50): customException 구현

* Feat(#50): ChallengeService 구현

* Feat(#50): ChallengeController 구현

* Test(#50): ChallengeTest 작성

* Test(#50): CycleDetailsConverterTest 작성

* Test(#50): ChallengeServiceTest 작성

* Refactor(#48): 닉네임 관련 객체들 빈으로 등록

* Refactor(#48): 닉네임 중복 확인 로직 데이터베이스 접근 방법으로 수정

* Refactor(#48): 닉네임 중복 확인 로직 로직 추가

* Refactor(#48): 닉네임 부여 방식 수정

* Refactor(#50): 날짜 타입을 String에서 LocalDate타입으로 변경

* Refactor(#50):생성 요청 dto 날짜 타입을 String에서 LocalDate타입으로 변경

* Feat(#50): ChallengeController.class 추가

* Refactor(#48): 닉네임 타임아웃 예외처리 수정

* Refacor(): Staus 필드 명 변경

* Refactor():챌린지 생성 메서드 명 변경

* Refactor():챌린지 생성 메서드 명 변경

* Feat(): MemberNotFoundException 추가

* Refactor(#50): Status.ACTIVE로 변경

* Refactor(#50): Status.ACTIVE로 변경

* Feat(#50): challengeService 추가

* Feat(#50): DELETED로 변경

* Refactor(#48): 회원가입시 닉네임 이름 동일화 코드 수정

* Refactor: status 수정

* Refactor: status 수정

* Refactor: MockBean 수정

* Refactor(#48): 닉네임 중복 가능하게 로직 수정

* Refactor(#11): RequestParam에 name 속성 추가

* Refactor: 닉네임 반환 테스트코드 수정

* Refactor: 쓰지 않는 timeout 예외처리 삭제

* Refactor: 쓰지 않는 timeout 예외처리 삭제

* Refactor(#48): 닉네임 중복 가능명사, 형용사 주입 오류 수정

* Refactor(#52): 닉네임 생성 테스트코드

* Update README.md

* Feat(#48): 회원가입시 랜덤 태그 부여

* Feat(#48): 랜덤 태그 중복 처리

* Feat(#48): 랜덤 태그 중복 처리

* Refactor(#48): return 개행 수정

* Refactor(#52): tag 생성 테스트코드

* Refactor(#52): MemberController 테스트코드 작성

* Refactor(#52): 개행 수정

* Refactor(#11): Block 사용자 선언, dto 정적 팩토리 메소드 수정

* Refactor(#18): ControllerTest Header 추가, mockMvc 설정

* Refactor(#48): MemberCustomRepository 이름 수정

* Feat(#62): Dashboard 도메인 구현, Block에 dashboard 연관 관계 추가

* Feat(#62): PersonalDashboard 저장, 수정 기능 구현

* Test(#62): PersonalDashboardService 저장, 수정 테스트코드 구현

* Refactor(#62): PersonalDashboard 수정 요청값 추가

* Refactor(#62): 개인 대시보드 Save DTO에 Validation 예외 추가

* Refactor(#62): 블록 생성 수정(대시보드 요청 추가)

* Test(#62): 블록 생성 수정(대시보드 요청 추가)

* Test(#62): 개인 대시보드 생성, 수정 테스트 코드 구현, 블록 컨트롤러 어노테이션 수정, Dto 어노테이션 수정

* Refactor(#48): MemberCustomRepositoryImpl 이름 수정

* Feat(#62): 개인 대시보드 삭제 기능 구현

* Refactor(#48): config 위치 수정

* Test(#62): 개인 대시보드 삭제 테스트 코드 구현

* Refactor(#62): 블록 리스트 요청시 대시보드 아이디 추가 구현

* Test(#62): 블록 리스트 요청시 대시보드 아이디 추가 테스트 구현

* Feat(#62): 개인 대시보드 전체, 상세 조회 기능 구현

* Test(#62): 개인 대시보드 전체, 상세 조회 테스트 코드 구현

* Docs(#62): 개인 대시보드 Restdocs 정적 페이지 구현

* Feat(#62): 개인 대시보드 상세 보기에 블록 진행도 추가

* Test(#62): 개인 대시보드 상세 보기 테스트에 블록 진행도 추가

* Test(#62): 개인 대시보드 Entity, Repository 테스트 코드 구현

* Refactor(#62): 개인 대시보드 queryDSL 코드 수정

* Test(#62): 개인 대시보드 ControllerTest 반환 추가

* Docs(#52): 내 프로필 정보 조회 API 문서 작성

* Docs(#52): 로그인, 토큰 재발급 API 문서 작성

* Refactor(#11): 블록 삭제 기능 메시지 변경

* Refactor(#18): 블록 삭제 테스트 DisplayName 수정

* Refactor(#11): 블록 Type 추가

* Feat(#67 #62): 팀 대시보드 기능 구현, 테스트 코드 구현, 개인 대시보드 삭제 메시지, queryDSL 수정 (#68)

* Feat(#67): 팀 대시보드 도메인 구현

* Feat(#67): 팀 대시보드 저장 기능 구현

* Feat(#67): 팀 대시보드 수정 기능 구현

* Refactor(#62): 개인 대시보드 삭제 기능 메시지 변경

* Refactor(#62): 개인 대시보드 삭제 예외 처리 추가

* Refactor(#62): 개인 대시보드 queryDSL 수정

* Test(#62): 개인 대시보드 삭제 테스트 DisplayName 수정

* Feat(#67): 팀 대시보드 삭제 기능 구현

* Feat(#67): 팀 대시보드 전체, 상세 조회 기능 구현

* Refactor(#62): 개인 대시보드 정적 팩토리 메소드명 수정

* Feat(#67): 팀 대시보드 참여, 탈퇴 기능 구현

* Feat(#67): 팀 대시보드 초대 멤버 리스트 불러오는 기능 구현

* Test(#67): 팀 대시보드 컨트롤러 테스트 코드 구현

* Test(#67): 팀 대시보드 테스트 코드 구현

* Test(#67): 팀 대시보드 서비스 테스트 코드 구현

* Test(#67): 팀 대시보드 레포지토리 테스트 코드 구현

* Test(#62): 개인 대시보드 서비스 테스트 코드 수정

* Test(#67): 팀 대시보드 서비스 테스트 코드 수정

* Docs(#67): 팀 대시보드 Restdocs 정적 페이지 추가

* Refactor(#11 #18): 블록 반환 값 추가, 반환 값 추가로 인한 테스트 코드 수정 (#71)

* Refactor(#11): 블록 반환 값 추가

* Refactor(#18): 블록 반환 값 추가로 인한 테스트 코드 수정

* Feat(#50): 챌린지 전체 조회, 상세 조회, 삭제, 검색 기능 추가 (#64)

* Feat(#50): 수정 메서드, 상태 변경 메서드 추가

* Feat(#50): 멤버-챌린지 연관관계 설정

* Feat(#50): 챌린지 커스텀 레포지토리 인터페이스 추가

* Feat(#50): 챌린지 커스텀 레포지토리 구현체 추가

* Feat(#50): 챌린지 커스텀 레포지토리 상속받도록 추가

* Refactor(#50): dto단에서 예외처리하도록 변경

* Refactor(#50): 정적 팩토리 메서드 네이밍, 매개변수 변경

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 기능 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 api 추가

* Feat(#50): ChallengeAccessDeniedException 추가

* Feat(#50): ChallengeNotFoundException 추가

* Refactor(#50): 메서드  추가

* Refactor(#50): 메서드 추가

* Refactor(#50): 커스텀 예외에서 메시지 처리하도록 변경

* Test(#50): 수정, 상태 변경 로직 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 메서드 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 api 테스트 및 레스트독스 적용

* Docs(#50): challenge.adoc 추가

* Docs(#50): index.adoc 추가

* Test(#50): ControllerTest ChallengeController.class 추가

* Feat(#50): Valid 어노테이션 추가

* Style(#50): 코즈 포맷팅 수정

* Refactor(#50): startDate, endDate @NotNull 적용

* Style(#50): 경로변수 카멜케이스로 변경

* Style(#50): 메서드 명 변경

* Style(#50): 매개변수명 변경

* Refactor(#50): 상세조회에 readOnly옵션 설정

* Feat(#50): cycle 필드 저장하도록 변경

* Feat(#50): 블록 엔티티에 챌린지 매핑 및 상태 수정 메서드 추가

* Feat(#50): CycleDetail value 추가

* Feat(#50): status 계산을 위한 ChallengeBlockStatusUtil 추가

* Feat(#50): 매일 자정에 챌린지 블록 상태를 업데이트 하기 위한 스케줄러 설정

* Feat(#50): 챌린지 참여 메서드 추가

* Feat(#50): 챌린지 참여 메서드 추가

* Test(#50): ChallengeBlockStatusUtilTest 추가

* Test(#50): 챌린지 참여 메서드 테스트 추가

* Feat(#50): findByType 추가

* Docs(#50): 챌린지 참여 문서화

* Style(#50): 불필요한 공백 라인 제거

* Test(#50): 블록 도메인에 타입 필드 추가에 따른 챌린지 컨트롤러 테스트 코드 수정 (#72)

* Feat(#50): 수정 메서드, 상태 변경 메서드 추가

* Feat(#50): 멤버-챌린지 연관관계 설정

* Feat(#50): 챌린지 커스텀 레포지토리 인터페이스 추가

* Feat(#50): 챌린지 커스텀 레포지토리 구현체 추가

* Feat(#50): 챌린지 커스텀 레포지토리 상속받도록 추가

* Refactor(#50): dto단에서 예외처리하도록 변경

* Refactor(#50): 정적 팩토리 메서드 네이밍, 매개변수 변경

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 기능 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 api 추가

* Feat(#50): ChallengeAccessDeniedException 추가

* Feat(#50): ChallengeNotFoundException 추가

* Refactor(#50): 메서드  추가

* Refactor(#50): 메서드 추가

* Refactor(#50): 커스텀 예외에서 메시지 처리하도록 변경

* Test(#50): 수정, 상태 변경 로직 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 메서드 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 api 테스트 및 레스트독스 적용

* Docs(#50): challenge.adoc 추가

* Docs(#50): index.adoc 추가

* Test(#50): ControllerTest ChallengeController.class 추가

* Feat(#50): Valid 어노테이션 추가

* Style(#50): 코즈 포맷팅 수정

* Refactor(#50): startDate, endDate @NotNull 적용

* Style(#50): 경로변수 카멜케이스로 변경

* Style(#50): 메서드 명 변경

* Style(#50): 매개변수명 변경

* Refactor(#50): 상세조회에 readOnly옵션 설정

* Feat(#50): cycle 필드 저장하도록 변경

* Feat(#50): 블록 엔티티에 챌린지 매핑 및 상태 수정 메서드 추가

* Feat(#50): CycleDetail value 추가

* Feat(#50): status 계산을 위한 ChallengeBlockStatusUtil 추가

* Feat(#50): 매일 자정에 챌린지 블록 상태를 업데이트 하기 위한 스케줄러 설정

* Feat(#50): 챌린지 참여 메서드 추가

* Feat(#50): 챌린지 참여 메서드 추가

* Test(#50): ChallengeBlockStatusUtilTest 추가

* Test(#50): 챌린지 참여 메서드 테스트 추가

* Feat(#50): findByType 추가

* Docs(#50): 챌린지 참여 문서화

* Style(#50): 불필요한 공백 라인 제거

* feat(#50): 블록 도메인에 타입 추가에 따른 테스트 코드 수정

* Refactor(#11 #18): 블록 시작 시간 속성 추가 (#75)

* Refactor(#11): 블록 반환 값 추가

* Refactor(#18): 블록 반환 값 추가로 인한 테스트 코드 수정

* Refactor(#11): 블록 시작 시간 속성 추가

* Test(#18): 블록 시작 시간 속성이 추가됨으로써 테스트 코드 수정

* Feat(#67 #62): 팀 대시보드 기능 구현, 테스트 코드 구현, 개인 대시보드 삭제 메시지, queryDSL 수정 (#68)

* Feat(#67): 팀 대시보드 도메인 구현

* Feat(#67): 팀 대시보드 저장 기능 구현

* Feat(#67): 팀 대시보드 수정 기능 구현

* Refactor(#62): 개인 대시보드 삭제 기능 메시지 변경

* Refactor(#62): 개인 대시보드 삭제 예외 처리 추가

* Refactor(#62): 개인 대시보드 queryDSL 수정

* Test(#62): 개인 대시보드 삭제 테스트 DisplayName 수정

* Feat(#67): 팀 대시보드 삭제 기능 구현

* Feat(#67): 팀 대시보드 전체, 상세 조회 기능 구현

* Refactor(#62): 개인 대시보드 정적 팩토리 메소드명 수정

* Feat(#67): 팀 대시보드 참여, 탈퇴 기능 구현

* Feat(#67): 팀 대시보드 초대 멤버 리스트 불러오는 기능 구현

* Test(#67): 팀 대시보드 컨트롤러 테스트 코드 구현

* Test(#67): 팀 대시보드 테스트 코드 구현

* Test(#67): 팀 대시보드 서비스 테스트 코드 구현

* Test(#67): 팀 대시보드 레포지토리 테스트 코드 구현

* Test(#62): 개인 대시보드 서비스 테스트 코드 수정

* Test(#67): 팀 대시보드 서비스 테스트 코드 수정

* Docs(#67): 팀 대시보드 Restdocs 정적 페이지 추가

* Refactor(#11 #18): 블록 반환 값 추가, 반환 값 추가로 인한 테스트 코드 수정 (#71)

* Refactor(#11): 블록 반환 값 추가

* Refactor(#18): 블록 반환 값 추가로 인한 테스트 코드 수정

* Feat(#50): 챌린지 전체 조회, 상세 조회, 삭제, 검색 기능 추가 (#64)

* Feat(#50): 수정 메서드, 상태 변경 메서드 추가

* Feat(#50): 멤버-챌린지 연관관계 설정

* Feat(#50): 챌린지 커스텀 레포지토리 인터페이스 추가

* Feat(#50): 챌린지 커스텀 레포지토리 구현체 추가

* Feat(#50): 챌린지 커스텀 레포지토리 상속받도록 추가

* Refactor(#50): dto단에서 예외처리하도록 변경

* Refactor(#50): 정적 팩토리 메서드 네이밍, 매개변수 변경

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 기능 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 api 추가

* Feat(#50): ChallengeAccessDeniedException 추가

* Feat(#50): ChallengeNotFoundException 추가

* Refactor(#50): 메서드  추가

* Refactor(#50): 메서드 추가

* Refactor(#50): 커스텀 예외에서 메시지 처리하도록 변경

* Test(#50): 수정, 상태 변경 로직 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 메서드 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 api 테스트 및 레스트독스 적용

* Docs(#50): challenge.adoc 추가

* Docs(#50): index.adoc 추가

* Test(#50): ControllerTest ChallengeController.class 추가

* Feat(#50): Valid 어노테이션 추가

* Style(#50): 코즈 포맷팅 수정

* Refactor(#50): startDate, endDate @NotNull 적용

* Style(#50): 경로변수 카멜케이스로 변경

* Style(#50): 메서드 명 변경

* Style(#50): 매개변수명 변경

* Refactor(#50): 상세조회에 readOnly옵션 설정

* Feat(#50): cycle 필드 저장하도록 변경

* Feat(#50): 블록 엔티티에 챌린지 매핑 및 상태 수정 메서드 추가

* Feat(#50): CycleDetail value 추가

* Feat(#50): status 계산을 위한 ChallengeBlockStatusUtil 추가

* Feat(#50): 매일 자정에 챌린지 블록 상태를 업데이트 하기 위한 스케줄러 설정

* Feat(#50): 챌린지 참여 메서드 추가

* Feat(#50): 챌린지 참여 메서드 추가

* Test(#50): ChallengeBlockStatusUtilTest 추가

* Test(#50): 챌린지 참여 메서드 테스트 추가

* Feat(#50): findByType 추가

* Docs(#50): 챌린지 참여 문서화

* Style(#50): 불필요한 공백 라인 제거

* Test(#50): 블록 도메인에 타입 필드 추가에 따른 챌린지 컨트롤러 테스트 코드 수정 (#72)

* Feat(#50): 수정 메서드, 상태 변경 메서드 추가

* Feat(#50): 멤버-챌린지 연관관계 설정

* Feat(#50): 챌린지 커스텀 레포지토리 인터페이스 추가

* Feat(#50): 챌린지 커스텀 레포지토리 구현체 추가

* Feat(#50): 챌린지 커스텀 레포지토리 상속받도록 추가

* Refactor(#50): dto단에서 예외처리하도록 변경

* Refactor(#50): 정적 팩토리 메서드 네이밍, 매개변수 변경

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): ChallengeListResDto 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 기능 추가

* Feat(#50): 조회, 상세조회, 수정, 삭제, 검색 api 추가

* Feat(#50): ChallengeAccessDeniedException 추가

* Feat(#50): ChallengeNotFoundException 추가

* Refactor(#50): 메서드  추가

* Refactor(#50): 메서드 추가

* Refactor(#50): 커스텀 예외에서 메시지 처리하도록 변경

* Test(#50): 수정, 상태 변경 로직 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 메서드 테스트 추가

* Test(#50): ChallengeServiceTest 조회, 수정, 삭제, 검색 api 테스트 및 레스트독스 적용

* Docs(#50): challenge.adoc 추가

* Docs(#50): index.adoc 추가

* Test(#50): ControllerTest ChallengeController.class 추가

* Feat(#50): Valid 어노테이션 추가

* Style(#50): 코즈 포맷팅 수정

* Refactor(#50): startDate, endDate @NotNull 적용

* Style(#50): 경로변수 카멜케이스로 변경

* Style(#50): 메서드 명 변경

* Style(#50): 매개변수명 변경

* Refactor(#50): 상세조회에 readOnly옵션 설정

* Feat(#50): cycle 필드 저장하도록 변경

* Feat(#50): 블록 엔티티에 챌린지 매핑 및 상태 수정 메서드 추가

* Feat(#50): CycleDetail value 추가

* Feat(#50): status 계산을 위한 ChallengeBlockStatusUtil 추가

* Feat(#50): 매일 자정에 챌린지 블록 상태를 업데이트 하기 위한 스케줄러 설정

* Feat(#50): 챌린지 참여 메서드 추가

* Feat(#50): 챌린지 참여 메서드 추가

* Test(#50): ChallengeBlockStatusUtilTest 추가

* Test(#50): 챌린지 참여 메서드 테스트 추가

* Feat(#50): findByType 추가

* Docs(#50): 챌린지 참여 문서화

* Style(#50): 불필요한 공백 라인 제거

* feat(#50): 블록 도메인에 타입 추가에 따른 테스트 코드 수정

* Refactor(#11): 블록 시작 시간 속성 추가

* Fix: 컨플릭 수정

* Fix: 컨플릭 수정

---------

Co-authored-by: DongkyunKim <[email protected]>

* Test (#76)

* Feat(#67): 팀 대시보드 도메인 구현

* Feat(#67): 팀 대시보드 저장 기능 구현

* Feat(#67): 팀 대시보드 수정 기능 구현

* Refactor(#62): 개인 대시보드 삭제 기능 메시지 변경

* Refactor(#62): 개인 대시보드 삭제 예외 처리 추가

* Refactor(#62): 개인 대시보드 queryDSL 수정

* Test(#62): 개인 대시보드 삭제 테스트 DisplayName 수정

* Feat(#67): 팀 대시보드 삭제 기능 구현

* Feat(#67): 팀 대시보드 전체, 상세 조회 기능 구현

* Refactor(#62): 개인 대시보드 정적 팩토리 메소드명 수정

* Feat(#67): 팀 대시보드 참여, 탈퇴 기능 구현

* Feat(#67): 팀 대시보드 초대 멤버 리스트 불러오는 기능 구현

* Test(#67): 팀 대시보드 컨트롤러 테스트 코드 구현

* Test(#67): 팀 대시보드 테스트 코드 구현

* Test(#67): 팀 대시보드 서비스 테스트 코드 구현

* Test(#67): 팀 대시보드 레포지토리 테스트 코드 구현

* Test(#62): 개인 대시보드 서비스 테스트 코드 수정

* Test(#67): 팀 대시보드 서비스 테스트 코드 수정

* Docs(#67): 팀 대시보드 Restdocs 정적 페이지 추가

* Feat(#70): 팀 문서, 팀 파일 CRUD 구현 (#73)

* Feat(#70): 팀 문서, 팀 파일 CRUD 구현 초안

* Test(#70): 팀 파일 repositoryTest 구현

* Test(#70): 팀 파일 Controller, Service, domain 구현

* Test(#70): 레스트독스 적용

* Feat(#70): 팀 문서 CRUD 완성

* Test(#70): DocumentRepository Test 구현

* Test(#70): DocumentRepositoryTest 구현

* Refactor(#70): Document 주석 삭제

* Test(#70): DocumentTest 구현

* Test(#70): DocumentServiceTest 구현

* Test(#70): DocumentControllerTest 구현

* Refactor(#70): document update 전용 dto 생성

* Refactor(#70): 컨밴션 수정

* Refactor(#70): 띄어쓰기 컨밴션 수정

* Refactor(#70): 띄어쓰기 컨밴션 수정

* Feature(#74): 알림 기능 구현 (#77)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Feat(#81): 챌린지 카테고리 추가 (#83)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Refactor: 컨벤션에 맞게 수정 (#80)

* Feat(#70): 팀 문서, 팀 파일 CRUD 구현 초안

* Test(#70): 팀 파일 repositoryTest 구현

* Test(#70): 팀 파일 Controller, Service, domain 구현

* Test(#70): 레스트독스 적용

* Feat(#70): 팀 문서 CRUD 완성

* Test(#70): DocumentRepository Test 구현

* Test(#70): DocumentRepositoryTest 구현

* Refactor(#70): Document 주석 삭제

* Test(#70): DocumentTest 구현

* Test(#70): DocumentServiceTest 구현

* Test(#70): DocumentControllerTest 구현

* Refactor(#70): document update 전용 dto 생성

* Refactor(#70): 컨밴션 수정

* Refactor(#70): 띄어쓰기 컨밴션 수정

* Refactor(#70): 띄어쓰기 컨밴션 수정

* Refactor: 컨벤션에 맞게 수정

* Refactor: 컨벤션에 맞게 수정

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회 (#82)

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 어노테이션 순서 수정

* Feat(#48): 챌린지 이메일로 조회하는 로직 추가, 마이페이지에서 조회하기 로직 추가

* Refactor(#48): 줄바꿈 수정

* Test(#48): 마이페이지 팀 대시보드, 챌린지 조회 테스트코드, 문서 작업

* Feat(#62): 사용자의 개인 대시보드 카테고리 조회 기능 구현 (#84)

* Feat(#62): 사용자의 개인 대시보드 카테고리 조회 기능 구현

* Test(#62): 사용자의 개인 대시보드 카테고리 조회 테스트 코드 구현

* Feat(#86): 블록 순번 속성 추가, 순번 지정, 순번 변경 api 기능 구현, 테스트 코드 구현 (#87)

* Feat(#86): 블록 순번 속성 추가, 순번 지정, 순번 변경 api 기능 구현

* Test(#86): 블록 순번 속성 추가와 지정함으로써 테스트 코드 구현

* Docs(#86): restdocs 문서 추가

* Docs(#86): restdocs 문서 수정을 위한 테스트 코드 수정

* Refactor(#86): 블록의 대시보드 반환을 위한 dType 속성, 반환 값 추가

* Style: 끝 줄 추가

* Refactor(#88): 개인, 팀 대시보드 전체 조회 페이지네이션 제거 (#89)

* Feat(#62): 사용자의 개인 대시보드 카테고리 조회 기능 구현

* Test(#62): 사용자의 개인 대시보드 카테고리 조회 테스트 코드 구현

* Feature(#74): 알림 기능 구현 (#77)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Feat(#81): 챌린지 카테고리 추가 (#83)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Refactor: 컨벤션에 맞게 수정 (#80)

* Feat(#70): 팀 문서, 팀 파일 CRUD 구현 초안

* Test(#70): 팀 파일 repositoryTest 구현

* Test(#70): 팀 파일 Controller, Service, domain 구현

* Test(#70): 레스트독스 적용

* Feat(#70): 팀 문서 CRUD 완성

* Test(#70): DocumentRepository Test 구현

* Test(#70): DocumentRepositoryTest 구현

* Refactor(#70): Document 주석 삭제

* Test(#70): DocumentTest 구현

* Test(#70): DocumentServiceTest 구현

* Test(#70): DocumentControllerTest 구현

* Refactor(#70): document update 전용 dto 생성

* Refactor(#70): 컨밴션 수정

* Refactor(#70): 띄어쓰기 컨밴션 수정

* Refactor(#70): 띄어쓰기 컨밴션 수정

* Refactor: 컨벤션에 맞게 수정

* Refactor: 컨벤션에 맞게 수정

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회 (#82)

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 어노테이션 순서 수정

* Feat(#48): 챌린지 이메일로 조회하는 로직 추가, 마이페이지에서 조회하기 로직 추가

* Refactor(#48): 줄바꿈 수정

* Test(#48): 마이페이지 팀 대시보드, 챌린지 조회 테스트코드, 문서 작업

* Refactor(#88): 개인, 팀 대시보드 전체 조회 페이지네이션 제거

---------

Co-authored-by: DongkyunKim <[email protected]>
Co-authored-by: choi inho <[email protected]>

* Fix(#92): Build시에 Q클래스 생성되지 않는 버그 (#93)

* Revert "Refactor(#88): 개인, 팀 대시보드 전체 조회 페이지네이션 제거 (#89)" (#94)

This reverts commit dc3dd78f1e0b9ba8ef4c1efccb8417b2fe512cfc.

* Refactor(#88): 개인, 팀 대시보드 전체 조회 페이지네이션 제거 (#95)

* Revert "Refactor(#88): 개인, 팀 대시보드 전체 조회 페이지네이션 제거 (#89)"

This reverts commit dc3dd78f1e0b9ba8ef4c1efccb8417b2fe512cfc.

* Refactor(#88): 개인, 팀 대시보드 전체 조회 페이지네이션 제거

* �Docs(#90): api 명세서에 enum 항목 설명 추가 (#91)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#18): 테스트 코드 페이지, 사이즈 파라미터 추가 (#98)

* Refactor(#74): 팀 대시보드 초대 시 알림 발송 API 추가 (#99)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 및 수정 시 팀 초대 알림 가도록 변경 (#102)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Feat(#100): 삭제된 블록 조회, 영구 삭제 기능, 테스트 코드 구현 (#101)

* Refactor(#18): 테스트 코드 페이지, 사이즈 파라미터 추가

* Feat(#100): 삭제된 블록 조회, 영구 삭제 기능 구현

* Test(#100): 삭제된 블록 조회, 영구 삭제 테스트 코드 구현

* Test(#100): 영구 삭제 테스트 코드 수정

* Docs(#100): 삭제된 블록, 영구 삭제 문서화

* Refactor(#104): Response에 챌린지 id 추가 (#105)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor: authServiceFactory로 id토큰 반환하는 로직 수정, JsonNode 반환 방법 DTO 사용 (#103)

* Refactor: authServiceFactory로 id토큰 반환하는 로직 수정, JsonNode 반환 방법 DTO 사용 방법으로 변경

* Refactor: authServices로 매개변수 이름 수정

* Docs: 내 정보 수정 api 문서 작업 (#108)

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 어노테이션 순서 수정

* Feat(#48): 챌린지 이메일로 조회하는 로직 추가, 마이페이지에서 조회하기 로직 추가

* Refactor(#48): 줄바꿈 수정

* Test(#48): 마이페이지 팀 대시보드, 챌린지 조회 테스트코드, 문서 작업

* Test: mypage 수정 테스트 코드 작성(아직 미완성)

* Docs: 내 정보 수정 api 문서 작업

* Feat(#106): 팀 문서 전체적인 작업 (#107)

* Feat(#106): 팀 문서 전체적인 작업

* Feat(#106): 팀 문서 상세 조회 로직 구현

* Test(#106): 팀 문서 컨트롤러 작성

* Test(#106): 팀 문서 컨트롤러 수정 중..

* Refactor(#106): DTO 정적 팩토링 메서드 이름 변경

* Docs(#106): 팀 문서 관전 api docs 파일로 구현

* Refactor(#106): 카테고리 dto 풀어서 전달

* Refactor(#112): 사용자 사진 반환 값 추가 (#113)

* Refactor(#112): 사용자 사진 반환 값 추가

* Refactor(#112): 사용자 사진 반환 값 추가로 인한 테스트 코드 수정

* Refactor(#110): 대시보드 접근 권한 수정, 카테고리 중복 수정 (#111)

* Refactor(#110): 대시보드 접근 권한 수정, 카테고리 중복 수정

* Test(#110): 카테고리 중복 수정으로 인한 테스트 코드 수정

* Refactor(#106): 카테고리로 팀문서 조회하는 로직 수정 (#109)

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 어노테이션 순서 수정

* Feat(#48): 챌린지 이메일로 조회하는 로직 추가, 마이페이지에서 조회하기 로직 추가

* Refactor(#48): 줄바꿈 수정

* Test(#48): 마이페이지 팀 대시보드, 챌린지 조회 테스트코드, 문서 작업

* Test: mypage 수정 테스트 코드 작성(아직 미완성)

* Docs: 내 정보 수정 api 문서 작업

* Test(#106): 팀 문서 post 테스트코드 수정

* Refactor(#106): 카테고리로 팀문서 조회하는 로직 수정

* Docs: teamDocument api 문서 수정

* Test(#106): 팀 문서 post 테스트코드 수정 (#114)

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 어노테이션 순서 수정

* Feat(#48): 챌린지 이메일로 조회하는 로직 추가, 마이페이지에서 조회하기 로직 추가

* Refactor(#48): 줄바꿈 수정

* Test(#48): 마이페이지 팀 대시보드, 챌린지 조회 테스트코드, 문서 작업

* Test: mypage 수정 테스트 코드 작성(아직 미완성)

* Docs: 내 정보 수정 api 문서 작업

* Test(#106): 팀 문서 post 테스트코드 수정

* Refactor(#106): 카테고리로 팀문서 조회하는 로직 수정

* Docs: teamDocument api 문서 수정

* Test(#106): 팀 문서 post 테스트코드 수정

* Refactor: mypage 챌랜지, 팀 대시보드 조회 페이지네이션 수정 (#115)

* Feat(#48): 마이페이지 챌린지, 팀 대시보드 조회

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 컨벤션 리팩토링

* Refactor(#48): 어노테이션 순서 수정

* Feat(#48): 챌린지 이메일로 조회하는 로직 추가, 마이페이지에서 조회하기 로직 추가

* Refactor(#48): 줄바꿈 수정

* Test(#48): 마이페이지 팀 대시보드, 챌린지 조회 테스트코드, 문서 작업

* Test: mypage 수정 테스트 코드 작성(아직 미완성)

* Docs: 내 정보 수정 api 문서 작업

* Test(#106): 팀 문서 post 테스트코드 수정

* Refactor(#106): 카테고리로 팀문서 조회하는 로직 수정

* Docs: teamDocument api 문서 수정

* Test(#106): 팀 문서 post 테스트코드 수정

* Refactor: mypage 챌랜지, 팀 대시보드 조회 페이지네이션 수정

* Docs: 팀 대시보드와 챌린지 정보 조회 API 쿼리 정보 추가

* Fix(#110): 404에러 발생 수정 (#118)

* Refactor(#110): 대시보드 접근 권한 수정, 카테고리 중복 수정

* Test(#110): 카테고리 중복 수정으로 인한 테스트 코드 수정

* Fix(#110): 404에러 발생 수정

* Fix(#110): 404에러 발생 수정 (#119)

* Refactor(#110): 대시보드 접근 권한 수정, 카테고리 중복 수정

* Test(#110): 카테고리 중복 수정으로 인한 테스트 코드 수정

* Fix(#110): 404에러 발생 수정

* Fix(#110): 404에러 발생 수정

* Refactor: 문서 삭제

* Refactor(#10): 팀 대시보드 팀원에 대시보드 생성자 추가 (#125)

* Refactor(#110): 대시보드 접근 권한 수정, 카테고리 중복 수정

* Test(#110): 카테고리 중복 수정으로 인한 테스트 코드 수정

* Fix(#110): 404에러 발생 수정

* Fix(#110): 404에러 발생 수정

* Refactor(#10): 팀 대시보드 팀원에 대시보드 생성자 추가

* Test(#10): 팀 대시보드 팀원에 대시보드 생성자 추가로 인한 테스트 코드 수정 (#126)

* Refactor(#110): 대시보드 접근 권한 수정, 카테고리 중복 수정

* Test(#110): 카테고리 중복 수정으로 인한 테스트 코드 수정

* Fix(#110): 404에러 발생 수정

* Fix(#110): 404에러 발생 수정

* Refactor(#10): 팀 대시보드 팀원에 대시보드 생성자 추가

* Test(#10): 팀 대시보드 팀원에 대시보드 생성자 추가로 인한 테스트 코드 수정

* Refacotr(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정 (#128)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환 (#129)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refactor:  알림 이름 안보내도록 수정 (#130)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor(#131): 알림 전체 조회 시 읽은 여부 true로 변경 (#132)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor(#131): 알림 전체 조회 시 읽은 여부 true로 변경

* Test(#131): 알림 로직 변경에 따른 테스트 코드 수정 (#133)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor(#131): 알림 전체 조회 시 읽은 여부 true로 변경

* Test(#131): 로직 변경에 따른 테스트 코드 수정

* Refactor(#131): 코드 리펙토링

* Refactor(#97): 챌린지 코드 리펙토링 (#135)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Docs(#139): 카테고리 별 검색 문서에 추가 및 쿼리 파라미터 추가 (#140)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feature(#141): 이미지 업로드 기능 추가 (#142)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* �Refcator(#141): url 고유하도록 변경 (#143)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#144): 알림 전체조회 페이지네이션 삭제 (#145)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor(#131): 알림 전체 조회 시 읽은 여부 true로 변경

* Test(#131): 로직 변경에 따른 테스트 코드 수정

* Refactor(#131): 코드 리펙토링

* Refactor(#144): 알림 전체조회 페이지네이션 삭제

* Feat(#146): 모든 알림 읽음으로 표시하는 api 추가 (#147)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor(#131): 알림 전체 조회 시 읽은 여부 true로 변경

* Test(#131): 로직 변경에 따른 테스트 코드 수정

* Refactor(#131): 코드 리펙토링

* Refactor(#144): 알림 전체조회 페이지네이션 삭제

* Feat(#146): 모든 알림 읽음으로 표시하는 api 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합 (#149)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#150): 팀 초대 메시지에 대시보드 아이디 추가 (#151)

* Feat(#74): 알림 엔티티 구현

* Feat(#74): 알림 레포지토리 구현

* Feat(#74): NotificationInfoResDto 구현

* Feat(#74): NotificationListResDto 구현

* Feat(#74): NotificationNotFoundException  구현

* Feat(#74): service 로직 구현

* Feat(#74): controller 로직 구현

* Feat(#74): spring-boot-starter-web-services 의존성 추가

* Feat(#74): 알림-멤버 매핑

* Feat(#74): 챌린지 참여 할 때 알림가도록 추가

* Feat(#74): 챌린지 생성될때마다 알림가도록 변경

* Style(#74): RequiredArgsConstructor 어노테이션 사용하도록 변경

* Feat(#74):notificationService 추가

* Style(#74):notification 객체 생성 빌더 패턴 방식으로 변경

* Refactor(#74):  emitter를 SseEmitterManager 에서 관리하도록 변경

* Style(#74): 불필요한 공백 라인 제거

* Style(#74): 줄바꿈 추가

* Style(#74): 마지막 공백 라인 추가

* Style(#74): SseEmitterManager 추가

* Fix(#74): 챌린지를_개인_대시보드에_추가할_수_있다 테스트 안되는 오류 해결

* Test(#74): NotificationServiceTest 구현

* Feat(#74): 파라미터 name 설정

* Feat(#74): JsonIgnore 어노테이션 삽입

* Feat(#74): isRead 필드 업데이트 메서드 로직 수정

* Test(#74): NotificationController 추가

* Feat(#74): JsonIgnore 어노테이션 삭제

* Fix(#74): Member 필드 삭제

* Test(#74): NotificationController 테스트 구현

* Test(#74): 문서 생성 경로 변경

* Test(#74): 알림 조회 문서 헤더 필드 생성

* Docs(#74): 알림 문서화

* Refactor(#74): 어노테이션 변경

* Refactor(#74): 팀 대시보드 초대 시 알림 메시지 전송 구현

* Refactor(#74): 매직 넘버 상수화

* Test(#74): notificationService 필드 추가

* Feat(#74): 팀원 초대 api 추가

* Refactor(#74): 쿼리스트링으로 입력받도록 변경 및 예외처리 추가

* Test(#74): 팀원 초대 테스트

* Refactor(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Test(#74): 팀 대시보드 생성 시 초대 알림 가도록 변경

* Fix(#74): 충돌 수정

* Refactor(#74): 메서드 분리

* Feat(): 매직 넘버 상수화

* Refactor(#127): 팀원이 팀 초대 수락하면 팀장한테 알람가도록 구현 및 팀 초대 api 로직 수정

* Refacor: 알림 연결 성공시 더미데이터 반환

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor: 알림 이름 안보내도록 수정

* Refacor(#131): 알림 전체 조회 시 읽은 여부 true로 변경

* Test(#131): 로직 변경에 따른 테스트 코드 수정

* Refactor(#131): 코드 리펙토링

* Refactor(#144): 알림 전체조회 페이지네이션 삭제

* Feat(#146): 모든 알림 읽음으로 표시하는 api 추가

* Refactor(#150): 팀 초대 메시지에 대시보드 아이디 추가

* Refactor: 마이페이지 내에서 개인 대시보드 조회 기능 추가 & 상대방 프로필은 isPublic이 true인 것만 보이도록 수정 (#152)

* Refactor: 마이페이지 내에서 개인 대시보드 조회 기능 추가 & 상대방 프로필은 isPublic이 true인 것만 보이도록 수정

* Docs: mypage 대시보드 & 챌린지 목록 조회 문서 수정

* Test: mypage 개인 대시보드 확인 로직 추가 수정

* Refactor(#153): 챌린지 상세조회 반환값 수정 (#154)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#155): 팀 대시보드 중복 참여, 참여하지 않았지만 탈퇴하려는 사용자 예외 처리, 참가자 팀 대시보드 리스트 수정 (#156)

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정 (#157)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Fix(#158): 이전 팀 문서 삭제 (#159)

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경 (#160)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Fix(#161): 이미지 수정 시 null 반환하는 오류 해결 (#162)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 순서 수정 (#164)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가" (#166)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가

* Fix: 충돌 해결

* Fix: 충돌 해결

* Fix: 충돌 해결

* Fix: 충돌 해결

* Refactor(#168): 블록 디데이 시작날짜부터 계산, 삭제된 블록 진행도 불포함 (#169)

* Fix(#170): 챌린지 생성 안되는 오류 해결" (#171)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성안되는 오류 해결 (#172)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결 (#173)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결

* Refactor: 마이페이지에서 챌린지 조회할 때 참여한 챌린지들 보이도록 수정 (#174)

* Refactor: 마이페이지에서 챌린지 조회할 때 참여한 챌린지들 보이도록 수정

* Docs: 사용하지 않는 문서 삭제

* Refactor: 읽은 여부 false로 반환

* Refactor: 팀 대시보드 참여 사용자 아이디 반환 (#178)

* 챌린지 및 개인대시보드 삭제 시 연관 매핑 테이블도 제거 및 검색 시 역순 반환 (#179)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결

* Refactor: 역순으로 반환하도록 변경

* Refactor(#177): 개인 대시보드 삭제 시 챌린지 매핑 연관관계 제거

* Refactor(#177): 챌린지 삭제 시 챌린지 매핑 연관관계 제거

* Refactor(#177): 챌린지 삭제 시 챌린지 매핑 연관관계 제거

* Refactor(#177): 줄바꿈 수정

* Refactor(#177): 메시지 수정

* Refactor(#177): 개인 대시보드 삭제 시 챌린지 매핑 연관관계 제거

* Refactor: 알림 메시지 수정

* Refactor(#177): 챌린지 검색 및 전체 조회 시 역순으로 반환하도록 변경 (#180)

* Feat(#74): 카테고리 검색 메서드 추가

* Test(#81):

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 클래스 추가

* Feat(#81): 챌린지 엔티티에 카테고리 필드 추가

* Feat(#81): 카테고리 필드 추가

* Feat(#81): 카테고리 검색 메서드 추가

* Feat(#81): 카테고리 필드 추가

* Test(#81): 챌린지 카테고리 검색 테스트

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Fix(#81): 카테고리 타입 변경

* Docs(#90): enum 항목 설명 추가

* Refactor(#97): 매직 넘버 상수로 변환

* Refactor(#104): responseDto에 challengeId 추가

* Refactor(#97): 메서드 분리

* Refacor(#97): 싱글턴 패턴으로 변경

* Test(#97): 싱글턴 패턴으로 변경

* Refacor(#97): cycle 검증을 도메인 계층에서 하도록 변경

* Test(#97): 테스트 코드 오류 수정

* Refactor(#138): 챌린지 생성 시 생성 날짜 자동 주입 및 블록 이름 추가

* Test(#139): 쿼리 파라미터 추가

* Docs(#139): 쿼리 파라미터 추가 및 카테거리 검색 API 추가

* Feat(#141): 이미지 업로드 기능 추가

* Feat(#141): 의존성 추가

* Test(#141): 이미지 업로드 테스트

* Docs(#141): 문서 업데이트

* Test(#141): 이미지 업로드 테스트

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): url 고유하도록 변경

* Refactor(#141): 불필요한 주석 제거

* Feat: 카테고리와 키워드를 통해 챌린지 검색하는 기능 추가

* Refactor(#148): 챌린지 카테고리 및 키워드 검색 api 하나로 통합

* Refactor(#153): 챌린지 상세조회 반환값 수정

* Refactor(#153): 챌린지 실시간 완료자 반환하도록 수정

* Refactor(#153): 챌린지 주기마다 블록이 새로 생성되도록 변경

* Refactor(#153): 필요없는 주석 제거

* Refacotr(#161): 이미지 수정 시 null 반환하는 오류 해결

* Fix(#163): 매개변수 수정

* Feat(#165): 챌린지 탈퇴 api 추가

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결

* Fix(#170): 챌린지 추가 시 챌린지 블록 생성 안되는 오류 해결

* Refactor: 역순으로 반환하도록 변경

* Refactor(#177): 개인 대시보드 삭제 시 챌린지 매핑 연관관계 제거

* Refactor(#177): 챌린지 삭제 시 챌린지 매핑 연관관계 제거

* Refactor(#177): 챌린지 삭제 시 챌린지 매핑 연관관계 제거

* Refactor(#177): 줄바꿈 수정

* Refactor(#177): 메시지 수정

* Refactor(#177): 개인 대시보드 삭제 시 챌린지 매핑 연관관계 제거

* Refactor: 알림 메시지 수정

* R…
  • Loading branch information
4 people authored Nov 28, 2024
1 parent 3c09a8b commit 79c0892
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 251 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import static shop.kkeujeok.kkeujeokbackend.dashboard.team.domain.QTeamDashboardMemberMapping.teamDashboardMemberMapping;
import static shop.kkeujeok.kkeujeokbackend.member.domain.QMember.member;

import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.List;
import java.util.Set;
Expand Down Expand Up @@ -76,7 +77,16 @@ public Set<String> findCategoriesForDashboard(Member member) {
public Page<TeamDashboard> findForTeamDashboard(Member member, Pageable pageable) {
long total = queryFactory
.selectFrom(teamDashboard)
.where(teamDashboard._super.member.eq(member))
.where(
teamDashboard._super.member.eq(member)
.or(
teamDashboard.id.in(
JPAExpressions.select(teamDashboardMemberMapping.teamDashboard.id)
.from(teamDashboardMemberMapping)
.where(teamDashboardMemberMapping.member.id.eq(member.getId()))
)
)
)
.stream()
.count();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
import org.springframework.web.bind.annotation.RestController;
import shop.kkeujeok.kkeujeokbackend.global.annotation.CurrentUserEmail;
import shop.kkeujeok.kkeujeokbackend.global.template.RspTemplate;
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.request.FollowAcceptReqDto;
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.request.FollowReqDto;
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.response.FollowAcceptResDto;
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.response.FollowInfoListDto;
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.response.FollowResDto;
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.response.MemberInfoForFollowListDto;
Expand All @@ -39,8 +37,9 @@ public RspTemplate<FollowResDto> save(@CurrentUserEmail String email,
}

@PostMapping("/accept/{followId}")
public RspTemplate<Void> accept(@PathVariable Long followId) {
followService.accept(followId);
public RspTemplate<Void> accept(@CurrentUserEmail String email,
@PathVariable Long followId) {
followService.accept(email, followId);

return new RspTemplate<>(HttpStatus.OK,
"친구 추가 수락");
Expand Down Expand Up @@ -88,4 +87,4 @@ public RspTemplate<MyFollowsResDto> findMyFollowsCount(@CurrentUserEmail String
"내 팔로우 수 조회",
followService.findMyFollowsCount(email));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.Builder;
import shop.kkeujeok.kkeujeokbackend.member.domain.Member;
import shop.kkeujeok.kkeujeokbackend.member.follow.domain.Follow;
import shop.kkeujeok.kkeujeokbackend.member.follow.domain.FollowStatus;

@Builder
public record FollowInfoResDto(
Expand All @@ -16,13 +17,14 @@ public static FollowInfoResDto of(Follow follow, Long myMemberId) {
Member friend = follow.getToMember().getId().equals(myMemberId)
? follow.getFromMember()
: follow.getToMember();
boolean isFollow = follow.getFollowStatus().equals(FollowStatus.ACCEPT);

return FollowInfoResDto.builder()
.memberId(friend.getId())
.nickname(friend.getNickname())
.name(friend.getName())
.profileImage(friend.getPicture())
.isFollow(true)
.isFollow(isFollow)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import shop.kkeujeok.kkeujeokbackend.member.follow.api.dto.response.RecommendedFollowInfoResDto;
import shop.kkeujeok.kkeujeokbackend.member.follow.domain.Follow;
import shop.kkeujeok.kkeujeokbackend.member.follow.domain.repository.FollowRepository;
import shop.kkeujeok.kkeujeokbackend.member.follow.exception.AlreadyFriendsException;
import shop.kkeujeok.kkeujeokbackend.member.follow.exception.FollowAlreadyExistsException;
import shop.kkeujeok.kkeujeokbackend.member.follow.exception.FollowNotFoundException;
import shop.kkeujeok.kkeujeokbackend.notification.application.NotificationService;
Expand All @@ -28,6 +29,8 @@
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class FollowService {
private static final String FOLLOW_REQUEST_MESSAGE_TEMPLATE = "친구 추가 요청: %s님이 친구 추가 요청을 보냈습니다.followerId%d";
private static final String FOLLOW_ACCEPT_MESSAGE_TEMPLATE = "친구 추가 수락: %s님이 %s님의 친구 추가를 수락하였습니다.";

private final MemberRepository memberRepository;
private final FollowRepository followRepository;
Expand All @@ -43,8 +46,9 @@ public FollowResDto save(String email, FollowReqDto followReqDto) {
Follow follow = followReqDto.toEntity(fromMember, toMember);
followRepository.save(follow);

notificationService.sendNotification(toMember,
fromMember.getNickname() + "님이 친구 신청을 보냈습니다.followerId" + follow.getId());
String followRequestMessage = String.format(FOLLOW_REQUEST_MESSAGE_TEMPLATE, fromMember.getNickname(),
follow.getId());
notificationService.sendNotification(toMember, followRequestMessage);

return FollowResDto.from(toMember);
}
Expand All @@ -56,11 +60,24 @@ private void validateFollowDoesNotExist(Member fromMember, Member toMember) {
}

@Transactional
public void accept(Long followId) {
public void accept(String email, Long followId) {
validateFollowStatusIsAccept(followId);

followRepository.acceptFollowingRequest(followId);
Member fromMember = followRepository.findById(followId).orElseThrow(FollowNotFoundException::new)

Member toMember = memberRepository.findByEmail(email).orElseThrow(MemberNotFoundException::new);
Member fromMember = followRepository.findById(followId).orElseThrow(AlreadyFriendsException::new)
.getFromMember();
notificationService.sendNotification(fromMember, "followId" + followId);

String followAcceptMessage = String.format(FOLLOW_ACCEPT_MESSAGE_TEMPLATE, fromMember.getNickname(),
toMember.getNickname());
notificationService.sendNotification(fromMember, followAcceptMessage);
}

private void validateFollowStatusIsAccept(Long followId) {
if (followRepository.existsAlreadyFollow(followId)) {
throw new AlreadyFriendsException();
}
}

public FollowInfoListDto findFollowList(String email, Pageable pageable) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ public interface FollowCustomRepository {
Page<MemberInfoForFollowResDto> searchFollowListUsingKeywords(Long memberId, String keyword, Pageable pageable);

MyFollowsResDto findMyFollowsCount(Long memberId);

boolean existsAlreadyFollow(Long followId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -134,11 +134,9 @@ public Page<RecommendedFollowInfoResDto> findRecommendedFollowList(Long memberId

potentialFriends = potentialFriends.stream().distinct().collect(Collectors.toList());

// 친구 관계 여부 확인을 위한 로직 추가
List<RecommendedFollowInfoResDto> recommendedFollows = potentialFriends.stream()
.filter(teamMember -> !teamMember.getId().equals(memberId)) // 본인 제외
.map(teamMember -> {
// 현재 추천 대상 사용자가 팔로우 관계인지 확인
.filter(teamMember -> {
boolean isFollow = queryFactory
.selectOne()
.from(follow)
Expand All @@ -148,9 +146,9 @@ public Page<RecommendedFollowInfoResDto> findRecommendedFollowList(Long memberId
.and(follow.toMember.id.eq(memberId)))
)
.fetchFirst() != null;

return RecommendedFollowInfoResDto.from(teamMember, isFollow);
return !isFollow;
})
.map(teamMember -> RecommendedFollowInfoResDto.from(teamMember, false))
.collect(Collectors.toList());

int start = (int) pageable.getOffset();
Expand Down Expand Up @@ -184,7 +182,7 @@ public Page<MemberInfoForFollowResDto> searchFollowListUsingKeywords(Long member
member.nickname,
member.name,
member.picture,
follow.id.isNotNull()
follow.followStatus.eq(FollowStatus.ACCEPT)
))
.from(member)
.leftJoin(follow)
Expand Down Expand Up @@ -233,4 +231,14 @@ public MyFollowsResDto findMyFollowsCount(Long memberId) {

return MyFollowsResDto.from(followCount);
}

@Override
public boolean existsAlreadyFollow(Long followId) {
return queryFactory
.selectOne()
.from(follow)
.where(follow.id.eq(followId)
.and(follow.followStatus.eq(FollowStatus.ACCEPT)))
.fetchFirst() != null;
}
}
Loading

0 comments on commit 79c0892

Please sign in to comment.