-
Notifications
You must be signed in to change notification settings - Fork 9
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
[BE] 로그 기능 추가 #155
Merged
Merged
[BE] 로그 기능 추가 #155
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 불필요한 로그라고 판단하여 삭제하였음
- 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정
Closed
2 tasks
* chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤
Seongwon97
requested changes
Aug 1, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AOP를 처음 사용하였어도 잘 사용하신 것 같아요!
피드백 몇개를 남겨봤는데 확인 부탁드려요!
backend/src/main/java/com/woowacourse/momo/MomoApplication.java
Outdated
Show resolved
Hide resolved
backend/src/main/java/com/woowacourse/momo/logging/Logging.java
Outdated
Show resolved
Hide resolved
nbalance97
approved these changes
Aug 1, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
문제점이 있어보이지는 않네요! 고생하셨습니다ㅎㅎ
- 불필요한 로그라고 판단하여 삭제하였음
- 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정
…course-teams#116 # Conflicts: # backend/src/main/resources/application.yml # backend/src/test/java/com/woowacourse/momo/fixture/MemberFixture.java
sinb57
added a commit
that referenced
this pull request
Aug 5, 2022
* chore: 스프링 프로젝트 초기 환경구축 * [BE] 모임 도메인 설계 (#16) * feat: 모임 도메인 구조 설계 * feat: 모임 도메인의 기간 정보 원시값 포장 * chore: JPA 의존성 추가 및 환경 설정 * feat: 모임 도메인 JPA 적용 * refactor: 모임 도메인 패키지 분리 * feat: 모임 도메인 Repository 기능 구현 * feat: 누락된 nullable 제약조건 추가 * refactor: Schedules 일급 컬렉션 생성에 따른 로직 변경 * fix: 모임 도메인 누락된 필드 추가 (#21) * [BE] 모임 API 기능 구현 (#25) * feat: 카테고리 Service 목록 조회 기능 구현 * chore: RestAssured 의존성 추가 * feat: 카테고리 목록 조회 API 구현 * test: Category 인수테스트 리팩토링 * feat: 모임 생성 및 단일 조회 API 구현 * feat: 모임 목록 조회 API 구현 * feat: 모임 변경 API 구현 * feat: 모임 삭제 API 구현 * [BE] 코드 컨벤션 작성 및 imports문 정렬 (#30) * chore: 코드 컨벤션 파일 작성 * style: Optimize imports * [BE] 모임 API 기능 - 일부 인수테스트가 통과하지 않는 이슈 (#32) * chore: 불필요한 설정 제거 * chore: init.sql 파일의 DB 초기화 방식 변경 * [BE] 모임 API 기능 및 테스트 리팩터링 (#33) * refactor: Member와 Group 패키지 분리 * feat: Day에서 발생할 수 있는 예외 처리 로직 작성 * test: 누락된 Day 테스트 추가 * refactor: Category의 상속 클래스 변경 - JpaRepository -> Repository * refactor: Duration에서 발생할 수 있는 예외 처리 로직 작성 * feat: Schedule 레포지토리 생성 * test: 모임 관련 CRUD 테스트 수정 * refactor: TimeRequest 정보를 ScheduleRequest에서 갖도록 수정 * feat: 존재하지 않는 카테고리로 모임 생성시 발생하는 예외 처리 추가 * feat: 모임 조회시 발생할 수 있는 예외 처리 추가 * test: 모임 조회 테스트 추가 * test: 모임 삭제 테스트 코드 추가 - Repository의 deleteById를 통해 schedule도 삭제가 되는지 확인 - Service의 delete 로직 테스트 추가 * refactor: Schedule 내부 값을 요일에서 일자로 변경 * test: API 스펙 변경에 따른 테스트 초기 데이터 수정 * refactor: Group의 regular필드 제거 * refactor: 불필요한 예외 클래스 제거 * test: LocalDate 생성 방식 수정 as-is: LocalDate.parse(start, DateTimeFormatter.ISO_LOCAL_DATE); to-be: LocalDate.of(2020, 5, 8); * style: 코드 컨벤션에 맞게 재정렬 * refactor: 패키지 구조 변경 (#36) * chore: 스프링부트 버전 다운그레이드 및 DB설정 * [BE] 회원 기능 구현 (#42) * feat: 멤버 도메인 필드 추가 * chore: validation 의존성 추가 * feat: 회원가입 서비스 로직 구현 * feat: 회원가입 API 구현 * feat: JWT 의존성 추가 및 유틸 클래스 추가 * feat: 로그인 기능 구현 * feat: 로그인 API 구현 * refactor: 로그인 메서드명 수정 - signIn -> login * feat: 회원 정보 조회 기능 구현 * feat: 인증 기능 및 정보조회 API 구현 - 인터셉터와 리졸버 구현 * test: 회원 관련 Controller test 추가 * test: 테스트 격리 * feat: 패스워드 암호화 기능 구현 * feat: 회원 탈퇴 API 구현 * style: 코드 컨벤션 통일 - 불필요한 import 제거 * feat: 패스워드 패턴 검사 추가 * refactor: 잘못된 예외 클래스 변경 * refactor: 로그인 API 반환값 수정 - Location 값 반환 삭제 * test: 회원 삭제 repository 테스트 추가 * refactor: JwtTokenProvider 중복 로직 제거 * refactor: login 메서드명 통일 * style: 불필요한 개행 제거 * test: 비밀번호 암호화 테스트 코드 추가 * refactor: 회원가입 API 명세 변경에 따른 수정 - 회원가입 기능을 auth 패키지로 이동 * test: displayName 형식 통일화 * test: 로그인 성공 테스트 수정 * refactor: sha256encoder messagedigest 상수화 * refactor: 비밀번호 패턴 에러 메시지 수정 * [BE] 회원 정보 수정 기능 구현 (#46) Co-authored-by: Seongwon97 <[email protected]> * [BE] 모임 API 기능 및 테스트 리팩터링 (#41) * test: 통과하지 않는 인수테스트 해결 * refactor: Category Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Request Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Member Response Assembler 를 통한 DTO 매핑 로직 분리 * chore: data.sql 생성을 통한 카테고리 초기값 저장 * refactor: Schedules 제거 * refactor: Group Builder 패턴 적용 * refactor: 카테고리 "전체" 항목 제거 * refactor: Duration 정적 팩토리 메서드 생성 * refactor: Schedule 정적 팩토리 메서드 생성 * refactor: Category enum 으로 대체 및 테스트 리팩토링 * refactor: ScheduleRepository 제거 * refactor: Group 과 Schedule 의 양방향 연관관계를 단방향으로 수정 * style: Cleanup Code * test: Group Repository 테스트 코드 수정 * test: Category Service 테스트 코드 수정 * feat: Duration 도메인 날짜 형식 검증 추가 * feat: Schedule 도메인 날짜 및 시간 형식 검증 추가 * test: 테스트 독립성 보장 - Group 인수테스트에서 저장된 데이터가 DB에 남아있어, 다른 테스트에 영향을 주는 문제 발생 - Group 인수테스트에 truncate 로직을 AFTER_EACH_METHOD로 지정하여 해결 * feat: Schedule 시간값 검증 로직 추가 * test: Category 인수테스트 수정 * refactor: RestAssuredConvenienceMethod 클래스 이름 변경 * refactor: Category getAll() 메서드 제거 * refactor: 정적 팩토리 메서드 및 시간 형식 검증 제거 * refactor: Schedule 정적 팩토리 메서드 제거 * refactor: Schedule 날짜 및 시간 형식 검증 로직 제거 * refactor: Duration 정적 팩토리 메서드 제거 * refactor: Duration 날짜 및 시간 형식 검증 로직 제거 * test: Duration, Schedule 픽스처 분리 * refactor: DTO 응답 객체에서 @NoArgsConstructor 제거 * refactor: 엔티티 Constructor 어노테이션 수정 * style: 불필요한 import 제거 * test: 매직넘버 제거 * test: GroupRepositoryTest 영속성 컨텍스트 DB 동기화 * refactor: merge conflict 해결 Co-authored-by: sinb57 <[email protected]> Co-authored-by: Seongwon97 <[email protected]> * [BE] 인증 RestDocs 적용 (#56) * chore: restdocs 의존성 추가 * feat: AuthControllerTest restdocs 적용 및 관련 gradle 수정 * [ALL] .gitignore 설정 추가 (#59) * chore: .gitignore 설정 추가 * chore: .gitignore EOF 추가 * [BE] Annotation 기반의 Interceptor를 통한 API 인증 처리 (#61) * feat: Annotation 기반의 인증 인터셉터 구현 * feat: 인증이 필요한 API 에 @authenticated 어노테이션 설정 * [BE] 누락된 Controller 테스트 작성 (#65) * feat: CategoryController 테스트 작성 * feat: GroupController 테스트 작성 * feat: MemberController 테스트 작성 * [BE] 실패 테스트 코드 수정 (#67) * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * [BE] RestDocs 적용하기 (#70) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * refactor: 카테고리 목록 조회 테스트명 수정 * refactor: index.adoc 오타 및 깨진 글자 수정 Co-authored-by: yukong <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> * [BE] 조회 로직 리팩토링 (#82) * [BE] CI Github Action 오류 수정 (#86) * [BE] CORS 설정 변경 및 preflight 처리 (#90) * feat: CORS 설정 추가 * feat: interceptor preflight 설정 추가 * refactor: 불필요한 interceptor checking 제거 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] CORS 및 RestDocs 경로 패턴 설정 수정 (#93) * refactor: CORS 설정을 전역 Configuration 으로 클래스 분리 * refactor: RestDocs 설정 URL 패턴 적용 수정 * refactor: CORS 허용 메서드 지정 * refactor: WebConfig 클래스명 수정 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] JSON DateTime 형식 불일치로 인한 에러 발생 * [BE] 더미 데이터 작성 (#102) * chore: jpa 데이터 initialization 세팅 * feat: 더미데이터 추가 * feat: Category 문화생활 추가 * test: category 개수 수정에 따른 테스트 변경 * test: test yml 수정 및 repository 테스트 에러 해결 * [BE] 모임 목록 조회 API 형식 불일치 에러 발생 (#104) * feat: 모임 목록 조회를 위한 DTO 생성 * refactor: 모임 상세 조회 DTO 클래스명 변경 * style: Optimize Imports * [BE] 인수테스트 리팩토링 (#109) * test: RestHandler 메서드명 통일 * test: RestHandler 사용하지 않는 메서드 제거 * test: AuthRestHandler, User 를 통한 인수테스트 리팩터링 * test: 인수테스트 DisplayName 수정 * test: Category 인수테스트 리팩토링 * test: Member 인수테스트 DisplayName 수정 * test: 모임 인수테스트 및 참여 인수테스트 리팩토링 * test: RestHandler 를 상속받은 각 도메인별 유틸성 클래스 생성 * test: GroupFixture 생성을 통한 모임 인수테스트 리팩토링 * test: 모임 CRUD 기능에 따라 인수테스트 클래스 분리 * test: MemberFixture 생성을 통한 인증/회원 인수테스트 리팩토링 * test: 테스트픽스처 클래스를 Enum 으로 변경 및 픽스처 패키지 분리 * test: truncate.sql 파일에 momo_participant 테이블 추가 * chore: init.sql, build.gradle 수정 * test: 불필요한 요소(제네릭) 제거 및 컨벤션 정리 * chore: api 명세 html 파일 빌드 생성 * chore: application.yml 불필요한 설정 제거 * style: application.yml 컨벤션 정리 * refactor: GroupResponse DTO 클래스명 변경 * test: API RestHandler 메서드명 통일 (~한다) * refactor: Optimize Annotation 및 사용하지 않는 클래스 제거 * test: DurationFixture 인스턴스 관리 방식 변경 * test: 테스트 픽스처 인스턴스 생성 방식 리팩토링 * [BE] 모임 참여 신청 시 주최자일 경우 예외 처리 추가 (#113) * refactor: 인수테스트 리팩토링 코드 추가 * refactor: 모임 참여 검증 로직 분리 * refactor: 리팩토링에 맞춰 참여자 인수테스트 추가 및 수정 * [BE] 모임 인원 제한 추가 (#125) * feat: 모임 최대 인원 정보 추가 * feat: 모임 정원 초과시 참여 제한 로직 추가 * refactor: 모임 객체가 hostId가 아닌 Member객체를 갖도록 수정 * feat: 모임 생성시 Host가 참가자로 저장되도록 로직 추가 - 기존에는 모임 생성시 Host가 참가자로 등록되지 않았는데 해당 로직을 추가하며 문제를 해결하였다. * refactor: 참가 검증 로직을 도메인으로 이동 - 호스트가 참가자인지 체크하는 테스트 제거 * refactor: 참가 최대 인원 변수명 수정 - maxOfParticipants -> capacity * refactor: 축약 가능한 람다 표현식 축약 * style: 정렬되지 않은 쿼리문 정렬 * refactor: 메서드 네이밍 수정 * refactor: GroupResponseAssembler의 불필요한 메서드 매개변수 제거 * refactor: host필드의 불필요한 JoinColumn 설정 제거 * refactor: requestDTO의 capacity를 Wrapper클래스로 변경 * feat: 모임 정원 값에 대한 유효성 검사 추가 * test: 모임 정원 초과 테스트 로직 수정 * feat: API 변경에 따른 모임 정원 필드 추가 * refactor: Response DTO의 ID값을 Wrapper class로 통일 * refactor: 재참여 검증 메서드명 수정 - validateReParticipant -> validateReParticipate * refactor: 모임 정원 상수 로직 분리 * test: 모임 정원 유효성 테스트 추가 * [BE] 패치지 계층 수정 및 코드 컨벤션 수정 (#134) * refactor: 패키지 계층 통일 - DTO 패키지를 Serive내로 이동 * style: 코드 컨벤션 수정 * [BE] 모임 전체 조회 반환값에 현재 참여자 수 추가 (#140) * feat: 모임 전체 조회 API 반환값에 참가자 수 추가 * refactor: 불필요한 메서드 분리 제거 * [BE] 회원 필드 변경 (#138) * refactor: 회원의 email 필드를 userId 필드로 변경 * refactor: 학습 테스트 목적의 로직 제거 * style: optimize spaces * refactor: 아이디 형식 검증 로직 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * [BE] 로그 기능 추가 (#155) * chore: AOP 의존성 추가 * feat: console 창에 로그 남기는 기능 구현 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * chore: JPA SQL 로깅 기능 비활성화 * fix: 삭제한 메서드 테스트 제거 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * refactor: 파일에 로그가 적히는 시간 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * chore: AOP 의존성 추가 * refactor: 이전 PR 내용 적용 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * fix: 삭제한 메서드 테스트 제거 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * refactor: 파일에 로그가 적히는 시간 추가 * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * refactor: 사용자 픽스쳐 수정 Co-authored-by: Byunghoon <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: pageNumber 필드 추가 (#169) * [BE] 모임 수정 로직 추가 및 회원정보 조회 API 반환값 수정 (#168) * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * refactor: pageNumber 필드 추가 (#169) * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 Co-authored-by: Byunghoon <[email protected]> * [BE] 사용자가 참여한 그룹 목록 조회 api 구현 (#176) * feat: 본인이 참여하는 모임 조회 기능 구현 * test: 본인이 참여하는 모임 조회 기능 테스트 작성 * refactor: 본인이 참여하는 모임 조회 adoc 파일에 추가 * refactor: 본인이 참여하는 모임 테스트 변경 * refactor: 불필요한 import문 제거 * [BE] 서브모듈 도입 (#175) * chore: git submodule 을 통한 중요파일 분리 * chore: workflow 파일 수정 * [BE] 배포서버 데이터베이스 변경 (to Mysql) (#188) * chore: application.yml 계층 단순화 및 mysql 연동 * chore: data.sql 파일 제거 * [BE] 배포 서버 재시작 시 DB 초기화되는 현상 발생 (#199) * chore: submodule 업데이트 * chore: 쿼리 로깅 기능 비활성화 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * [BE] 에러코드 추가 (#204) * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * refactor: 리뷰 반영 Co-authored-by: yukong <[email protected]> Co-authored-by: Seongwon97 <[email protected]> Co-authored-by: Byunghoon <[email protected]> Co-authored-by: yukong <[email protected]>
sinb57
added a commit
that referenced
this pull request
Oct 4, 2022
* chore: 스프링 프로젝트 초기 환경구축 * [FE] 프론트엔드 환경 구축 (#8) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * [FE] 프로젝트 환경 세팅 보강 (#12) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * chore: 이미지 웹팩 설정 - file-loader, @svgr/webpack 설치 및 적용 * chore: recoil 설치 * chore: react-query 설치 * chore: msw 설치 Co-authored-by: Usage <[email protected]> * [BE] 모임 도메인 설계 (#16) * feat: 모임 도메인 구조 설계 * feat: 모임 도메인의 기간 정보 원시값 포장 * chore: JPA 의존성 추가 및 환경 설정 * feat: 모임 도메인 JPA 적용 * refactor: 모임 도메인 패키지 분리 * feat: 모임 도메인 Repository 기능 구현 * feat: 누락된 nullable 제약조건 추가 * refactor: Schedules 일급 컬렉션 생성에 따른 로직 변경 * [FE] 메인 페이지 화면 마크업 (#17) * chore: 마크업에 필요한 모듈 설치 - @emotion/styled, emotion-reset * chore: 타입 선언 세분화 - declare.d.ts → global.d.ts로 변경 - image.d.ts 생성 * chore: 웹팩 설정 추가 - historyApiFallback 추가 - 절대경로 추가 * style: globalStyle, theme 생성 * style: 헤더 달린 페이지 레이아웃 생성 * style: 메인 페이지 UI 생성 * style: 헤더 UI 생성 - 푸터 삭제 Co-authored-by: Usage <[email protected]> * [FE] 모임 상세 페이지 화면 마크업 (#18) * chore: 필요한 svg 생성 * style: 모임 상세 페이지 UI 생성 Co-authored-by: Usage <[email protected]> * fix: 모임 도메인 누락된 필드 추가 (#21) * [BE] 모임 API 기능 구현 (#25) * feat: 카테고리 Service 목록 조회 기능 구현 * chore: RestAssured 의존성 추가 * feat: 카테고리 목록 조회 API 구현 * test: Category 인수테스트 리팩토링 * feat: 모임 생성 및 단일 조회 API 구현 * feat: 모임 목록 조회 API 구현 * feat: 모임 변경 API 구현 * feat: 모임 삭제 API 구현 * [BE] 코드 컨벤션 작성 및 imports문 정렬 (#30) * chore: 코드 컨벤션 파일 작성 * style: Optimize imports * [BE] 모임 API 기능 - 일부 인수테스트가 통과하지 않는 이슈 (#32) * chore: 불필요한 설정 제거 * chore: init.sql 파일의 DB 초기화 방식 변경 * [BE] 모임 API 기능 및 테스트 리팩터링 (#33) * refactor: Member와 Group 패키지 분리 * feat: Day에서 발생할 수 있는 예외 처리 로직 작성 * test: 누락된 Day 테스트 추가 * refactor: Category의 상속 클래스 변경 - JpaRepository -> Repository * refactor: Duration에서 발생할 수 있는 예외 처리 로직 작성 * feat: Schedule 레포지토리 생성 * test: 모임 관련 CRUD 테스트 수정 * refactor: TimeRequest 정보를 ScheduleRequest에서 갖도록 수정 * feat: 존재하지 않는 카테고리로 모임 생성시 발생하는 예외 처리 추가 * feat: 모임 조회시 발생할 수 있는 예외 처리 추가 * test: 모임 조회 테스트 추가 * test: 모임 삭제 테스트 코드 추가 - Repository의 deleteById를 통해 schedule도 삭제가 되는지 확인 - Service의 delete 로직 테스트 추가 * refactor: Schedule 내부 값을 요일에서 일자로 변경 * test: API 스펙 변경에 따른 테스트 초기 데이터 수정 * refactor: Group의 regular필드 제거 * refactor: 불필요한 예외 클래스 제거 * test: LocalDate 생성 방식 수정 as-is: LocalDate.parse(start, DateTimeFormatter.ISO_LOCAL_DATE); to-be: LocalDate.of(2020, 5, 8); * style: 코드 컨벤션에 맞게 재정렬 * refactor: 패키지 구조 변경 (#36) * chore: 스프링부트 버전 다운그레이드 및 DB설정 * [FE] 모임 생성 페이지 화면 마크업 (#40) * chore: eslint import order 패턴 추가 * feat: 헤더에 Link 추가 - Link의 기능 수행을 위해 App의 PageLayout을 Router 안으로 이동 * feat: 메인, 모임 상세 화면의 일부 컴포넌트에 데이터를 props로 내려줄 수 있도록 변경 - 데이터 타입 정의 * feat: path 변경 시 스크롤 위치 최상단으로 이동하도록 구현 * style: 모임 생성 페이지에서 각 단계별 마크업 UI 생성 * style: navigator 구성 컴포넌트 UI 생성 * style: 모임 생성 페이지 UI 생성 * style: 전역 스타일 추가 - input 스타일 추가 - 페이지 레이아웃 스타일 추가 Co-authored-by: Usage <[email protected]> * [BE] 회원 기능 구현 (#42) * feat: 멤버 도메인 필드 추가 * chore: validation 의존성 추가 * feat: 회원가입 서비스 로직 구현 * feat: 회원가입 API 구현 * feat: JWT 의존성 추가 및 유틸 클래스 추가 * feat: 로그인 기능 구현 * feat: 로그인 API 구현 * refactor: 로그인 메서드명 수정 - signIn -> login * feat: 회원 정보 조회 기능 구현 * feat: 인증 기능 및 정보조회 API 구현 - 인터셉터와 리졸버 구현 * test: 회원 관련 Controller test 추가 * test: 테스트 격리 * feat: 패스워드 암호화 기능 구현 * feat: 회원 탈퇴 API 구현 * style: 코드 컨벤션 통일 - 불필요한 import 제거 * feat: 패스워드 패턴 검사 추가 * refactor: 잘못된 예외 클래스 변경 * refactor: 로그인 API 반환값 수정 - Location 값 반환 삭제 * test: 회원 삭제 repository 테스트 추가 * refactor: JwtTokenProvider 중복 로직 제거 * refactor: login 메서드명 통일 * style: 불필요한 개행 제거 * test: 비밀번호 암호화 테스트 코드 추가 * refactor: 회원가입 API 명세 변경에 따른 수정 - 회원가입 기능을 auth 패키지로 이동 * test: displayName 형식 통일화 * test: 로그인 성공 테스트 수정 * refactor: sha256encoder messagedigest 상수화 * refactor: 비밀번호 패턴 에러 메시지 수정 * [BE] 회원 정보 수정 기능 구현 (#46) Co-authored-by: Seongwon97 <[email protected]> * [BE] 모임 API 기능 및 테스트 리팩터링 (#41) * test: 통과하지 않는 인수테스트 해결 * refactor: Category Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Request Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Member Response Assembler 를 통한 DTO 매핑 로직 분리 * chore: data.sql 생성을 통한 카테고리 초기값 저장 * refactor: Schedules 제거 * refactor: Group Builder 패턴 적용 * refactor: 카테고리 "전체" 항목 제거 * refactor: Duration 정적 팩토리 메서드 생성 * refactor: Schedule 정적 팩토리 메서드 생성 * refactor: Category enum 으로 대체 및 테스트 리팩토링 * refactor: ScheduleRepository 제거 * refactor: Group 과 Schedule 의 양방향 연관관계를 단방향으로 수정 * style: Cleanup Code * test: Group Repository 테스트 코드 수정 * test: Category Service 테스트 코드 수정 * feat: Duration 도메인 날짜 형식 검증 추가 * feat: Schedule 도메인 날짜 및 시간 형식 검증 추가 * test: 테스트 독립성 보장 - Group 인수테스트에서 저장된 데이터가 DB에 남아있어, 다른 테스트에 영향을 주는 문제 발생 - Group 인수테스트에 truncate 로직을 AFTER_EACH_METHOD로 지정하여 해결 * feat: Schedule 시간값 검증 로직 추가 * test: Category 인수테스트 수정 * refactor: RestAssuredConvenienceMethod 클래스 이름 변경 * refactor: Category getAll() 메서드 제거 * refactor: 정적 팩토리 메서드 및 시간 형식 검증 제거 * refactor: Schedule 정적 팩토리 메서드 제거 * refactor: Schedule 날짜 및 시간 형식 검증 로직 제거 * refactor: Duration 정적 팩토리 메서드 제거 * refactor: Duration 날짜 및 시간 형식 검증 로직 제거 * test: Duration, Schedule 픽스처 분리 * refactor: DTO 응답 객체에서 @NoArgsConstructor 제거 * refactor: 엔티티 Constructor 어노테이션 수정 * style: 불필요한 import 제거 * test: 매직넘버 제거 * test: GroupRepositoryTest 영속성 컨텍스트 DB 동기화 * refactor: merge conflict 해결 Co-authored-by: sinb57 <[email protected]> Co-authored-by: Seongwon97 <[email protected]> * [FE] 카테고리 API 연결 (#50) * chore: 절대경로 추가 - store * feat: 카테고리 axios 요청 추가 * feat: 카테고리 API mocking * feat: 카테고리 커스텀훅 구현 - useRecoilQuery, useCategory * feat: 데이터 타입 추가 * feat: 컴포넌트에서 카테고리 요청 부분 추가 * feat: recoil 카테고리 상태 추가 Co-authored-by: Usage <[email protected]> * [FE] 모임 생성 페이지 기능 구현 (#52) * feat: 모임 생성 페이지 커스텀훅 구현 - useCreateState * style: 모임 생성 페이지에서 공용으로 사용하는 스타일 추가 * chore: 모임 생성 규칙, 에러 메시지 상수화 * feat: 모임 생성 페이지에서 사용된 함수 utils로 분리 - isEqualObject - date utils - PageError 클래스 → ✨ OUR CUSTOM ERROR ✨ * feat: 모임 생성 Step1 * feat: 모임 생성 Step3 * feat: 모임 생성 Step4 * feat: 모임 생성 Step5 * feat: 모임 생성 Step6 * feat: 모임 생성 Step7 * style: svg 리소스 추가 * style: Dot 컴포넌트 props 수정 - color → isFocused, theme * feat: Navigator 컴포넌트 생성 * feat: 모임 생성 입력 데이터에 대한 유효성 검사 * feat: 모임 생성 페이지 기능 연결 * feat: 모임 기능 API mocking * feat: 모임 생성 요청 시 보낼 데이터 추가 * style: complete svg에서 사용하지 않는 스타일링 삭제 * style: Navigator의 사이드 버튼 스타일링 추가 - complete 시 크기 차이로 인해 navigator가 움직이던 부분 해결 Co-authored-by: Usage <[email protected]> * [BE] 인증 RestDocs 적용 (#56) * chore: restdocs 의존성 추가 * feat: AuthControllerTest restdocs 적용 및 관련 gradle 수정 * [ALL] .gitignore 설정 추가 (#59) * chore: .gitignore 설정 추가 * chore: .gitignore EOF 추가 * [FE] 메인 페이지 기능 구현 (#62) * chore: 카테고리 이미지 업로드 * feat: 카테고리에 맞게 이미지를 가져오는 함수 생성 * feat: 마감 기간까지의 시간 추출 함수 생성 * feat: 메인 페이지의 모임 카드 스타일 변경 - 카테고리 이미지로 변경 - 마감 기간 변경 * style: 메인 페이지의 카테고리 스타일 변경 * style: 헤더 스타일 변경 * style: 메인 페이지의 검색 섹션 스타일 변경 - 배경 이미지 삭제 - 검색 버튼 텍스트 변경 * feat: MSW를 사용한 모임 API mocking * refactor: 모임 생성 시 보내는 데이터 타입 선언 * feat: 메인 페이지 모임 목록 조회 API 연결 Co-authored-by: Usage <[email protected]> * [BE] Annotation 기반의 Interceptor를 통한 API 인증 처리 (#61) * feat: Annotation 기반의 인증 인터셉터 구현 * feat: 인증이 필요한 API 에 @Authenticated 어노테이션 설정 * [BE] 누락된 Controller 테스트 작성 (#65) * feat: CategoryController 테스트 작성 * feat: GroupController 테스트 작성 * feat: MemberController 테스트 작성 * [BE] 실패 테스트 코드 수정 (#67) * [FE] 모임 상세 페이지 기능 구현 (#69) * feat: 모임 상세 정보 요청 함수 생성 - 모임 생성 요청 함수에 리턴 값 추가 * chore: 지도 이미지 업로드 * style: theme에 filter prop 추가 - Theme 내부에 Record 적용 * refactor: mock data 수정 * fix: category의 id 타입 변경 * style: 모임 상세 페이지 이미지 추가 - 이미지에 필터 적용 * style: 모임 상세 페이지 스타일 변경 - 마감 기간 문구 수정 - 지도 이미지 추가 * feat: 카테고리명을 props로 전달하도록 변경 * feat: 모임 상세 페이지에 모임 상세정보 조회 API 적용 Co-authored-by: Usage <[email protected]> * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * [FE] 환경설정 추가 (#75) * chore: webpack 설정 추가 - output에 publicPath 추가 * chore: MSW warning option off * style: Global style 추가 - useTheme 사용 - textarea global style 추가 Co-authored-by: Usage <[email protected]> * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * [FE] 모임 삭제 기능 구현 (#79) * feat: 모임 삭제 API 구현 * style: 모임 삭제 버튼 스타일 변경 * feat: 모임 삭제 관련 메시지 생성 Co-authored-by: Usage <[email protected]> * [BE] RestDocs 적용하기 (#70) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * refactor: 카테고리 목록 조회 테스트명 수정 * refactor: index.adoc 오타 및 깨진 글자 수정 Co-authored-by: yukong <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> * [BE] 조회 로직 리팩토링 (#82) * [FE] 모달 구현 (#84) * feat: 모달 상태 Recoil에 저장 - 모달 상태 타입 정의 * feat: 클릭 이벤트 시 발생하는 버블링 막는 유틸 함수 구현 * feat: 모달 레이아웃 구현 - 포탈 사용 * feat: 로그인, 회원가입 모달 구현 - 헤더에 바인딩 Co-authored-by: Usage <[email protected]> * [BE] CI Github Action 오류 수정 (#86) * [BE] CORS 설정 변경 및 preflight 처리 (#90) * feat: CORS 설정 추가 * feat: interceptor preflight 설정 추가 * refactor: 불필요한 interceptor checking 제거 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] CORS 및 RestDocs 경로 패턴 설정 수정 (#93) * refactor: CORS 설정을 전역 Configuration 으로 클래스 분리 * refactor: RestDocs 설정 URL 패턴 적용 수정 * refactor: CORS 허용 메서드 지정 * refactor: WebConfig 클래스명 수정 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [FE] 회원가입 기능 구현 (#95) * chore: 로그인, 회원가입 모달 컴포넌트 삭제 * feat: 로그인, 회원가입 API 요청 함수 생성 * style: 모달에 그림자 추가 * chore: 로그인, 회원가입에 사용하는 상수 선언 - API 경로 → path - 메시지 * feat: useInput 커스텀훅 생성 * feat: User 타입 정의 * feat: 회원가입 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 로그인 기능 구현 (#97) * feat: access token 관리처 구현 - recoil selector 사용 - session storage에서 관리하도록 구현 * feat: 로그인 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원정보가 필요한 API 변경 (#101) * feat: 모임 생성, 삭제 요청 API 헤더에 accessToken 저장 * feat: 로그아웃 기능 구현 - 로그인 상태를 recoil에 저장 Co-authored-by: Usage <[email protected]> * [BE] JSON DateTime 형식 불일치로 인한 에러 발생 * [BE] 더미 데이터 작성 (#102) * chore: jpa 데이터 initialization 세팅 * feat: 더미데이터 추가 * feat: Category 문화생활 추가 * test: category 개수 수정에 따른 테스트 변경 * test: test yml 수정 및 repository 테스트 에러 해결 * [BE] 모임 목록 조회 API 형식 불일치 에러 발생 (#104) * feat: 모임 목록 조회를 위한 DTO 생성 * refactor: 모임 상세 조회 DTO 클래스명 변경 * style: Optimize Imports * [FE] 모임 참여자 목록 조회 기능 구현 (#106) * feat: 상수화 - 키, path * feat: 타입 선언 - UserProfile, GroupParticipants * feat: 참여자 목록 조회 API 생성 * feat: 참여자 목록 조회 기능 구현 Co-authored-by: Usage <[email protected]> * [BE] 인수테스트 리팩토링 (#109) * test: RestHandler 메서드명 통일 * test: RestHandler 사용하지 않는 메서드 제거 * test: AuthRestHandler, User 를 통한 인수테스트 리팩터링 * test: 인수테스트 DisplayName 수정 * test: Category 인수테스트 리팩토링 * test: Member 인수테스트 DisplayName 수정 * test: 모임 인수테스트 및 참여 인수테스트 리팩토링 * test: RestHandler 를 상속받은 각 도메인별 유틸성 클래스 생성 * test: GroupFixture 생성을 통한 모임 인수테스트 리팩토링 * test: 모임 CRUD 기능에 따라 인수테스트 클래스 분리 * test: MemberFixture 생성을 통한 인증/회원 인수테스트 리팩토링 * test: 테스트픽스처 클래스를 Enum 으로 변경 및 픽스처 패키지 분리 * test: truncate.sql 파일에 momo_participant 테이블 추가 * chore: init.sql, build.gradle 수정 * test: 불필요한 요소(제네릭) 제거 및 컨벤션 정리 * chore: api 명세 html 파일 빌드 생성 * chore: application.yml 불필요한 설정 제거 * style: application.yml 컨벤션 정리 * refactor: GroupResponse DTO 클래스명 변경 * test: API RestHandler 메서드명 통일 (~한다) * refactor: Optimize Annotation 및 사용하지 않는 클래스 제거 * test: DurationFixture 인스턴스 관리 방식 변경 * test: 테스트 픽스처 인스턴스 생성 방식 리팩토링 * [BE] 모임 참여 신청 시 주최자일 경우 예외 처리 추가 (#113) * refactor: 인수테스트 리팩토링 코드 추가 * refactor: 모임 참여 검증 로직 분리 * refactor: 리팩토링에 맞춰 참여자 인수테스트 추가 및 수정 * [FE] 달력 컴포넌트 구현 (#117) * feat: 달력 컴포넌트 생성 - 전달된 연도와 월을 바탕으로 해당 월의 달력만 보여주는 방식 * feat: 달력 커스텀훅 생성 - 전달된 연도와 월을 바탕으로 해당 월에서 보여질 일 수(지난달, 이번달, 다음달)를 계산하여 반환 * feat: 이전, 다음 월로 넘어가는 기능 추가 - props로 해당 함수를 전달받도록 구현 * feat: 달력 사이즈 추가 - medium, large * feat: 달력에 오늘 날짜를 표시하는 부분 추가 * style: 달력에 토, 일요일 구분 색깔 추가 * style: 각 일에 padding 추가 * refactor: dayLength → totalOfDay로 변수 네이밍 변경 * refactor: useCalendar 변수명 변경 - https://github.com/woowacourse-teams/2022-momo/pull/117#discussion_r930740289 * [FE] Suspense, ErrorBoundary 구현 (#118) * feat: ErrorBoundary 컴포넌트 구현 * refactor: 메인 페이지 section 분리 - 추천 모임 리스트 분리 * feat: ErrorBoundary 적용 * chore: lottie 설치 - react-lottie - @types/react-lottie * feat: Spinner 컴포넌트 구현 * feat: Loading 컴포넌트 구현 * feat: useRecoilQuery에 suspense옵션 추가 * feat: suspense 적용 * chore: 코드 리뷰 반영 - 스피너 애니메이션 색 변경 - css 스타일 컨벤션에 맞게 수정 - 절대경로 import 사용 * [FE] 모임 생성 페이지에 최대 인원 입력 추가 (#122) * feat: 모임 생성 Step3 컴포넌트 생성 - Step3가 추가됨에 따라 기존의 Step3~7을 Step4~8로 변경 * feat: 모임 생성 인원 관련 규칙 추가 * feat: 모임 생성 상태에 최대 인원 추가 * feat: 최대 인원 입력 기능 구현 * fix: 제거하지 않은 defaultValue 제거 * feat: Step3에 props 넘기는 부분 추가 * feat: 최대 인원 유효성 검사 추가 - 기존에 있던 ValidatorProps를 CreateGroupData로 대체 * feat: 모임 데이터 타입에 최대 인원 추가 * feat: 모임 생성 요청에 최대 인원 추가 - 입력되지 않았을 경우, 현재 최대 인원 입력의 최대값인 99로 요청이 가도록 구현 * feat: Step3 컴포넌트에 memo 추가 * refactor: Step4~8 컴포넌트 이름 변경 - https://github.com/woowacourse-teams/2022-momo/pull/122#discussion_r931838328 * [FE] 404 페이지 구현 (#126) * feat: NotFound 애니메이션 컴포넌트 구현 * feat: NotFound 페이지 구현 * feat: 404 Page 라우팅 적용 * refactor: Page 프리픽스 제거 * [FE] lottie-react 버젼 충돌 이슈 해결 (#128) * chore: lottie 라이브러리 교체 - react-lottie 제거 - lottie-react 설치 * refactor: lottie 라이브러리 변경 적용 * [BE] 모임 인원 제한 추가 (#125) * feat: 모임 최대 인원 정보 추가 * feat: 모임 정원 초과시 참여 제한 로직 추가 * refactor: 모임 객체가 hostId가 아닌 Member객체를 갖도록 수정 * feat: 모임 생성시 Host가 참가자로 저장되도록 로직 추가 - 기존에는 모임 생성시 Host가 참가자로 등록되지 않았는데 해당 로직을 추가하며 문제를 해결하였다. * refactor: 참가 검증 로직을 도메인으로 이동 - 호스트가 참가자인지 체크하는 테스트 제거 * refactor: 참가 최대 인원 변수명 수정 - maxOfParticipants -> capacity * refactor: 축약 가능한 람다 표현식 축약 * style: 정렬되지 않은 쿼리문 정렬 * refactor: 메서드 네이밍 수정 * refactor: GroupResponseAssembler의 불필요한 메서드 매개변수 제거 * refactor: host필드의 불필요한 JoinColumn 설정 제거 * refactor: requestDTO의 capacity를 Wrapper클래스로 변경 * feat: 모임 정원 값에 대한 유효성 검사 추가 * test: 모임 정원 초과 테스트 로직 수정 * feat: API 변경에 따른 모임 정원 필드 추가 * refactor: Response DTO의 ID값을 Wrapper class로 통일 * refactor: 재참여 검증 메서드명 수정 - validateReParticipant -> validateReParticipate * refactor: 모임 정원 상수 로직 분리 * test: 모임 정원 유효성 테스트 추가 * [BE] 패치지 계층 수정 및 코드 컨벤션 수정 (#134) * refactor: 패키지 계층 통일 - DTO 패키지를 Serive내로 이동 * style: 코드 컨벤션 수정 * [FE] 모달 애니메이션 추가 (#131) * style: 모달 애니메이션 추가 - 열고 닫는 애니메이션을 0.3초씩 재생하도록 추가 * refactor: 모달 애니메이션 재생 시간 상수화 - 스타일링 컴포넌트에서 props로 받도록 변경 * [BE] 모임 전체 조회 반환값에 현재 참여자 수 추가 (#140) * feat: 모임 전체 조회 API 반환값에 참가자 수 추가 * refactor: 불필요한 메서드 분리 제거 * [BE] 회원 필드 변경 (#138) * refactor: 회원의 email 필드를 userId 필드로 변경 * refactor: 학습 테스트 목적의 로직 제거 * style: optimize spaces * refactor: 아이디 형식 검증 로직 추가 * [FE] 메인, 모임 상세 페이지에 해당 모임의 최대 인원 및 현재 모인 인원 수 추가 (#139) * feat: 메인 페이지에 모임 인원 수 추가 - 현재 모임에 모인 사람의 수는 아직 모임 전체 목록 조회 API에 추가되지 않았으므로, 임시로 모임 참여자 목록 API를 사용하도록 대체 * feat: 모임 상세 페이지에 모임 인원 수 추가 * fix: API 변경에 따라 메인 페이지에서 현재 모임의 참여 인원 수를 가져오는 방식 변경 * fix: 모임 상세 페이지에서 참여자 수에 1을 더하는 부분 삭제 * [FE] 회원 정보 수정 기능 구현 (#141) * chore: info 페이지의 asset 추가 * feat: useInput 훅에 setValue output 추가 * feat: UserInfo type, query key 설정 * feat: 회원 정보 수정 기능 구현 * chore: 피드백 반영 * [FE] 모임 참여 기능 구현 (#144) * feat: 모임 참여, 취소 요청 API 생성 * style: 색상 추가 * feat: 모임 참여 신청, 취소 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원 탈퇴 기능 구현 (#143) * refactor: api 명세 수정에 따른 변경 적용 - email -> userId 로 변경 * feat: 회원 탈퇴 기능 구현 * feat: 회원 탈퇴 기능 적용 * refactor: 피드백 반영 * [FE] 모임 참여 시 header가 제대로 보내지지 않는 오류 해결 (#147) * fix: post 요청 시 header를 제대로 보내도록 수정 Co-authored-by: Usage <[email protected]> * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [FE] 모임 생성, 상세 페이지에 달력 추가 (#156) * style: 달력 스타일 변경 - 레이아웃이 깨지는 부분 변경 * feat: useDate 커스텀훅 생성 - 달력을 보여줄 때 사용할 상태와 함수 반환 * feat: 모임 생성 페이지에 달력 삽입 - large 사이즈 * style: 달력 컴포넌트 스타일 변경 - transform-origin 추가 - medium 사이즈일 때 scale을 0.5 → 0.7로 변경 * style: 모임 생성 페이지 달력에 max-width 부여 * feat: 모임 상세 페이지에 달력 추가 * style: 모임 생성 페이지 달력 너비 변경 * style: aspect-ratio 축약 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * [FE] 회원가입, 로그인 시 유효성 검사 및 에러 메시지 세분화 (#161) * feat: 로그인, 회원가입 에러 컨트롤러 구현 * feat: 회원가입 유효성 검증 함수 구현 * feat: 회원가입 실시간 유효성 검증 UI 구현 * feat: 로그인 에러 세분화 및 리팩토링 - 에러 컨트롤러 적용 - 비제어 컴포넌트로 변경 * refactor: 코드 리뷰 반영 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * [FE] 바뀐 모임 목록 API에 맞게 변경 (#166) * refactor: DetailData → GroupDetailData로 네이밍 변경 * refactor: Group → GroupSummary로 네이밍 변경 * feat: 모임 목록 API에 맞게 변경 Co-authored-by: Usage <[email protected]> * [BE] 로그 기능 추가 (#155) * chore: AOP 의존성 추가 * feat: console 창에 로그 남기는 기능 구현 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * chore: JPA SQL 로깅 기능 비활성화 * fix: 삭제한 메서드 테스트 제거 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * refactor: 파일에 로그가 적히는 시간 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * chore: AOP 의존성 추가 * refactor: 이전 PR 내용 적용 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * fix: 삭제한 메서드 테스트 제거 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * refactor: 파일에 로그가 적히는 시간 추가 * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * refactor: 사용자 픽스쳐 수정 Co-authored-by: Byunghoon <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: pageNumber 필드 추가 (#169) * [BE] 모임 수정 로직 추가 및 회원정보 조회 API 반환값 수정 (#168) * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * refactor: pageNumber 필드 추가 (#169) * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 Co-authored-by: Byunghoon <[email protected]> * [FE] 무한 스크롤 구현 (#170) * feat: GroupList 타입에 pageNumber 추가 * feat: 모임 목록 API 요청 함수 변경 - 요청 링크 변경 * feat: 모임 목록 무한스크롤 구현 Co-authored-by: Usage <[email protected]> * [FE] 전체적인 UI 개선 (#172) * refactor: react query에서 isError 제거 - 에러 컨트롤을 에러 바운더리로 대체 * feat: 회원가입 UI 수정 - 회원가입 성공 시, 로그인 모달로 이동 & input 초기화 * chore: package-lock.json 업로드 * refactor: 로그아웃 컨펌 메시지 분리 * feat: 로그인 상태에 따른 헤더 메뉴 변경 * refactor: API 요청 함수 반환 타입 명시 * refactor: 기존 타입을 사용하도록 변경 * style: css 수정 Co-authored-by: Usage <[email protected]> * [FE] 에러 바운더리 fallback 컴포넌트 수정 (#174) * chore: fallback 애니메이션 추가 * feat: 에러 바운더리 컴포넌트를 유연하게 변경 - fallback UI props 추가 * feat: 카테고리 fallback UI 구현 * chore: 기본 fallback UI style 변경 - border-radius 적용 * [BE] 사용자가 참여한 그룹 목록 조회 api 구현 (#176) * feat: 본인이 참여하는 모임 조회 기능 구현 * test: 본인이 참여하는 모임 조회 기능 테스트 작성 * refactor: 본인이 참여하는 모임 조회 adoc 파일에 추가 * refactor: 본인이 참여하는 모임 테스트 변경 * refactor: 불필요한 import문 제거 * [BE] 서브모듈 도입 (#175) * chore: git submodule 을 통한 중요파일 분리 * chore: workflow 파일 수정 * [FE] 달력에 선택된 날짜를 보여줄 수 있는 기능 추가 (#178) * feat: 시간 정제 함수 생성 - 00:00:00 형태로 들어오는 시간을 **시 **분으로 정제하여 반환 * feat: 모임 생성 시의 입력 상태에 schedules 추가 * style: 달력 css 수정 - transform-origin 제거 * feat: 스케줄로 선택된 날짜와 아닌 날짜 분기 처리 * feat: 선택된 날짜 컴포넌트 생성 - 색상 변경 - 호버링 시 조그맣게 시간 모달 * refactor: isHovering → isHover로 변경 * [FE] 모임 모집 마감 기능 구현 (#181) * feat: 모임 모집 마감 관련 상수화 * feat: 모임 모집 마감 요청 API 함수 생성 * feat: 모임 모집 마감 기능 구현 * [FE] utils 함수 테스트 코드 작성 (#183) * chore: jest 설치 및 명령어 설정 * refactor: 시간 단위 상수화 * test: date 함수 단위 테스트 작성 * [FE] 해당 모임에 대한 사용자의 역할 판단 로직 추가 (#185) * fix: 로그인 요청 시 받아오는 데이터의 타입 변경 * feat: 로그인 시 리코일에 저장하는 기능 추가 * feat: 내 정보 페이지에서 로그인한 사용자의 정보를 가져오는 방법 수정 - 기존에 API 요청을 통해 가져왔다면, 저장된 리코일의 정보를 가져오도록 수정 * feat: 현재 로그인한 사용자가 호스트인지 판단하는 로직 추가 * feat: 현재 로그인한 사용자가 모임의 참여자인지 판단하는 로직 추가 * fix: 참여자 목록에서 호스트를 제외한 사람만 구분하여 보여줄 수 있도록 변경 * [BE] 배포서버 데이터베이스 변경 (to Mysql) (#188) * chore: application.yml 계층 단순화 및 mysql 연동 * chore: data.sql 파일 제거 * [FE] 로그인 시 회원정보를 제대로 가져오지 못하는 오류 해결 (#190) * fix: access token 저장 후 사용자 정보를 요청하도록 순서 변경 * chore: package-lock 업로드 * feat: 모임 참여 신청, 취소, 모집 마감 시에 데이터 최신화 기능 추가 (#191) * chore: API 주소 업데이트 (#194) Co-authored-by: Usage <[email protected]> * [BE] 배포 서버 재시작 시 DB 초기화되는 현상 발생 (#199) * chore: submodule 업데이트 * chore: 쿼리 로깅 기능 비활성화 * [FE] 모임 생성 시 상세 일정 입력 기능 추가 (#200) * style: input disabled 스타일 추가 * feat: 생성 페이지에서 duration 구성하여 전달하도록 추가 * style: 달력에 스타일 추가 - 애니메이션 - disabled date * feat: 달력 기능 추가 구현 - duration이 있을 경우, duration이 아닌 날짜는 disabled 처리 - 날짜를 선택하는 기능 - 선택된 날짜를 보여주는 기능 * feat: 세부 일정 입력 기능 구현 - 달력의 날짜를 선택하여 일정 입력 - api에 일정 추가 Co-authored-by: Usage <[email protected]> * [FE] 마감된 모임에 대해 상태 반영 (#192) * feat: 모임 상세 데이터에 finish 타입 추가 * feat: 모집 종료 버튼 구현 * chore: 코드 리뷰 반영 * feat: 설명이 없는 모임은 description 영역 제거 * feat: 모집 마감시 DetailContent에 표시 * feat: 마감된 모임은 메인 화면에서 마감 표시 * [FE] 달력 일정 호버 시 모달에 겹치면 모달이 계속 여닫히는 오류 해결 (#202) * feat: 시간 모달에 호버 시 모달이 꺼지지 않는 기능 추가 * refactor: 함수 네이밍 변경 - toggleHovering → changeHoverState * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * fix: 무한 스크롤 시 마지막 페이지의 데이터를 보여주도록 추가 (#208) * [BE] 에러코드 추가 (#204) * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * refactor: 리뷰 반영 Co-authored-by: yukong <[email protected]> * fix: 오늘 날짜 하이라이팅 우선순위 변경 (#215) - 선택할 경우 > 오늘일 경우 * fix: getNewDateString에 한국 시간대 적용 (#217) * [BE] Google Oauth2 연동 (#213) * feat: Google Oauth 요청을 책임지는 Support 클래스 구현 * feat: Google Oauth 로그인 기능 구현 * test: Google Oauth 테스트코드 작성 * chore: application.yml 관심사 분리 및 profile 간의 중복 제거 * chore: rest docs api 문서화 생성 * chore: security 서브모듈 업데이트 * chore: security 서브모듈 업데이트 * feat: GoogleProvider 필드 불변성 보장 * refactor: OauthService 필드명 변경 * refactor: OauthService 필드명 변경 * refactor: 사용하지 않는 클래스 제거 * refactor: MemberResponse 빈생성자 어노테이션 추가 * refactor: MemberRepository#findByUserId 반환타입을 Optional로 변환 * style: 변수명 오타 수정 * refactor: MemberResponse 빈생성자의 접근제어자 private으로 지정 * refactor: OauthController#access api의 반환값을 dto로 매핑 * refactor: Oauth에 대한 에러코드 작성 및 예외처리 * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#225) * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#227) * [BE] 모임 수정, 모임 삭제 기능을 참여자가 없을 경우에만 가능하도록 변경 (#222) * refactor: 모임 삭제 시 주최자 외 참여자가 있을 경우 삭제 불가능 * refactor: 모임 수정 시 주최자 외 참여자가 있을 경우 수정 불가능 * refactor: 모임 수정 시 이름도 수정 가능하게 변경 * refactor: 메서드명 수정 * refactor: 공통 로직 메서드로 분리 * test: 검증 라이브러리를 JUnit 에서 AssertJ 로 변경 * refactor: 처리하지 못한 예외에 한해 로그 작성 * [FE] 메인 페이지 UI 개선 (#229) * style: 메인 페이지 카테고리 UI 변경 * style: 모임이 없을 경우의 UI 추가 * feat: MSW 전체 모임 목록 코드 업데이트 * feat: 다음 페이지가 없을 때는 요청을 보내지 않도록 추가 - 페이지 번호와 모임 목록 데이터를 업데이트하는 부분 분리 * feat: 모임 목록 데이터를 가져오는 중이라면 로딩 바를 보여주도록 추가 - 이를 위해 isLoading → isFetching을 사용하도록 변경 * style: 카드 이미지를 img 태그에서 background로 변경 * style: 마감 완료된 모임에 대해 회색 필터링 적용 * style: 페이지 레이아웃 너비 변경 - 100vw로 설정 시 가로 스크롤이 생기므로 100%로 변경 * style: 모임 목록 컨테이너 스타일링 추가 * style: 메인 페이지 사용하지 않는 스타일링 제거 * style: 카드 호버 시 살짝 커지도록 추가 * fix: 모임이 없을 경우의 UI 가운데 정렬 * fix: Wrapper → Container로 변경 * [FE] TOP 버튼 구현 feat: TOP 버튼 구현 (#231) - 메인 페이지에 추가 * [FE] 모임 생성에서 모임 시작 기간이 끝 기간을 넘어가면 끝 기간을 맞춰서 연장하도록 수정 (#233) * fix: 시작 날짜 선택 함수 변경 - 시작 날짜가 종료 날짜보다 작으면 종료 날짜를 변경하도록 수정 * refactor: 필요없는 코드 제거 * [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 (#235) * refactor: Oauth Redirect URI 생성방식 개선 * style: 오타 수정 * refactor: 관심사에 따른 Configuration 분리 * refactor: 구글 Oauth AccessToken 요청에 사용되는 redirect_url 형성 방식 개선 * chore: submodule update * [FE] 환경변수 설정 (#237) * chore: webpack-merge dotenv 설치 - npm scripts 변경 * chore: gitignore에 env 추가 * chore: webpack 모드 설정 - common, development, production * refactor: base url 환경변수로 이전 Co-authored-by: Usage <[email protected]> * [BE] 리프레시 토큰 구현 (#238) * feat: 리프레시 토큰 발급 로직 구현 * feat: 리프레시 토큰을 담을 Entity와 Repository 구현 * rebase develop-be - [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 * feat: 리프레시토큰에 누락된 Payload값 추가 * style: RefreshToken 클래스명을 Token으로 변경 * feat: 엑세스 토큰 재발급 로직 구현 * feat: 리프레시 토큰을 검증하는 인터셉터 구현 * feat: 로그인시 리프레시토큰 값을 DB에 저장하는 로직 추가 * feat: 엑세스 토큰을 재발급받는 API 구현 * test: 리프레시 토큰을 통한 엑세스 토큰 발급 인수 테스트 추가 * refactor: DB 값을 업데이트하는 로그인 로직에 누락된 트랜잭션 어노테이션 추가 * refactor: DB에 저장된 리프레시토큰 값과 다를 경우 예외가 발생하도록 로직 수정 * refactor: 토큰의 유효기간을 서브모듈에서 읽어오도록 변수 수정 * chore: 서브모듈 버전 업데이트 * feat: token객체가 Member 객체를 갖도록 수정 * refactor: 리프레시토큰 값 동기화 메서드 분리 * test: 잘못된 테스트 코드 수정 * refactor: Optional의 기본 기능을 사용하도록 수정 * feat: 로그아웃시 API 구현 * style: 메서드명 오타 수정 * test: 컨트롤러 테스트의 responseField제거 * test: 인수 테스트의 static 메서드의 prefix제거 * refactor: 리프레시토큰 api 수정 * [BE] 모임 탈퇴 기능 구현 (#240) * feat: 모임 탈퇴 기능 구현 * feat: 주최자는 모임 탈퇴 불가능 * feat: 모임에 참여자가 아닐 경우 모임 탈퇴 불가능 * feat: 모집이 마감된 모임의 탈퇴 불가능 * feat: 조기 종료된 모임에 탈퇴 불가능 * refactor: 메서드 변경 및 메서드 추출 * refactor: import 형식 변경 * [FE] 환경 변수 서브 모듈화 (#243) * chore: 서브모듈 등록 * fix: 환경 변수 파일 경로 수정 * [BE] Oauth 인증 - Redirect Uri 전달받도록 변경 (#241) * refactor: Oauth Redirect Uri, 파싱하지 않고 전달받는 방식으로 변경 * chore: index.html 업데이트 * chore: submodule 업데이트 * chore: index.html 업데이트 * [FE] 모임 생성 페이지에서 각 스텝에 대해 모달로 띄워주는 호버 이벤트 추가 (#244) feat: 모임 생성 페이지에서 각 스텝별 모달 추가 * [BE] 로그인기능 실패 오류 수정 (#248) * fix: 로그인시 DB에 접근이 되지 않던 오류 수정 * test: 테스트의 sql쿼리문에 token 테이블 정보 추가 * docs: restDocs에 리프레시 토큰관련 API 추가 * fix: production mode env 파일 경로 수정 (#252) * [BE] OAuth 로그인기능 실패 오류 수정 (#254) * [FE] 헤더에 로그인 정보 Dropdown 추가 (#253) * refactor: assets 폴더 정리 * style: TOP 버튼 내용을 svg로 변경 * feat: useClosingState 커스텀훅 생성 - 닫는 애니메이션을 보여주기 위해 닫는 과정을 지연시키는 커스텀훅 - 기존에 사용하던 모달 컴포넌트에서 커스텀훅으로 분리 * feat: 헤더에 현재 로그인한 사용자 메뉴를 드롭다운으로 추가 * fix: 헤더 고정을 sticky → fixed로 변경 - 헤더 영역 확보를 위해 헤더 밑 내용에도 padding 적용 * [FE] Google OAuth 로그인 구현 (#255) * chore: google login svg 추가 * feat: google 로그인 api 구현 * feat: 구글 로그인 UI 구현 * feat: 구글 로그인 리다이렉션 페이지 구현 * feat: 회원가입 바로가기 링크 추가 * refactor: 피드백 반영 * [BE] 이미지 업로드 기능 구현 (#246) * feat: file upload/save 컨트롤러 작성 * feat: file upload/save 서비스 기능구현 * feat: 파일 업로드 테스트 작성 * refactor: displayname 추가 * refactor: test restdocs 추가 * refactor: test restdocs 누락된 어노테이션과 adoc 추가 * refactor: api 네이밍 변경 * feat: 이미지 확장자 검증 추가 * refactor: 리뷰 반영 * refactor: MomoException으로 변환 * refactor: 불필요 주석 제거 * refactor: 컨벤션 맞추어서 코드 수정 * [BE] SonarQube 서버 구축 및 Github Actions PR 연동 * [FE] 스낵바 구현 (#264) * feat: 포탈에 스낵바 추가 * feat: 리코일에 스낵바 상태 추가 - isShowing, message * feat: useSnackbar 커스텀훅 생성 - setMessage, resetSnackbar 함수 존재 * refactor: useClosingState 타입 변경 - Function → () => void로 명시 * feat: 스낵바 컴포넌트 생성 - 페이지 레이아웃에 스낵바 추가 * feat: 성공 alert을 스낵바로 교체 - 모임 참여, 취소, 삭제, 마감 - 로그인, 회원가입, 회원정보 수정 * [FE] 내 모임 페이지 구현 (#265) * feat: 내가 참여한 모임 api 구현 * refactor: Search 컴포넌트의 검색창 영역 분리 * refactor: NoResultContainer를 별도의 컴포넌트로 분리 * feat: 내가 참여한 모임 컴포넌트 구현 * feat: 내 모임 페이지 구현 - 헤더에서 내 모임 페이지 링크 연결 * chore: 코드 리뷰 반영 * [FE] 로그아웃 요청 추가 (#267) * feat: 로그아웃 요청 함수 생성 * feat: 로그아웃 시 서버에 요청하는 기능 추가 * feat: 액세스 토큰 만료 시 자동 로그아웃 기능 추가 * [BE] Code Smell 제거 (#263) * refactor: Optimize imports * test: 테스트 클래스 접근제어자 수정 * refactor: 빈 생성자 추가 및 필드 선언 변경 * style: 불필요한 개행 제거 * refactor: global 패키지 구성 * refactor: 잘못 사용된 연산자 수정 * style: 변수 오타 수정 * refactor: inverted 하게 사용되는 메서드 리팩터링 * refactor: 메서드 분리 * refactor: 파일 생성 검증 순서 변경 * refactor: 업로드 파일 검증 로직 리팩터링 * [BE] 모임 수정 API Docs 활성화 (#272) * [BE] 회원 탈퇴 기능 구현 (#269) * refactor: 사용자 테이블에 deleted 필드 추가 * refactor: 회원 탈퇴 시 deleted 필드 변경 * refactor: 회원 탈퇴 시 개인정보 변경 * refactor: develop-be 이력 적용 * refactor: 회원 탈퇴 시 주최한 모임 중 진행중인 모임이 있다면 탈퇴 불가능 * test: 자신이 참여한 모임 목록 조회 테스트 추가 * test: 탈퇴한 사용자가 속한 모임의 참여자 목록 조회 테스트 추가 * style: 올바른 import 경로로 수정 * refactor: 인스턴스 변수 호출 시 this 삭제 * refactor: '탈퇴하다' 의 용어를 leave 로 변경 * refactor: 탈퇴한 사용자의 기능 제한 * test: 비어있는 값에 대한 테스트 검증 방식 변경 * refactor: lombok 에서 제공하는 메서드 사용 * refactor: 탈퇴한 사용자는 모든 기능에 접근할 수 없도록 변경 * test: 미리 구현되어 있는 메서드 사용 * refactor: 회원 탈퇴 시 모임 탈퇴 로직 변경 * refactor: 회원 탈퇴 관련 에러 코드명 변경 * fix: redirectUrl을 href에서 origin으로 수정 (#276) * [BE] 테이블 컬럼 타입과 엔티티 필드 타입의 불일치 발생 (#280) * [FE] 내 정보 페이지 UI 개선 (#278) * refactor: 내 정보 네이밍 통일 * refactor: Routes 분리 * feat: 로고 svg로 컴포넌트로 생성 * style: 페이지에 높이 적용 * feat: 피그마에 맞게 내 정보 페이지 UI 변경 - 기존에 있던 닉네임, 비밀번호 관련 함수 병합 * refactor: 공용으로 사용하는 컴포넌트 components/@shared 폴더로 정리 * refactor: 내 정보 페이지 컴포넌트 분리 - 내 정보와 회원 탈퇴 섹션 분리 * refactor: 모달 플래그 네이밍 통일 * style: 페이지 내용 전역에 높이를 지정함에 따라 다른 페이지들의 높이 스타일링변경 - calc(100% - 4rem) → 100%로 변경 * feat: 비밀번호 확인 모달 생성 * feat: 비밀번호 확인 요청 API 생성 * feat: 내 정보 수정 시 비밀번호 확인 과정을 거쳐 수정하도록 추가 * feat: 모달 상태에 비밀번호 확인 상태 추가 * feat: useModal 커스텀훅 생성 * feat: 내 정보 수정 후 새롭게 수정된 정보를 받아와 저장하는 부분 추가 * feat: 로그인 정보에 로그인 타입 추가 - 현재는 basic & oauth * feat: basic과 oauth 내 정보 화면 분리 - basic에서는 닉네임, 비밀번호를 모두 변경하고 비밀번호 확인을 할 수 있음 - oauth에서는 닉네임 변경만 가능하며 비밀번호 확인이 존재하지 않음 * refactor: '/'를 BROWSER_PATH.BASE로 변경 * refactor: 내 정보를 수정하는 함수를 내 정보 페이지로 이동 - 기존에는 비밀번호 확인 컴포넌트에 있었으나, 해당 컴포넌트의 역할과는 맞지 않다고 판단하여 이동 * [FE] 모임 마감날짜 유효성 검증 오류 수정 (#282) * feat: 날짜 유효성 검증 로직 수정 - 한국 시간 변환 함수 추가 -가장 빠른 스케쥴과 비교하는 로직 추가 * test: 함수 변동사항 적용 * chore: 주석 삭제 * [BE] 검색 기능 구현 (#277) * refactor: 모임 조회를 역순으로 하도록 수정 * feat: 카테고리별 그룹 조회 로직 추가 * refactor: 카테고리 정보를 찾지 못할 때 발생하는 예외를 다른 예외 형식과 통일 * refactor: 사용하지 않는 메서드 제거 * feat: 카테고리별 모임 조회 API 구현 * test: 제거된 API에 대한 테스트 제거 * test: 카테고리별 모임 조회 인수 테스트 추가 * test: 모임 생성 메서드 하나로 통일 * feat: 모임 키워드 검색 기능 구현 * feat: 모임 키워드 검색 API 구현 * feat: 모임 필터링 Specification 구현 * feat: 카테고리, 참여한 모임, 생성한 모임을 조회하는 Specification 구현 * feat: 카테고리, 검색 조회 API에 Specification을 통해 동작하도록 적용 * feat: 참여한 모임 조회 API 로직 수정 * feat: 주최한 모임 조회 API 구현 * refactor: 모임 필터링 Specification 체이닝으로 변경 * test: 모임 필터링 테스트 추가 * style: 모임 단일 조회 메서드명 수정 * test: 모임 조회 로직 컨트롤러 인수 테스트 추가 * refactor: rebase 충돌 해결 * style: import문 재정렬 * refactor: code smell 제거 * refactor: GroupSpecification에서 MemberId가 아닌 객체를 받도록 수정 * refactor: GroupSpecification의 반환값을 null이 아닌 predicate객체로 변환 * style: GroupFindService 메서드명 수정 * style: GroupSpecification 메서드명 수정 * refactor: GroupSpecification 빈 등록 * [FE] 새로고침 시 자동 로그아웃되는 오류 해결 (#284) * feat: access token이 유효할 시 자동 로그인이 되도록 추가 * fix: 내 정보 페이지 input에 type 부여 * refactor: 로그인 상태를 비우는 부분을 reset을 사용하여 하도록 변경 * fix: 내 정보 페이지에서 로그아웃 시 uncontrolled 경고가 뜨는 오류 해결 * style: 비밀번호 input에 placeholder 추가 * [FE] 변경된 회원정보 수정 API에 맞게 요청 형식 변경 (#289) * feat: 새로고침 시 로그인 타입을 판단하는 기능 추가 * style: 비밀번호 변경 시에만 비밀번호 확인 모달이 뜨도록 변경 * fix: 비밀번호 확인 API 요청 함수 삭제 및 비밀번호 수정 API 요청 변경 * [BE] 비밀번호 확인 API 구현 (#285) * refactor: 패스워드 전송 DTO 네이밍 수정 * feat: 비밀번호 확인 로직 구현 * feat: 비밀번호 확인 API 구현 * test: 비밀번호 확인 인수테스트 추가 * test: DisplayName명 수정 * refactor: 회원 비밀번호 수정+비밀번호 검증 통일하도록 수정 * refactor: 비밀번호 확인 메서드명 수정 * [FE] Private Route 구현 (#292) feat: Private Routes 구현 * [FE] 리프레시 토큰 적용 (#295) * feat: access token provider 생성 및 적용 * feat: 리프레시 토큰 selector 정의 * feat: refresh token provider 생성 * feat: Token 타입 정의 * feat: 리프레시 토큰을 사용하여 액세스 토큰을 요청하는 함수 생성 * feat: 헤더에서 토큰 유효성을 판단하여 재발급 또는 로그아웃 시키는 로직 구현 - 액세스 토큰이 유효하지 않음 → 리프레시 토큰으로 액세스 토큰 발급 - 리프레시 토큰이 유효하지 않음 → 로그아웃 * feat: 로그인 시 리프레시 토큰을 저장하는 부분 추가 * feat: 로그아웃, 회원 탈퇴 시 리프레시 토큰을 삭제하는 부분 추가 * [FE] 모임 검색 및 필터링 기능 구현 (#297) * feat: useInfiniteScroll 커스텀훅 생성 * fix: API 링크 수정 * feat: 내가 참여한 모임 목록에 무한 스크롤 적용 * feat: 체크박스 컴포넌트 생성 * feat: 전달된 쿼리 바탕으로 URL을 만들어주는 함수 생성 * feat: 마감된 모임 포함/제외 필터링 기능 구현 * feat: 키워드 검색 기능 구현 * feat: 카테고리 필터링 기능 구현 * feat: 내 모임 필터링 기능 구현 - 내가 참여한 모임, 내가 주최한 모임, 내가 찜한 모임 * feat: 내 모임 페이지에 TOP 버튼 추가 - 무한 스크롤이 적용된 페이지이므로 추가 * refactor: SearchForm 폴더화 * refactor: 유효하지 않은 카테고리 ID 상수화 * [FE] 모임 검색 시 엔터를 입력해도 검색되도록 추가 (#301) * feat: 엔터 입력 시에도 검색이 가능하도록 변경 - 검색 input을 폼으로 바꾸고 검색 이벤트를 submit으로 이전 * refactor: onClick 이벤트 삭제 * [FE] 모임 수정 기능 구현 (#299) * chore: calendar svg 추가 * refactor: useCreateState 리팩토링 - useState를 useInput으로 변경 * feat: 달력에서 일정 삭제 기능 추가 후 컴포넌트 분리 * refactor: useCreateState 리팩토링 변경점 적용 * refactor: useInput에 initialState 타입 추가 * fix: 날짜 비교 버그 수정 * feat: 모임 정보 수정 모달 생성 * feat: 모임 정보 수정 api 추가 * feat: 모임 수정 기능 구현 * fix: groupDetail이 갱신되지 않던 버그 수정 * refactor: 피드백 반영 * [FE] 내 모임 페이지에서 찜한 목록은 준비 중 페이지로 변경 (#303) * style: 내가 찜한 모임 섹션은 준비 중 페이지로 대체 * style: favicon 추가 * style: 내 정보 페이지의 로고 변경 - favicon 이미지를 svg화 시켜 애니메이션 적용 * [FE] groupDetail 정보 로드 오류 해결 (#305) * fix: devServer 경로 수정 * fix: group data early return 조건 변경 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * [BE] 누락된 테스트 추가 작업 (#298) * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * refactor: 중복 메소드 제거 Co-authored-by: yukong <[email protected]> * [FE] 메인 페이지에서 모임이 없을 시 마감된 모임 제외 체크박스가 보이지 않는 오류 해결 (#309) * feat: 메인 화면 모임 목록의 헤더가 모임 유무와 관계 없이 항상 보이도록 변경 - 모임이 없을 경우에는 문구가 나오지 않고 체크박스만 보임 - 카테고리 선택 시 `{카테고리이름} 모임을 찾아봤어요 🚀` 문구가 나오도록 추가 * style: favicon 파일 형식을 jpeg → ico로 변경 * [FE] 배포 모드에서 favicon이 보이지 않는 오류 해결 (#312) chore: 웹팩 설정에 favicon 추가 * [BE] 개발 서버 구축 및 실행환경 분리 (#311) * chore: profile별 DB환경 분리 * chore: profile 설정 오류 수정 * chore: 테스트 환경 파일 yml 수정 * [FE] 마감 모임 제외 기능 disabled 처리 (#314) * fix: 오류 부분 비활성화 * [BE] 도메인 값 객체 분리 (#316) * [BE] Calendar 도메인 패키지 리팩터링 (#319) * test: calendar 및 datetime 픽스처 패키지 분리 * test: datetime 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: datetime 관련 테스트픽스처 메서드명 변경 * test: calendar 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: calendar 관련 테스트픽스처 메서드명 변경 * test: DeadlineFixture 테스트픽스처 생성 * test: DurationFixture 테스트픽스처 상수 이름 변경 * refactor: calendar 패키지 도메인 리팩토링 및 테스트 보충 * test: calendar 패키지 테스트픽스처 메서드명 변경 * refactor: Schedule 메서드 분리 롤백 * style: Duration 메서드 메서드명 변경 * refactor: ScheduleFixture 메서드 접근제어자 수정 * [BE] 조회 클래스 리팩토링 (#322) * refactor: GroupSpecification 패키지 이동 * fix: 종료여부 확인과정에서 잘못된 쿼리생성 수정 * refactor: 매직넘버 제거 * refactor: 패키지 분리 * style: enum 상수 선언 스타일 수정 * style: 무의미한 빈줄 제거 * [FE] 프로젝트 리팩토링 (#325) * refactor: 라이브러리 수정 - 스토리북 제거 - esbuild loader 추가 * feat: react devtools가 배포 모드에서는 동작하지 않도록 추가 * refactor: API 요청 함수 네이밍 통일 * refactor: 페이지 종속 컴포넌트는 페이지 폴더 하위로 이동 * refactor: 컴포넌트 리팩토링 * refactor: 기타 파일 리팩토링 Co-authored-by: Usage <[email protected]> * [FE] 메인, 상세, 수정 페이지 리팩토링 (#329) * refactor: 메인 페이지 리팩토링 * refactor: 모임 상세 페이지 리팩토링 * style: 모임 상세 페이지 사이드바 스타일링 수정 * style: global input style에 border-box 추가 * refactor: useCreateState 반환값 타입 추가 - 해당 함수의 반환 타입을 재활용할 일이 생겨 타입 추가 * refactor: 모임 수정 모달 리팩토링 및 일부 스타일링 수정 * [FE] OAuth, 생성, 내 모임, 내 정보 페이지 리팩토링 (#330) * refactor: Auth 페이지 리팩토링 * refactor: Create 페이지 리팩토링 * refactor: 추가된 setCapacity 메서드 반영 * fix: 모임 수정시 같은 스케쥴이 중복해서 추가되던 버그 수정 * refactor: 내 모임 페이지 리팩토링 * refactor: 내 정보 페이지 리팩토링 * chore: 코드 리뷰 반영 * [BE] 모임 패키지 리팩터링 및 병합 (#323) * refactor: Group 패키지에 Participant 패키지 통합 * refactor: Calendar 사용하지 않는 레거시 메서드 제거 * refactor: Group#Builder 제거 * refactor: request dto 계층 분리 * refactor: 관심사에 따른 Group Controller 분리 * refactor: 관심사에 따른 Group Service 분리 * refactor: 서비스 계층의 비즈니스 로직을 도메인 계층으로 옮김 * refactor: 사용하지 않는 Group 메서드 제거 * refactor: GroupManageService#update 메서드 개선 * refactor: 사용하지 않는 클래스 제거 * refactor: toString 추가 * refactor: GroupSpecification 리팩터링 * style: Group 메서드 배치 변경 * refactor: GroupFindRequest Boolean 필드타입을 원시타입으로 변경 * refactor: Participants orphanRemoval 설정 * feat: exception 클래스 및 code,message Enum 생성 * feat: Group 도메인 exception 클래스 및 code,message Enum 생성 * test: 인수테스트 예외코드 검증 추가 * test: ParticipantServiceTest 리팩토링 * test: GroupSearchServiceTest 리팩토링 * test: GroupFixture builder 메서드 축약 * test: GroupManageServiceTest 리팩토링 * test: GroupFindServiceTest 리팩토링 * style: 코드 컨벤션 정리 * refactor: Group ErrorCode 세분화 작업 * refactor: Group 도메인 예외처리 세부화 및 ErrorCode 관심사 분리 * style: GroupFindAcceptanceTest 메서드 오타 수정 * test: RestAssured Logging 기능 Profile 설정가능하도록 수정 * style: EOF 추가 * style: static import 처리 * refactor: GroupManageService 템플릿콜백패턴 적용 * refactor: 예외메시지 관리 방식 변경 * ExceptionCode / ExceptionMessage 제거 * GroupErrorCode 활용 * 행위 기반에서 원인 기반으로 예외 메시지 내용 변경 * refactor: Group 검증 예외처리 리팩터링 * refactor: Participants 검증 예외처리 리팩터링 * refactor: OneToMany Fetch.Lazy 제거 (default이므로) * refactor: @EqualsAndHashCode @ToString 설정 * refactor: Group Controller 리팩토링 * refactor: Capacity 내부로 CapacityRange 통합 * refactor: host 칼럼명 명시 * refactor: GroupIdResponse 빈생성자 제거 * refactor: 사용하지 않는 클래스 제거 * test: 인수테스트 @SuppressWarnings("NonAsciiCharacters") 선언 * test: RestHandler 함수형인터페이스 제거 * test: GroupFixture#setDeadlinePast 리팩토링 * refactor: Capacity#isSmallThan 메서드명 변경 * refactor: GroupFindRequest Getter 수정 * refactor: CascadeType.REMOVE 제거 * refactor: Controller 계층 DTO 네이밍 수정 * refactor: Group Controller/Service 네이밍 수정 * refactor: Group#leave 메소드명 수정 * refactor: GroupFindRequest 어노테이션 배치 변경 * test: 무의미한 throws 예외전파 제거 * test: TestConstructor 어노테이션 지정 * style: optimize imports * style: GroupFindService 상수 개행 * [BE] 개발서버 배포가 실패하는 이슈 (#333) * chore: 개발 서버 api 주소 변경 (#334) Co-authored-by: Usage <[email protected]> * [FE] 번들 크기 최적화 (#337) * chore: 필요한 모듈 설치 * chore: copy-webpack-plugin 적용 - 폰트 형식 지원하도록 추가 * feat: 폰트 최적화 * feat: 페이지 지연 로딩 * chore: js 파일명 해시 적용 * chore: 웹팩 정리 Co-authored-by: Usage <[email protected]> * [FE] 렌더링 최적화 (#340) * feat: 모임 카드에 memo 적용 * feat: layout shift 최적화 * refactor: 모임 생성 관련 타입 정리 * chore: 개발 / 배포 모드 빌드 스크립트 작성 * feat: top 버튼 연속 클릭 방지 * style: 스크롤바 커스텀 * feat: 마이페이지 리렌더링 최적화 Co-authored-by: Usage <[email protected]> * fix: webpack-bundle-analayzer 비활성화 (#342) - 우선 임시로 주석 처리 - 빌드가 무한로딩되는 문제가 발생하여 비활성화 * [FE] MSW 비활성화 (#343) fix: MSW 비활성화 Co-authored-by: Usage <[email protected]> * [BE] 조회로직 Specification(Criteria) -> QueryDsl 변경 (#339) * chore: queryDsl 환경설정 Co-authored-by: sinb57 <[email protected]> * chore: build.gradle 문단 구분 Co-authored-by: sinb57 <[email protected]> * refactor: 기본 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 주최한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 참여한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: GroupSearchService에 연동된 GroupRepository를 Criteria에서 QueryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: Specification(Criteria) 제거 Co-authored-by: sinb57 <[email protected]> * style: 잘못된 컨벤션 수정 Co-authored-by: sinb57 <[email protected]> * refactor: 가독성 향상을 위한 변수 추출 Co-authored-by: sinb57 <[email protected]> * refactor: 템플릿 콜백 패턴 적용 Co-authored-by: sinb57 <[email protected]> * style: 개행 컨벤션 통일 Co-authored-by: sinb57 <[email protected]> * refactor: 상수 제거 및 메서드 배치 순서 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition 생성 Co-authored-by: sinb57 <[email protected]> * refactor: 동적 쿼리 생성 방식을 BooleanBuilder 사용으로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition#Getter Optional 적용 Co-authored-by: sinb57 <[email protected]> * refactor: ConditionFilter 클래스 분리 Co-authored-by: sinb57 <[email protected]> * refactor: FinCondition#Getter Optional 제거 Co-authored-by: sinb57 <[email protected]> * refactor: 참여 인원수에 대한 매직넘버에 의미 부여 Co-authored-by: sinb57 <[email protected]> * refactor: 인터페이스 제거 및 클래스명 변경, 패키지 분리 Co-authored-by: sinb57 <[email protected]> * refactor: CQRS 패턴으로 GroupRepository CRUD 분리 Co-authored-by: sinb57 <[email protected]> * refactor: 패키지 구조 및 조회 관련 도메인 이름 수정 Co-authored-by: sinb57 <[email protected]> * refactor: supplier 파라미터명 수정 Co-authored-by: sinb57 <[email protected]> * refactor: GroupManage~ 클래스를 Modify로 변경 Co-authored-by: sinb57 <[email protected]> Co-authored-by: sinb57 <[email protected]> * [FE] 이미지 파일 최적화 feat: 카테고리 이미지 jpg → webp 변환 Co-authored-by: Usage <[email protected]> * [FE] gzip 최적화 (#350) feat: gzip 압축 설정 Co-authored-by: AhhyunLee <[email protected]> * [BE] 구글 OAuth 버그 해결 (#348) * fix: 구글 로그인 요청 시 잘못된 정적 팩토리 메서드 수정 * refactor: 사용하지 않는 메서드 제거 * [BE] 개발서버의 DB 실행 환경 분리 (#355) * [BE] 인덱스 설정을 통한 DB 조회 성능 개선 (#356) * refactor: ConditionFilter#filterByCondition 성능을 고려하여 where절 순서 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 생성 Co-authored-by: nbalance97 <[email protected]> * chore: docker 가이드라인 작성 Co-authored-by: nbalance97 <[email protected]> * chore: .gitignore 업데이트 Co-authored-by: nbalance97 <[email protected]> * chore: local-datasource.yml DB 전환(h2 -> mysql) Co-authored-by: nbalance97 <[email protected]> * chore: docker mysql 접속 자동화 스크립트 Co-authored-by: nbalance97 <[email protected]> * chore: docker README 업데이트 Co-authored-by: nbalance97 <[email protected]> * style: docker sh EOF 추가 Co-authored-by: nbalance97 <[email protected]> * chore: docker container name 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 접속 데이터베이스 지정 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 분리 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 디렉터리 분리 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 수정 Co-authored-by: nbalance97 <[email protected]> * feat: Group 인덱스(deadline) 설정 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 파일명 수정 Co-authored-by: nbalance97 <[email protected]> * chore: docker init.sql 제거 및 local-datasource.yml ddl-auto 수정 Co-authored-by: nbalance97 <[email protected]> * style: .gitignore EOF 추가 Co-authored-by: nbalance97 <[email protected]> Co-authored-by: nbalance97 <[email protected]> * [BE] Group 도메인 N+1 문제 해결 (#358) * refactor: Group-Participants Fetch전략 Eager로 변경 * refactor: Group 도메인 QueryDsl fetchJoin 적용 * chore: index.html 제거 * [BE] 지도 도입에 따른 API, 로직 수정 (#360) * feat: Group도메인의 String 타입의 Location을 값 객체로 변경 * test: Group도메인의 String 타입의 Location을 값 객체로 변경 * feat: 그룹 수정정보에 Location 정보 제거 * feat: 모임 장소 수정 API생성 * test: 모임 장소 수정 기능 테스트 추가 * docs: 모임 장소 수정 restdocs추가 * refactor: location의 detail column name 값 수정 * test: init.sql의 detail column name 값 수정 * [FE] 지도 API 연결 (#362) * chore: 서브모듈 업데이트 * chore: react-daum-postcode 설치 * chore: 카카오맵 설정 추가 * chore: 웹팩에 카카오맵 키 추가 * style: disabled input 글로벌 스타일 추가 - 커서 스타일 추가 * style: 스낵바 z-index 추가 * feat: DaumPostCode 모달 생성 * fix: location 타입 수정 * chore: 카카오맵 타입 추가 * fix: 모임 수정에서 장소 수정 제거 * feat: 모임 생성 시 Postcode 모달을 사용하여 주소를 입력하도록 추가 * feat: 모임 상세 페이지에 카카오맵 추가 * [FE] 찜 기능 구현 (#364) * feat: 메인 페이지 모임 목록에 찜 여부 표시 * feat: 찜하기 / 찜 취소하기 api 추가 * feat: 모임 상세 페이지에 찜하기 플로팅 버튼 구현 - useThrottle 구현 - Top 플로팅 버튼에 useThrottle 적용 * feat: 내 모임의 내가 찜한 모임 탭에 찜한 모임들을 표시 * feat: api 변경 사항 적용 & 상태 변경과 동시에 적용되도록 수정 * fix: 버그 및 css 수정 - dimmer, snackbar z-index 수정 - 2022-08-19 hotfix 내용 복구 * [BE] Oauth2 로그인 실패 해결 (#367) fix: oauth2 로그인 실패 이슈 해결 (임시비밀번호 형식) * [FE] 릴리즈 이전 수정사항 반영 (#369) chore: 수정사항 반영 * [BE] 찜 기능 구현 (#363) * feat: 찜 도메인 구현 Co-authored-by: sinb57 <[email protected]> * feat: 찜하기, 찜 취소 API 구현 * feat: 찜한 모임 조회 API구현 * feat: Authorization 필더를 선택적으로 받도록 하는 어노테이션 생성 * feat: 모임 조회 반환값에 찜 여부 추가 * docs: 모임 찜하기 api추가 Co-authored-by: sinb57 <[email protected]> * [BE] 모임 참여인원이 실제와 다르게 출력되는 현상 해결 (#376) * refactor: findGroups fetchJoin 제거 * refactor: findGroups distinct 추가 * fix: 누락된 from 추가 * [BE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#384) * refactor: Token과 Member연관관계의 JoinColumn 컬럼명 명시 * test: TokenService 메서드 테스트 추가 * test: 토큰 만료시 발생하는 예외 테스트 추가 * refactor: 같은 토큰인지 검증하는 메서드의 반환값 반대로 수정 * [BE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#378) * refactor: 마감여부 인원수로 체크하지 않도록 로직 변경 * refactor: 미사용 메서드 제거 * refactor: 메서드 단일화 * [BE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#379) * refactor: 탈퇴한 회원의 정보 수정 로직 변경 * refactor: 탈퇴한 회원의 이름을 빈값으로 반환 * refactor: GhostMember 클래스명 변경 * refactor: 보여지는 탈퇴한 사용자의 이름 상수화 * [BE] 모집이 마감된 모임에 대하여 찜하기/찜취소 기능 에러가 발생하는 현상 (#386) * test: GroupSearchRepositoryTest 위치 변경 * test: Favorite, Favorites 도메인 테스트 추가 * fix: 마감된 모임을 찜하지 못하던 오류 수정 * fix: 마감된 모임을 찜 취소하지 못하던 오류 수정 * test: 마감된 모임에 대한 찜하기 기능 테스트 추가 * [BE] QueryDSL 이용하여 pagination 할 때 limit 이 설정되지 않는 현상 (#389) * fix: 찜 모임 조회시 Full Scan을 한 후 JVM내에서 페이지내에션을 하던 오류 수정 * refactor: 사용하지 않는 메서드 제거 * [BE] 모집 마감 시간이 지난 모임이 마감되지 않았다고 나타나는 현상 * [BE] 페이지네이션 과정에서 Page의 hasNext()가 잘못 나오는 오류 + 찜 조회 기능 오류 (#400) * fix: 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 좋아요한 그룹의 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 찜한 모임에서 중복된 데이터가 조회되는 오류 수정 * fix: 찜한 모임 조회에서 distinct를 거는 위치 수정 * test: 잘못된 테스트 코드 수정 * fix: 찜한 모임 조회에 중복된 모임이 나오는 에러 해결 * fix: 찜한 모임 조회에 중복된 모임 id를 조회하는 오류 수정 * refactor: 불필요한 leftjoin삭제 * test: 찜한 모임 목록 조회 테스트 추가 * refactor: 찜한 목록 id조회 메서드이 접근 제어자 수정 * 조기마감된 모임에 대한 에러코드가 마감기한이 지나도 동일한 이슈 (#404) refactor: 모임진행 유효성 검증 절차 순서 변경 * [BE] 에러 메시지 축약 (#399) * refactor: MemberErrorCode, MemberException 추가 * refactor: MemberException 에러 해결 * refactor: 회원가입 api 변경 및 Category 에러코드 추가 * refactor: 이외의 에러코드 핸들링 * refactor: 코드 컨벤션 수정 * refactor: 코드 컨벤션 수정 * refactor: 상수명 리셋 * [BE] 도메인(Member, Group) 필드 제약조건 변경 및 검증로직 수정 (#385) * refactor: GroupName 길이 정책 수정 * refactor: Description 길이 정책 적용 * refactor: UserId UserName Password 삭제정책 수정 * refactor: 사용자 아이디 길이 정책 반영 * test: 사용자 아이디 길이 정책 변경에 의한 기존 테스트 픽스처 수정 * refactor: 사용자 닉네임 길이 정책 반영 * refactor: 유효성 메서드명 및 검증 순서 변경 * style: optimize imports * refactor: UserId UserName Password 삭제 로직 수정 * test: MemberTest 추가 * style: EOF 추가 * refactor: 칼럼 길이 제약조건 변경 * refactor: Password Blank 유효성 검증 제거 * refactor: 유효성 검증 순서 변경 Co-authored-by: Seongwon97 <[email protected]> Co-authored-by: AhhyunLee <[email protected]> Co-authored-by: Usage <[email protected]> Co-authored-by: Byunghoon <[email protected]> Co-authored-by: yukong <[email protected]> Co-authored-by: AhhyunLee <[email protected]> Co-authored-by: nbalance97 <[email protected]>
sinb57
added a commit
that referenced
this pull request
Oct 7, 2022
* chore: 스프링 프로젝트 초기 환경구축 * [FE] 프론트엔드 환경 구축 (#8) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * [FE] 프로젝트 환경 세팅 보강 (#12) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * chore: 이미지 웹팩 설정 - file-loader, @svgr/webpack 설치 및 적용 * chore: recoil 설치 * chore: react-query 설치 * chore: msw 설치 Co-authored-by: Usage <[email protected]> * [BE] 모임 도메인 설계 (#16) * feat: 모임 도메인 구조 설계 * feat: 모임 도메인의 기간 정보 원시값 포장 * chore: JPA 의존성 추가 및 환경 설정 * feat: 모임 도메인 JPA 적용 * refactor: 모임 도메인 패키지 분리 * feat: 모임 도메인 Repository 기능 구현 * feat: 누락된 nullable 제약조건 추가 * refactor: Schedules 일급 컬렉션 생성에 따른 로직 변경 * [FE] 메인 페이지 화면 마크업 (#17) * chore: 마크업에 필요한 모듈 설치 - @emotion/styled, emotion-reset * chore: 타입 선언 세분화 - declare.d.ts → global.d.ts로 변경 - image.d.ts 생성 * chore: 웹팩 설정 추가 - historyApiFallback 추가 - 절대경로 추가 * style: globalStyle, theme 생성 * style: 헤더 달린 페이지 레이아웃 생성 * style: 메인 페이지 UI 생성 * style: 헤더 UI 생성 - 푸터 삭제 Co-authored-by: Usage <[email protected]> * [FE] 모임 상세 페이지 화면 마크업 (#18) * chore: 필요한 svg 생성 * style: 모임 상세 페이지 UI 생성 Co-authored-by: Usage <[email protected]> * fix: 모임 도메인 누락된 필드 추가 (#21) * [BE] 모임 API 기능 구현 (#25) * feat: 카테고리 Service 목록 조회 기능 구현 * chore: RestAssured 의존성 추가 * feat: 카테고리 목록 조회 API 구현 * test: Category 인수테스트 리팩토링 * feat: 모임 생성 및 단일 조회 API 구현 * feat: 모임 목록 조회 API 구현 * feat: 모임 변경 API 구현 * feat: 모임 삭제 API 구현 * [BE] 코드 컨벤션 작성 및 imports문 정렬 (#30) * chore: 코드 컨벤션 파일 작성 * style: Optimize imports * [BE] 모임 API 기능 - 일부 인수테스트가 통과하지 않는 이슈 (#32) * chore: 불필요한 설정 제거 * chore: init.sql 파일의 DB 초기화 방식 변경 * [BE] 모임 API 기능 및 테스트 리팩터링 (#33) * refactor: Member와 Group 패키지 분리 * feat: Day에서 발생할 수 있는 예외 처리 로직 작성 * test: 누락된 Day 테스트 추가 * refactor: Category의 상속 클래스 변경 - JpaRepository -> Repository * refactor: Duration에서 발생할 수 있는 예외 처리 로직 작성 * feat: Schedule 레포지토리 생성 * test: 모임 관련 CRUD 테스트 수정 * refactor: TimeRequest 정보를 ScheduleRequest에서 갖도록 수정 * feat: 존재하지 않는 카테고리로 모임 생성시 발생하는 예외 처리 추가 * feat: 모임 조회시 발생할 수 있는 예외 처리 추가 * test: 모임 조회 테스트 추가 * test: 모임 삭제 테스트 코드 추가 - Repository의 deleteById를 통해 schedule도 삭제가 되는지 확인 - Service의 delete 로직 테스트 추가 * refactor: Schedule 내부 값을 요일에서 일자로 변경 * test: API 스펙 변경에 따른 테스트 초기 데이터 수정 * refactor: Group의 regular필드 제거 * refactor: 불필요한 예외 클래스 제거 * test: LocalDate 생성 방식 수정 as-is: LocalDate.parse(start, DateTimeFormatter.ISO_LOCAL_DATE); to-be: LocalDate.of(2020, 5, 8); * style: 코드 컨벤션에 맞게 재정렬 * refactor: 패키지 구조 변경 (#36) * chore: 스프링부트 버전 다운그레이드 및 DB설정 * [FE] 모임 생성 페이지 화면 마크업 (#40) * chore: eslint import order 패턴 추가 * feat: 헤더에 Link 추가 - Link의 기능 수행을 위해 App의 PageLayout을 Router 안으로 이동 * feat: 메인, 모임 상세 화면의 일부 컴포넌트에 데이터를 props로 내려줄 수 있도록 변경 - 데이터 타입 정의 * feat: path 변경 시 스크롤 위치 최상단으로 이동하도록 구현 * style: 모임 생성 페이지에서 각 단계별 마크업 UI 생성 * style: navigator 구성 컴포넌트 UI 생성 * style: 모임 생성 페이지 UI 생성 * style: 전역 스타일 추가 - input 스타일 추가 - 페이지 레이아웃 스타일 추가 Co-authored-by: Usage <[email protected]> * [BE] 회원 기능 구현 (#42) * feat: 멤버 도메인 필드 추가 * chore: validation 의존성 추가 * feat: 회원가입 서비스 로직 구현 * feat: 회원가입 API 구현 * feat: JWT 의존성 추가 및 유틸 클래스 추가 * feat: 로그인 기능 구현 * feat: 로그인 API 구현 * refactor: 로그인 메서드명 수정 - signIn -> login * feat: 회원 정보 조회 기능 구현 * feat: 인증 기능 및 정보조회 API 구현 - 인터셉터와 리졸버 구현 * test: 회원 관련 Controller test 추가 * test: 테스트 격리 * feat: 패스워드 암호화 기능 구현 * feat: 회원 탈퇴 API 구현 * style: 코드 컨벤션 통일 - 불필요한 import 제거 * feat: 패스워드 패턴 검사 추가 * refactor: 잘못된 예외 클래스 변경 * refactor: 로그인 API 반환값 수정 - Location 값 반환 삭제 * test: 회원 삭제 repository 테스트 추가 * refactor: JwtTokenProvider 중복 로직 제거 * refactor: login 메서드명 통일 * style: 불필요한 개행 제거 * test: 비밀번호 암호화 테스트 코드 추가 * refactor: 회원가입 API 명세 변경에 따른 수정 - 회원가입 기능을 auth 패키지로 이동 * test: displayName 형식 통일화 * test: 로그인 성공 테스트 수정 * refactor: sha256encoder messagedigest 상수화 * refactor: 비밀번호 패턴 에러 메시지 수정 * [BE] 회원 정보 수정 기능 구현 (#46) Co-authored-by: Seongwon97 <[email protected]> * [BE] 모임 API 기능 및 테스트 리팩터링 (#41) * test: 통과하지 않는 인수테스트 해결 * refactor: Category Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Request Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Member Response Assembler 를 통한 DTO 매핑 로직 분리 * chore: data.sql 생성을 통한 카테고리 초기값 저장 * refactor: Schedules 제거 * refactor: Group Builder 패턴 적용 * refactor: 카테고리 "전체" 항목 제거 * refactor: Duration 정적 팩토리 메서드 생성 * refactor: Schedule 정적 팩토리 메서드 생성 * refactor: Category enum 으로 대체 및 테스트 리팩토링 * refactor: ScheduleRepository 제거 * refactor: Group 과 Schedule 의 양방향 연관관계를 단방향으로 수정 * style: Cleanup Code * test: Group Repository 테스트 코드 수정 * test: Category Service 테스트 코드 수정 * feat: Duration 도메인 날짜 형식 검증 추가 * feat: Schedule 도메인 날짜 및 시간 형식 검증 추가 * test: 테스트 독립성 보장 - Group 인수테스트에서 저장된 데이터가 DB에 남아있어, 다른 테스트에 영향을 주는 문제 발생 - Group 인수테스트에 truncate 로직을 AFTER_EACH_METHOD로 지정하여 해결 * feat: Schedule 시간값 검증 로직 추가 * test: Category 인수테스트 수정 * refactor: RestAssuredConvenienceMethod 클래스 이름 변경 * refactor: Category getAll() 메서드 제거 * refactor: 정적 팩토리 메서드 및 시간 형식 검증 제거 * refactor: Schedule 정적 팩토리 메서드 제거 * refactor: Schedule 날짜 및 시간 형식 검증 로직 제거 * refactor: Duration 정적 팩토리 메서드 제거 * refactor: Duration 날짜 및 시간 형식 검증 로직 제거 * test: Duration, Schedule 픽스처 분리 * refactor: DTO 응답 객체에서 @NoArgsConstructor 제거 * refactor: 엔티티 Constructor 어노테이션 수정 * style: 불필요한 import 제거 * test: 매직넘버 제거 * test: GroupRepositoryTest 영속성 컨텍스트 DB 동기화 * refactor: merge conflict 해결 Co-authored-by: sinb57 <[email protected]> Co-authored-by: Seongwon97 <[email protected]> * [FE] 카테고리 API 연결 (#50) * chore: 절대경로 추가 - store * feat: 카테고리 axios 요청 추가 * feat: 카테고리 API mocking * feat: 카테고리 커스텀훅 구현 - useRecoilQuery, useCategory * feat: 데이터 타입 추가 * feat: 컴포넌트에서 카테고리 요청 부분 추가 * feat: recoil 카테고리 상태 추가 Co-authored-by: Usage <[email protected]> * [FE] 모임 생성 페이지 기능 구현 (#52) * feat: 모임 생성 페이지 커스텀훅 구현 - useCreateState * style: 모임 생성 페이지에서 공용으로 사용하는 스타일 추가 * chore: 모임 생성 규칙, 에러 메시지 상수화 * feat: 모임 생성 페이지에서 사용된 함수 utils로 분리 - isEqualObject - date utils - PageError 클래스 → ✨ OUR CUSTOM ERROR ✨ * feat: 모임 생성 Step1 * feat: 모임 생성 Step3 * feat: 모임 생성 Step4 * feat: 모임 생성 Step5 * feat: 모임 생성 Step6 * feat: 모임 생성 Step7 * style: svg 리소스 추가 * style: Dot 컴포넌트 props 수정 - color → isFocused, theme * feat: Navigator 컴포넌트 생성 * feat: 모임 생성 입력 데이터에 대한 유효성 검사 * feat: 모임 생성 페이지 기능 연결 * feat: 모임 기능 API mocking * feat: 모임 생성 요청 시 보낼 데이터 추가 * style: complete svg에서 사용하지 않는 스타일링 삭제 * style: Navigator의 사이드 버튼 스타일링 추가 - complete 시 크기 차이로 인해 navigator가 움직이던 부분 해결 Co-authored-by: Usage <[email protected]> * [BE] 인증 RestDocs 적용 (#56) * chore: restdocs 의존성 추가 * feat: AuthControllerTest restdocs 적용 및 관련 gradle 수정 * [ALL] .gitignore 설정 추가 (#59) * chore: .gitignore 설정 추가 * chore: .gitignore EOF 추가 * [FE] 메인 페이지 기능 구현 (#62) * chore: 카테고리 이미지 업로드 * feat: 카테고리에 맞게 이미지를 가져오는 함수 생성 * feat: 마감 기간까지의 시간 추출 함수 생성 * feat: 메인 페이지의 모임 카드 스타일 변경 - 카테고리 이미지로 변경 - 마감 기간 변경 * style: 메인 페이지의 카테고리 스타일 변경 * style: 헤더 스타일 변경 * style: 메인 페이지의 검색 섹션 스타일 변경 - 배경 이미지 삭제 - 검색 버튼 텍스트 변경 * feat: MSW를 사용한 모임 API mocking * refactor: 모임 생성 시 보내는 데이터 타입 선언 * feat: 메인 페이지 모임 목록 조회 API 연결 Co-authored-by: Usage <[email protected]> * [BE] Annotation 기반의 Interceptor를 통한 API 인증 처리 (#61) * feat: Annotation 기반의 인증 인터셉터 구현 * feat: 인증이 필요한 API 에 @Authenticated 어노테이션 설정 * [BE] 누락된 Controller 테스트 작성 (#65) * feat: CategoryController 테스트 작성 * feat: GroupController 테스트 작성 * feat: MemberController 테스트 작성 * [BE] 실패 테스트 코드 수정 (#67) * [FE] 모임 상세 페이지 기능 구현 (#69) * feat: 모임 상세 정보 요청 함수 생성 - 모임 생성 요청 함수에 리턴 값 추가 * chore: 지도 이미지 업로드 * style: theme에 filter prop 추가 - Theme 내부에 Record 적용 * refactor: mock data 수정 * fix: category의 id 타입 변경 * style: 모임 상세 페이지 이미지 추가 - 이미지에 필터 적용 * style: 모임 상세 페이지 스타일 변경 - 마감 기간 문구 수정 - 지도 이미지 추가 * feat: 카테고리명을 props로 전달하도록 변경 * feat: 모임 상세 페이지에 모임 상세정보 조회 API 적용 Co-authored-by: Usage <[email protected]> * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * [FE] 환경설정 추가 (#75) * chore: webpack 설정 추가 - output에 publicPath 추가 * chore: MSW warning option off * style: Global style 추가 - useTheme 사용 - textarea global style 추가 Co-authored-by: Usage <[email protected]> * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * [FE] 모임 삭제 기능 구현 (#79) * feat: 모임 삭제 API 구현 * style: 모임 삭제 버튼 스타일 변경 * feat: 모임 삭제 관련 메시지 생성 Co-authored-by: Usage <[email protected]> * [BE] RestDocs 적용하기 (#70) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * refactor: 카테고리 목록 조회 테스트명 수정 * refactor: index.adoc 오타 및 깨진 글자 수정 Co-authored-by: yukong <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> * [BE] 조회 로직 리팩토링 (#82) * [FE] 모달 구현 (#84) * feat: 모달 상태 Recoil에 저장 - 모달 상태 타입 정의 * feat: 클릭 이벤트 시 발생하는 버블링 막는 유틸 함수 구현 * feat: 모달 레이아웃 구현 - 포탈 사용 * feat: 로그인, 회원가입 모달 구현 - 헤더에 바인딩 Co-authored-by: Usage <[email protected]> * [BE] CI Github Action 오류 수정 (#86) * [BE] CORS 설정 변경 및 preflight 처리 (#90) * feat: CORS 설정 추가 * feat: interceptor preflight 설정 추가 * refactor: 불필요한 interceptor checking 제거 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] CORS 및 RestDocs 경로 패턴 설정 수정 (#93) * refactor: CORS 설정을 전역 Configuration 으로 클래스 분리 * refactor: RestDocs 설정 URL 패턴 적용 수정 * refactor: CORS 허용 메서드 지정 * refactor: WebConfig 클래스명 수정 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [FE] 회원가입 기능 구현 (#95) * chore: 로그인, 회원가입 모달 컴포넌트 삭제 * feat: 로그인, 회원가입 API 요청 함수 생성 * style: 모달에 그림자 추가 * chore: 로그인, 회원가입에 사용하는 상수 선언 - API 경로 → path - 메시지 * feat: useInput 커스텀훅 생성 * feat: User 타입 정의 * feat: 회원가입 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 로그인 기능 구현 (#97) * feat: access token 관리처 구현 - recoil selector 사용 - session storage에서 관리하도록 구현 * feat: 로그인 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원정보가 필요한 API 변경 (#101) * feat: 모임 생성, 삭제 요청 API 헤더에 accessToken 저장 * feat: 로그아웃 기능 구현 - 로그인 상태를 recoil에 저장 Co-authored-by: Usage <[email protected]> * [BE] JSON DateTime 형식 불일치로 인한 에러 발생 * [BE] 더미 데이터 작성 (#102) * chore: jpa 데이터 initialization 세팅 * feat: 더미데이터 추가 * feat: Category 문화생활 추가 * test: category 개수 수정에 따른 테스트 변경 * test: test yml 수정 및 repository 테스트 에러 해결 * [BE] 모임 목록 조회 API 형식 불일치 에러 발생 (#104) * feat: 모임 목록 조회를 위한 DTO 생성 * refactor: 모임 상세 조회 DTO 클래스명 변경 * style: Optimize Imports * [FE] 모임 참여자 목록 조회 기능 구현 (#106) * feat: 상수화 - 키, path * feat: 타입 선언 - UserProfile, GroupParticipants * feat: 참여자 목록 조회 API 생성 * feat: 참여자 목록 조회 기능 구현 Co-authored-by: Usage <[email protected]> * [BE] 인수테스트 리팩토링 (#109) * test: RestHandler 메서드명 통일 * test: RestHandler 사용하지 않는 메서드 제거 * test: AuthRestHandler, User 를 통한 인수테스트 리팩터링 * test: 인수테스트 DisplayName 수정 * test: Category 인수테스트 리팩토링 * test: Member 인수테스트 DisplayName 수정 * test: 모임 인수테스트 및 참여 인수테스트 리팩토링 * test: RestHandler 를 상속받은 각 도메인별 유틸성 클래스 생성 * test: GroupFixture 생성을 통한 모임 인수테스트 리팩토링 * test: 모임 CRUD 기능에 따라 인수테스트 클래스 분리 * test: MemberFixture 생성을 통한 인증/회원 인수테스트 리팩토링 * test: 테스트픽스처 클래스를 Enum 으로 변경 및 픽스처 패키지 분리 * test: truncate.sql 파일에 momo_participant 테이블 추가 * chore: init.sql, build.gradle 수정 * test: 불필요한 요소(제네릭) 제거 및 컨벤션 정리 * chore: api 명세 html 파일 빌드 생성 * chore: application.yml 불필요한 설정 제거 * style: application.yml 컨벤션 정리 * refactor: GroupResponse DTO 클래스명 변경 * test: API RestHandler 메서드명 통일 (~한다) * refactor: Optimize Annotation 및 사용하지 않는 클래스 제거 * test: DurationFixture 인스턴스 관리 방식 변경 * test: 테스트 픽스처 인스턴스 생성 방식 리팩토링 * [BE] 모임 참여 신청 시 주최자일 경우 예외 처리 추가 (#113) * refactor: 인수테스트 리팩토링 코드 추가 * refactor: 모임 참여 검증 로직 분리 * refactor: 리팩토링에 맞춰 참여자 인수테스트 추가 및 수정 * [FE] 달력 컴포넌트 구현 (#117) * feat: 달력 컴포넌트 생성 - 전달된 연도와 월을 바탕으로 해당 월의 달력만 보여주는 방식 * feat: 달력 커스텀훅 생성 - 전달된 연도와 월을 바탕으로 해당 월에서 보여질 일 수(지난달, 이번달, 다음달)를 계산하여 반환 * feat: 이전, 다음 월로 넘어가는 기능 추가 - props로 해당 함수를 전달받도록 구현 * feat: 달력 사이즈 추가 - medium, large * feat: 달력에 오늘 날짜를 표시하는 부분 추가 * style: 달력에 토, 일요일 구분 색깔 추가 * style: 각 일에 padding 추가 * refactor: dayLength → totalOfDay로 변수 네이밍 변경 * refactor: useCalendar 변수명 변경 - https://github.com/woowacourse-teams/2022-momo/pull/117#discussion_r930740289 * [FE] Suspense, ErrorBoundary 구현 (#118) * feat: ErrorBoundary 컴포넌트 구현 * refactor: 메인 페이지 section 분리 - 추천 모임 리스트 분리 * feat: ErrorBoundary 적용 * chore: lottie 설치 - react-lottie - @types/react-lottie * feat: Spinner 컴포넌트 구현 * feat: Loading 컴포넌트 구현 * feat: useRecoilQuery에 suspense옵션 추가 * feat: suspense 적용 * chore: 코드 리뷰 반영 - 스피너 애니메이션 색 변경 - css 스타일 컨벤션에 맞게 수정 - 절대경로 import 사용 * [FE] 모임 생성 페이지에 최대 인원 입력 추가 (#122) * feat: 모임 생성 Step3 컴포넌트 생성 - Step3가 추가됨에 따라 기존의 Step3~7을 Step4~8로 변경 * feat: 모임 생성 인원 관련 규칙 추가 * feat: 모임 생성 상태에 최대 인원 추가 * feat: 최대 인원 입력 기능 구현 * fix: 제거하지 않은 defaultValue 제거 * feat: Step3에 props 넘기는 부분 추가 * feat: 최대 인원 유효성 검사 추가 - 기존에 있던 ValidatorProps를 CreateGroupData로 대체 * feat: 모임 데이터 타입에 최대 인원 추가 * feat: 모임 생성 요청에 최대 인원 추가 - 입력되지 않았을 경우, 현재 최대 인원 입력의 최대값인 99로 요청이 가도록 구현 * feat: Step3 컴포넌트에 memo 추가 * refactor: Step4~8 컴포넌트 이름 변경 - https://github.com/woowacourse-teams/2022-momo/pull/122#discussion_r931838328 * [FE] 404 페이지 구현 (#126) * feat: NotFound 애니메이션 컴포넌트 구현 * feat: NotFound 페이지 구현 * feat: 404 Page 라우팅 적용 * refactor: Page 프리픽스 제거 * [FE] lottie-react 버젼 충돌 이슈 해결 (#128) * chore: lottie 라이브러리 교체 - react-lottie 제거 - lottie-react 설치 * refactor: lottie 라이브러리 변경 적용 * [BE] 모임 인원 제한 추가 (#125) * feat: 모임 최대 인원 정보 추가 * feat: 모임 정원 초과시 참여 제한 로직 추가 * refactor: 모임 객체가 hostId가 아닌 Member객체를 갖도록 수정 * feat: 모임 생성시 Host가 참가자로 저장되도록 로직 추가 - 기존에는 모임 생성시 Host가 참가자로 등록되지 않았는데 해당 로직을 추가하며 문제를 해결하였다. * refactor: 참가 검증 로직을 도메인으로 이동 - 호스트가 참가자인지 체크하는 테스트 제거 * refactor: 참가 최대 인원 변수명 수정 - maxOfParticipants -> capacity * refactor: 축약 가능한 람다 표현식 축약 * style: 정렬되지 않은 쿼리문 정렬 * refactor: 메서드 네이밍 수정 * refactor: GroupResponseAssembler의 불필요한 메서드 매개변수 제거 * refactor: host필드의 불필요한 JoinColumn 설정 제거 * refactor: requestDTO의 capacity를 Wrapper클래스로 변경 * feat: 모임 정원 값에 대한 유효성 검사 추가 * test: 모임 정원 초과 테스트 로직 수정 * feat: API 변경에 따른 모임 정원 필드 추가 * refactor: Response DTO의 ID값을 Wrapper class로 통일 * refactor: 재참여 검증 메서드명 수정 - validateReParticipant -> validateReParticipate * refactor: 모임 정원 상수 로직 분리 * test: 모임 정원 유효성 테스트 추가 * [BE] 패치지 계층 수정 및 코드 컨벤션 수정 (#134) * refactor: 패키지 계층 통일 - DTO 패키지를 Serive내로 이동 * style: 코드 컨벤션 수정 * [FE] 모달 애니메이션 추가 (#131) * style: 모달 애니메이션 추가 - 열고 닫는 애니메이션을 0.3초씩 재생하도록 추가 * refactor: 모달 애니메이션 재생 시간 상수화 - 스타일링 컴포넌트에서 props로 받도록 변경 * [BE] 모임 전체 조회 반환값에 현재 참여자 수 추가 (#140) * feat: 모임 전체 조회 API 반환값에 참가자 수 추가 * refactor: 불필요한 메서드 분리 제거 * [BE] 회원 필드 변경 (#138) * refactor: 회원의 email 필드를 userId 필드로 변경 * refactor: 학습 테스트 목적의 로직 제거 * style: optimize spaces * refactor: 아이디 형식 검증 로직 추가 * [FE] 메인, 모임 상세 페이지에 해당 모임의 최대 인원 및 현재 모인 인원 수 추가 (#139) * feat: 메인 페이지에 모임 인원 수 추가 - 현재 모임에 모인 사람의 수는 아직 모임 전체 목록 조회 API에 추가되지 않았으므로, 임시로 모임 참여자 목록 API를 사용하도록 대체 * feat: 모임 상세 페이지에 모임 인원 수 추가 * fix: API 변경에 따라 메인 페이지에서 현재 모임의 참여 인원 수를 가져오는 방식 변경 * fix: 모임 상세 페이지에서 참여자 수에 1을 더하는 부분 삭제 * [FE] 회원 정보 수정 기능 구현 (#141) * chore: info 페이지의 asset 추가 * feat: useInput 훅에 setValue output 추가 * feat: UserInfo type, query key 설정 * feat: 회원 정보 수정 기능 구현 * chore: 피드백 반영 * [FE] 모임 참여 기능 구현 (#144) * feat: 모임 참여, 취소 요청 API 생성 * style: 색상 추가 * feat: 모임 참여 신청, 취소 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원 탈퇴 기능 구현 (#143) * refactor: api 명세 수정에 따른 변경 적용 - email -> userId 로 변경 * feat: 회원 탈퇴 기능 구현 * feat: 회원 탈퇴 기능 적용 * refactor: 피드백 반영 * [FE] 모임 참여 시 header가 제대로 보내지지 않는 오류 해결 (#147) * fix: post 요청 시 header를 제대로 보내도록 수정 Co-authored-by: Usage <[email protected]> * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [FE] 모임 생성, 상세 페이지에 달력 추가 (#156) * style: 달력 스타일 변경 - 레이아웃이 깨지는 부분 변경 * feat: useDate 커스텀훅 생성 - 달력을 보여줄 때 사용할 상태와 함수 반환 * feat: 모임 생성 페이지에 달력 삽입 - large 사이즈 * style: 달력 컴포넌트 스타일 변경 - transform-origin 추가 - medium 사이즈일 때 scale을 0.5 → 0.7로 변경 * style: 모임 생성 페이지 달력에 max-width 부여 * feat: 모임 상세 페이지에 달력 추가 * style: 모임 생성 페이지 달력 너비 변경 * style: aspect-ratio 축약 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * [FE] 회원가입, 로그인 시 유효성 검사 및 에러 메시지 세분화 (#161) * feat: 로그인, 회원가입 에러 컨트롤러 구현 * feat: 회원가입 유효성 검증 함수 구현 * feat: 회원가입 실시간 유효성 검증 UI 구현 * feat: 로그인 에러 세분화 및 리팩토링 - 에러 컨트롤러 적용 - 비제어 컴포넌트로 변경 * refactor: 코드 리뷰 반영 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * [FE] 바뀐 모임 목록 API에 맞게 변경 (#166) * refactor: DetailData → GroupDetailData로 네이밍 변경 * refactor: Group → GroupSummary로 네이밍 변경 * feat: 모임 목록 API에 맞게 변경 Co-authored-by: Usage <[email protected]> * [BE] 로그 기능 추가 (#155) * chore: AOP 의존성 추가 * feat: console 창에 로그 남기는 기능 구현 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * chore: JPA SQL 로깅 기능 비활성화 * fix: 삭제한 메서드 테스트 제거 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * refactor: 파일에 로그가 적히는 시간 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * chore: AOP 의존성 추가 * refactor: 이전 PR 내용 적용 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * fix: 삭제한 메서드 테스트 제거 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * refactor: 파일에 로그가 적히는 시간 추가 * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * refactor: 사용자 픽스쳐 수정 Co-authored-by: Byunghoon <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: pageNumber 필드 추가 (#169) * [BE] 모임 수정 로직 추가 및 회원정보 조회 API 반환값 수정 (#168) * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * refactor: pageNumber 필드 추가 (#169) * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 Co-authored-by: Byunghoon <[email protected]> * [FE] 무한 스크롤 구현 (#170) * feat: GroupList 타입에 pageNumber 추가 * feat: 모임 목록 API 요청 함수 변경 - 요청 링크 변경 * feat: 모임 목록 무한스크롤 구현 Co-authored-by: Usage <[email protected]> * [FE] 전체적인 UI 개선 (#172) * refactor: react query에서 isError 제거 - 에러 컨트롤을 에러 바운더리로 대체 * feat: 회원가입 UI 수정 - 회원가입 성공 시, 로그인 모달로 이동 & input 초기화 * chore: package-lock.json 업로드 * refactor: 로그아웃 컨펌 메시지 분리 * feat: 로그인 상태에 따른 헤더 메뉴 변경 * refactor: API 요청 함수 반환 타입 명시 * refactor: 기존 타입을 사용하도록 변경 * style: css 수정 Co-authored-by: Usage <[email protected]> * [FE] 에러 바운더리 fallback 컴포넌트 수정 (#174) * chore: fallback 애니메이션 추가 * feat: 에러 바운더리 컴포넌트를 유연하게 변경 - fallback UI props 추가 * feat: 카테고리 fallback UI 구현 * chore: 기본 fallback UI style 변경 - border-radius 적용 * [BE] 사용자가 참여한 그룹 목록 조회 api 구현 (#176) * feat: 본인이 참여하는 모임 조회 기능 구현 * test: 본인이 참여하는 모임 조회 기능 테스트 작성 * refactor: 본인이 참여하는 모임 조회 adoc 파일에 추가 * refactor: 본인이 참여하는 모임 테스트 변경 * refactor: 불필요한 import문 제거 * [BE] 서브모듈 도입 (#175) * chore: git submodule 을 통한 중요파일 분리 * chore: workflow 파일 수정 * [FE] 달력에 선택된 날짜를 보여줄 수 있는 기능 추가 (#178) * feat: 시간 정제 함수 생성 - 00:00:00 형태로 들어오는 시간을 **시 **분으로 정제하여 반환 * feat: 모임 생성 시의 입력 상태에 schedules 추가 * style: 달력 css 수정 - transform-origin 제거 * feat: 스케줄로 선택된 날짜와 아닌 날짜 분기 처리 * feat: 선택된 날짜 컴포넌트 생성 - 색상 변경 - 호버링 시 조그맣게 시간 모달 * refactor: isHovering → isHover로 변경 * [FE] 모임 모집 마감 기능 구현 (#181) * feat: 모임 모집 마감 관련 상수화 * feat: 모임 모집 마감 요청 API 함수 생성 * feat: 모임 모집 마감 기능 구현 * [FE] utils 함수 테스트 코드 작성 (#183) * chore: jest 설치 및 명령어 설정 * refactor: 시간 단위 상수화 * test: date 함수 단위 테스트 작성 * [FE] 해당 모임에 대한 사용자의 역할 판단 로직 추가 (#185) * fix: 로그인 요청 시 받아오는 데이터의 타입 변경 * feat: 로그인 시 리코일에 저장하는 기능 추가 * feat: 내 정보 페이지에서 로그인한 사용자의 정보를 가져오는 방법 수정 - 기존에 API 요청을 통해 가져왔다면, 저장된 리코일의 정보를 가져오도록 수정 * feat: 현재 로그인한 사용자가 호스트인지 판단하는 로직 추가 * feat: 현재 로그인한 사용자가 모임의 참여자인지 판단하는 로직 추가 * fix: 참여자 목록에서 호스트를 제외한 사람만 구분하여 보여줄 수 있도록 변경 * [BE] 배포서버 데이터베이스 변경 (to Mysql) (#188) * chore: application.yml 계층 단순화 및 mysql 연동 * chore: data.sql 파일 제거 * [FE] 로그인 시 회원정보를 제대로 가져오지 못하는 오류 해결 (#190) * fix: access token 저장 후 사용자 정보를 요청하도록 순서 변경 * chore: package-lock 업로드 * feat: 모임 참여 신청, 취소, 모집 마감 시에 데이터 최신화 기능 추가 (#191) * chore: API 주소 업데이트 (#194) Co-authored-by: Usage <[email protected]> * [BE] 배포 서버 재시작 시 DB 초기화되는 현상 발생 (#199) * chore: submodule 업데이트 * chore: 쿼리 로깅 기능 비활성화 * [FE] 모임 생성 시 상세 일정 입력 기능 추가 (#200) * style: input disabled 스타일 추가 * feat: 생성 페이지에서 duration 구성하여 전달하도록 추가 * style: 달력에 스타일 추가 - 애니메이션 - disabled date * feat: 달력 기능 추가 구현 - duration이 있을 경우, duration이 아닌 날짜는 disabled 처리 - 날짜를 선택하는 기능 - 선택된 날짜를 보여주는 기능 * feat: 세부 일정 입력 기능 구현 - 달력의 날짜를 선택하여 일정 입력 - api에 일정 추가 Co-authored-by: Usage <[email protected]> * [FE] 마감된 모임에 대해 상태 반영 (#192) * feat: 모임 상세 데이터에 finish 타입 추가 * feat: 모집 종료 버튼 구현 * chore: 코드 리뷰 반영 * feat: 설명이 없는 모임은 description 영역 제거 * feat: 모집 마감시 DetailContent에 표시 * feat: 마감된 모임은 메인 화면에서 마감 표시 * [FE] 달력 일정 호버 시 모달에 겹치면 모달이 계속 여닫히는 오류 해결 (#202) * feat: 시간 모달에 호버 시 모달이 꺼지지 않는 기능 추가 * refactor: 함수 네이밍 변경 - toggleHovering → changeHoverState * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * fix: 무한 스크롤 시 마지막 페이지의 데이터를 보여주도록 추가 (#208) * [BE] 에러코드 추가 (#204) * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * refactor: 리뷰 반영 Co-authored-by: yukong <[email protected]> * fix: 오늘 날짜 하이라이팅 우선순위 변경 (#215) - 선택할 경우 > 오늘일 경우 * fix: getNewDateString에 한국 시간대 적용 (#217) * [BE] Google Oauth2 연동 (#213) * feat: Google Oauth 요청을 책임지는 Support 클래스 구현 * feat: Google Oauth 로그인 기능 구현 * test: Google Oauth 테스트코드 작성 * chore: application.yml 관심사 분리 및 profile 간의 중복 제거 * chore: rest docs api 문서화 생성 * chore: security 서브모듈 업데이트 * chore: security 서브모듈 업데이트 * feat: GoogleProvider 필드 불변성 보장 * refactor: OauthService 필드명 변경 * refactor: OauthService 필드명 변경 * refactor: 사용하지 않는 클래스 제거 * refactor: MemberResponse 빈생성자 어노테이션 추가 * refactor: MemberRepository#findByUserId 반환타입을 Optional로 변환 * style: 변수명 오타 수정 * refactor: MemberResponse 빈생성자의 접근제어자 private으로 지정 * refactor: OauthController#access api의 반환값을 dto로 매핑 * refactor: Oauth에 대한 에러코드 작성 및 예외처리 * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#225) * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#227) * [BE] 모임 수정, 모임 삭제 기능을 참여자가 없을 경우에만 가능하도록 변경 (#222) * refactor: 모임 삭제 시 주최자 외 참여자가 있을 경우 삭제 불가능 * refactor: 모임 수정 시 주최자 외 참여자가 있을 경우 수정 불가능 * refactor: 모임 수정 시 이름도 수정 가능하게 변경 * refactor: 메서드명 수정 * refactor: 공통 로직 메서드로 분리 * test: 검증 라이브러리를 JUnit 에서 AssertJ 로 변경 * refactor: 처리하지 못한 예외에 한해 로그 작성 * [FE] 메인 페이지 UI 개선 (#229) * style: 메인 페이지 카테고리 UI 변경 * style: 모임이 없을 경우의 UI 추가 * feat: MSW 전체 모임 목록 코드 업데이트 * feat: 다음 페이지가 없을 때는 요청을 보내지 않도록 추가 - 페이지 번호와 모임 목록 데이터를 업데이트하는 부분 분리 * feat: 모임 목록 데이터를 가져오는 중이라면 로딩 바를 보여주도록 추가 - 이를 위해 isLoading → isFetching을 사용하도록 변경 * style: 카드 이미지를 img 태그에서 background로 변경 * style: 마감 완료된 모임에 대해 회색 필터링 적용 * style: 페이지 레이아웃 너비 변경 - 100vw로 설정 시 가로 스크롤이 생기므로 100%로 변경 * style: 모임 목록 컨테이너 스타일링 추가 * style: 메인 페이지 사용하지 않는 스타일링 제거 * style: 카드 호버 시 살짝 커지도록 추가 * fix: 모임이 없을 경우의 UI 가운데 정렬 * fix: Wrapper → Container로 변경 * [FE] TOP 버튼 구현 feat: TOP 버튼 구현 (#231) - 메인 페이지에 추가 * [FE] 모임 생성에서 모임 시작 기간이 끝 기간을 넘어가면 끝 기간을 맞춰서 연장하도록 수정 (#233) * fix: 시작 날짜 선택 함수 변경 - 시작 날짜가 종료 날짜보다 작으면 종료 날짜를 변경하도록 수정 * refactor: 필요없는 코드 제거 * [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 (#235) * refactor: Oauth Redirect URI 생성방식 개선 * style: 오타 수정 * refactor: 관심사에 따른 Configuration 분리 * refactor: 구글 Oauth AccessToken 요청에 사용되는 redirect_url 형성 방식 개선 * chore: submodule update * [FE] 환경변수 설정 (#237) * chore: webpack-merge dotenv 설치 - npm scripts 변경 * chore: gitignore에 env 추가 * chore: webpack 모드 설정 - common, development, production * refactor: base url 환경변수로 이전 Co-authored-by: Usage <[email protected]> * [BE] 리프레시 토큰 구현 (#238) * feat: 리프레시 토큰 발급 로직 구현 * feat: 리프레시 토큰을 담을 Entity와 Repository 구현 * rebase develop-be - [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 * feat: 리프레시토큰에 누락된 Payload값 추가 * style: RefreshToken 클래스명을 Token으로 변경 * feat: 엑세스 토큰 재발급 로직 구현 * feat: 리프레시 토큰을 검증하는 인터셉터 구현 * feat: 로그인시 리프레시토큰 값을 DB에 저장하는 로직 추가 * feat: 엑세스 토큰을 재발급받는 API 구현 * test: 리프레시 토큰을 통한 엑세스 토큰 발급 인수 테스트 추가 * refactor: DB 값을 업데이트하는 로그인 로직에 누락된 트랜잭션 어노테이션 추가 * refactor: DB에 저장된 리프레시토큰 값과 다를 경우 예외가 발생하도록 로직 수정 * refactor: 토큰의 유효기간을 서브모듈에서 읽어오도록 변수 수정 * chore: 서브모듈 버전 업데이트 * feat: token객체가 Member 객체를 갖도록 수정 * refactor: 리프레시토큰 값 동기화 메서드 분리 * test: 잘못된 테스트 코드 수정 * refactor: Optional의 기본 기능을 사용하도록 수정 * feat: 로그아웃시 API 구현 * style: 메서드명 오타 수정 * test: 컨트롤러 테스트의 responseField제거 * test: 인수 테스트의 static 메서드의 prefix제거 * refactor: 리프레시토큰 api 수정 * [BE] 모임 탈퇴 기능 구현 (#240) * feat: 모임 탈퇴 기능 구현 * feat: 주최자는 모임 탈퇴 불가능 * feat: 모임에 참여자가 아닐 경우 모임 탈퇴 불가능 * feat: 모집이 마감된 모임의 탈퇴 불가능 * feat: 조기 종료된 모임에 탈퇴 불가능 * refactor: 메서드 변경 및 메서드 추출 * refactor: import 형식 변경 * [FE] 환경 변수 서브 모듈화 (#243) * chore: 서브모듈 등록 * fix: 환경 변수 파일 경로 수정 * [BE] Oauth 인증 - Redirect Uri 전달받도록 변경 (#241) * refactor: Oauth Redirect Uri, 파싱하지 않고 전달받는 방식으로 변경 * chore: index.html 업데이트 * chore: submodule 업데이트 * chore: index.html 업데이트 * [FE] 모임 생성 페이지에서 각 스텝에 대해 모달로 띄워주는 호버 이벤트 추가 (#244) feat: 모임 생성 페이지에서 각 스텝별 모달 추가 * [BE] 로그인기능 실패 오류 수정 (#248) * fix: 로그인시 DB에 접근이 되지 않던 오류 수정 * test: 테스트의 sql쿼리문에 token 테이블 정보 추가 * docs: restDocs에 리프레시 토큰관련 API 추가 * fix: production mode env 파일 경로 수정 (#252) * [BE] OAuth 로그인기능 실패 오류 수정 (#254) * [FE] 헤더에 로그인 정보 Dropdown 추가 (#253) * refactor: assets 폴더 정리 * style: TOP 버튼 내용을 svg로 변경 * feat: useClosingState 커스텀훅 생성 - 닫는 애니메이션을 보여주기 위해 닫는 과정을 지연시키는 커스텀훅 - 기존에 사용하던 모달 컴포넌트에서 커스텀훅으로 분리 * feat: 헤더에 현재 로그인한 사용자 메뉴를 드롭다운으로 추가 * fix: 헤더 고정을 sticky → fixed로 변경 - 헤더 영역 확보를 위해 헤더 밑 내용에도 padding 적용 * [FE] Google OAuth 로그인 구현 (#255) * chore: google login svg 추가 * feat: google 로그인 api 구현 * feat: 구글 로그인 UI 구현 * feat: 구글 로그인 리다이렉션 페이지 구현 * feat: 회원가입 바로가기 링크 추가 * refactor: 피드백 반영 * [BE] 이미지 업로드 기능 구현 (#246) * feat: file upload/save 컨트롤러 작성 * feat: file upload/save 서비스 기능구현 * feat: 파일 업로드 테스트 작성 * refactor: displayname 추가 * refactor: test restdocs 추가 * refactor: test restdocs 누락된 어노테이션과 adoc 추가 * refactor: api 네이밍 변경 * feat: 이미지 확장자 검증 추가 * refactor: 리뷰 반영 * refactor: MomoException으로 변환 * refactor: 불필요 주석 제거 * refactor: 컨벤션 맞추어서 코드 수정 * [BE] SonarQube 서버 구축 및 Github Actions PR 연동 * [FE] 스낵바 구현 (#264) * feat: 포탈에 스낵바 추가 * feat: 리코일에 스낵바 상태 추가 - isShowing, message * feat: useSnackbar 커스텀훅 생성 - setMessage, resetSnackbar 함수 존재 * refactor: useClosingState 타입 변경 - Function → () => void로 명시 * feat: 스낵바 컴포넌트 생성 - 페이지 레이아웃에 스낵바 추가 * feat: 성공 alert을 스낵바로 교체 - 모임 참여, 취소, 삭제, 마감 - 로그인, 회원가입, 회원정보 수정 * [FE] 내 모임 페이지 구현 (#265) * feat: 내가 참여한 모임 api 구현 * refactor: Search 컴포넌트의 검색창 영역 분리 * refactor: NoResultContainer를 별도의 컴포넌트로 분리 * feat: 내가 참여한 모임 컴포넌트 구현 * feat: 내 모임 페이지 구현 - 헤더에서 내 모임 페이지 링크 연결 * chore: 코드 리뷰 반영 * [FE] 로그아웃 요청 추가 (#267) * feat: 로그아웃 요청 함수 생성 * feat: 로그아웃 시 서버에 요청하는 기능 추가 * feat: 액세스 토큰 만료 시 자동 로그아웃 기능 추가 * [BE] Code Smell 제거 (#263) * refactor: Optimize imports * test: 테스트 클래스 접근제어자 수정 * refactor: 빈 생성자 추가 및 필드 선언 변경 * style: 불필요한 개행 제거 * refactor: global 패키지 구성 * refactor: 잘못 사용된 연산자 수정 * style: 변수 오타 수정 * refactor: inverted 하게 사용되는 메서드 리팩터링 * refactor: 메서드 분리 * refactor: 파일 생성 검증 순서 변경 * refactor: 업로드 파일 검증 로직 리팩터링 * [BE] 모임 수정 API Docs 활성화 (#272) * [BE] 회원 탈퇴 기능 구현 (#269) * refactor: 사용자 테이블에 deleted 필드 추가 * refactor: 회원 탈퇴 시 deleted 필드 변경 * refactor: 회원 탈퇴 시 개인정보 변경 * refactor: develop-be 이력 적용 * refactor: 회원 탈퇴 시 주최한 모임 중 진행중인 모임이 있다면 탈퇴 불가능 * test: 자신이 참여한 모임 목록 조회 테스트 추가 * test: 탈퇴한 사용자가 속한 모임의 참여자 목록 조회 테스트 추가 * style: 올바른 import 경로로 수정 * refactor: 인스턴스 변수 호출 시 this 삭제 * refactor: '탈퇴하다' 의 용어를 leave 로 변경 * refactor: 탈퇴한 사용자의 기능 제한 * test: 비어있는 값에 대한 테스트 검증 방식 변경 * refactor: lombok 에서 제공하는 메서드 사용 * refactor: 탈퇴한 사용자는 모든 기능에 접근할 수 없도록 변경 * test: 미리 구현되어 있는 메서드 사용 * refactor: 회원 탈퇴 시 모임 탈퇴 로직 변경 * refactor: 회원 탈퇴 관련 에러 코드명 변경 * fix: redirectUrl을 href에서 origin으로 수정 (#276) * [BE] 테이블 컬럼 타입과 엔티티 필드 타입의 불일치 발생 (#280) * [FE] 내 정보 페이지 UI 개선 (#278) * refactor: 내 정보 네이밍 통일 * refactor: Routes 분리 * feat: 로고 svg로 컴포넌트로 생성 * style: 페이지에 높이 적용 * feat: 피그마에 맞게 내 정보 페이지 UI 변경 - 기존에 있던 닉네임, 비밀번호 관련 함수 병합 * refactor: 공용으로 사용하는 컴포넌트 components/@shared 폴더로 정리 * refactor: 내 정보 페이지 컴포넌트 분리 - 내 정보와 회원 탈퇴 섹션 분리 * refactor: 모달 플래그 네이밍 통일 * style: 페이지 내용 전역에 높이를 지정함에 따라 다른 페이지들의 높이 스타일링변경 - calc(100% - 4rem) → 100%로 변경 * feat: 비밀번호 확인 모달 생성 * feat: 비밀번호 확인 요청 API 생성 * feat: 내 정보 수정 시 비밀번호 확인 과정을 거쳐 수정하도록 추가 * feat: 모달 상태에 비밀번호 확인 상태 추가 * feat: useModal 커스텀훅 생성 * feat: 내 정보 수정 후 새롭게 수정된 정보를 받아와 저장하는 부분 추가 * feat: 로그인 정보에 로그인 타입 추가 - 현재는 basic & oauth * feat: basic과 oauth 내 정보 화면 분리 - basic에서는 닉네임, 비밀번호를 모두 변경하고 비밀번호 확인을 할 수 있음 - oauth에서는 닉네임 변경만 가능하며 비밀번호 확인이 존재하지 않음 * refactor: '/'를 BROWSER_PATH.BASE로 변경 * refactor: 내 정보를 수정하는 함수를 내 정보 페이지로 이동 - 기존에는 비밀번호 확인 컴포넌트에 있었으나, 해당 컴포넌트의 역할과는 맞지 않다고 판단하여 이동 * [FE] 모임 마감날짜 유효성 검증 오류 수정 (#282) * feat: 날짜 유효성 검증 로직 수정 - 한국 시간 변환 함수 추가 -가장 빠른 스케쥴과 비교하는 로직 추가 * test: 함수 변동사항 적용 * chore: 주석 삭제 * [BE] 검색 기능 구현 (#277) * refactor: 모임 조회를 역순으로 하도록 수정 * feat: 카테고리별 그룹 조회 로직 추가 * refactor: 카테고리 정보를 찾지 못할 때 발생하는 예외를 다른 예외 형식과 통일 * refactor: 사용하지 않는 메서드 제거 * feat: 카테고리별 모임 조회 API 구현 * test: 제거된 API에 대한 테스트 제거 * test: 카테고리별 모임 조회 인수 테스트 추가 * test: 모임 생성 메서드 하나로 통일 * feat: 모임 키워드 검색 기능 구현 * feat: 모임 키워드 검색 API 구현 * feat: 모임 필터링 Specification 구현 * feat: 카테고리, 참여한 모임, 생성한 모임을 조회하는 Specification 구현 * feat: 카테고리, 검색 조회 API에 Specification을 통해 동작하도록 적용 * feat: 참여한 모임 조회 API 로직 수정 * feat: 주최한 모임 조회 API 구현 * refactor: 모임 필터링 Specification 체이닝으로 변경 * test: 모임 필터링 테스트 추가 * style: 모임 단일 조회 메서드명 수정 * test: 모임 조회 로직 컨트롤러 인수 테스트 추가 * refactor: rebase 충돌 해결 * style: import문 재정렬 * refactor: code smell 제거 * refactor: GroupSpecification에서 MemberId가 아닌 객체를 받도록 수정 * refactor: GroupSpecification의 반환값을 null이 아닌 predicate객체로 변환 * style: GroupFindService 메서드명 수정 * style: GroupSpecification 메서드명 수정 * refactor: GroupSpecification 빈 등록 * [FE] 새로고침 시 자동 로그아웃되는 오류 해결 (#284) * feat: access token이 유효할 시 자동 로그인이 되도록 추가 * fix: 내 정보 페이지 input에 type 부여 * refactor: 로그인 상태를 비우는 부분을 reset을 사용하여 하도록 변경 * fix: 내 정보 페이지에서 로그아웃 시 uncontrolled 경고가 뜨는 오류 해결 * style: 비밀번호 input에 placeholder 추가 * [FE] 변경된 회원정보 수정 API에 맞게 요청 형식 변경 (#289) * feat: 새로고침 시 로그인 타입을 판단하는 기능 추가 * style: 비밀번호 변경 시에만 비밀번호 확인 모달이 뜨도록 변경 * fix: 비밀번호 확인 API 요청 함수 삭제 및 비밀번호 수정 API 요청 변경 * [BE] 비밀번호 확인 API 구현 (#285) * refactor: 패스워드 전송 DTO 네이밍 수정 * feat: 비밀번호 확인 로직 구현 * feat: 비밀번호 확인 API 구현 * test: 비밀번호 확인 인수테스트 추가 * test: DisplayName명 수정 * refactor: 회원 비밀번호 수정+비밀번호 검증 통일하도록 수정 * refactor: 비밀번호 확인 메서드명 수정 * [FE] Private Route 구현 (#292) feat: Private Routes 구현 * [FE] 리프레시 토큰 적용 (#295) * feat: access token provider 생성 및 적용 * feat: 리프레시 토큰 selector 정의 * feat: refresh token provider 생성 * feat: Token 타입 정의 * feat: 리프레시 토큰을 사용하여 액세스 토큰을 요청하는 함수 생성 * feat: 헤더에서 토큰 유효성을 판단하여 재발급 또는 로그아웃 시키는 로직 구현 - 액세스 토큰이 유효하지 않음 → 리프레시 토큰으로 액세스 토큰 발급 - 리프레시 토큰이 유효하지 않음 → 로그아웃 * feat: 로그인 시 리프레시 토큰을 저장하는 부분 추가 * feat: 로그아웃, 회원 탈퇴 시 리프레시 토큰을 삭제하는 부분 추가 * [FE] 모임 검색 및 필터링 기능 구현 (#297) * feat: useInfiniteScroll 커스텀훅 생성 * fix: API 링크 수정 * feat: 내가 참여한 모임 목록에 무한 스크롤 적용 * feat: 체크박스 컴포넌트 생성 * feat: 전달된 쿼리 바탕으로 URL을 만들어주는 함수 생성 * feat: 마감된 모임 포함/제외 필터링 기능 구현 * feat: 키워드 검색 기능 구현 * feat: 카테고리 필터링 기능 구현 * feat: 내 모임 필터링 기능 구현 - 내가 참여한 모임, 내가 주최한 모임, 내가 찜한 모임 * feat: 내 모임 페이지에 TOP 버튼 추가 - 무한 스크롤이 적용된 페이지이므로 추가 * refactor: SearchForm 폴더화 * refactor: 유효하지 않은 카테고리 ID 상수화 * [FE] 모임 검색 시 엔터를 입력해도 검색되도록 추가 (#301) * feat: 엔터 입력 시에도 검색이 가능하도록 변경 - 검색 input을 폼으로 바꾸고 검색 이벤트를 submit으로 이전 * refactor: onClick 이벤트 삭제 * [FE] 모임 수정 기능 구현 (#299) * chore: calendar svg 추가 * refactor: useCreateState 리팩토링 - useState를 useInput으로 변경 * feat: 달력에서 일정 삭제 기능 추가 후 컴포넌트 분리 * refactor: useCreateState 리팩토링 변경점 적용 * refactor: useInput에 initialState 타입 추가 * fix: 날짜 비교 버그 수정 * feat: 모임 정보 수정 모달 생성 * feat: 모임 정보 수정 api 추가 * feat: 모임 수정 기능 구현 * fix: groupDetail이 갱신되지 않던 버그 수정 * refactor: 피드백 반영 * [FE] 내 모임 페이지에서 찜한 목록은 준비 중 페이지로 변경 (#303) * style: 내가 찜한 모임 섹션은 준비 중 페이지로 대체 * style: favicon 추가 * style: 내 정보 페이지의 로고 변경 - favicon 이미지를 svg화 시켜 애니메이션 적용 * [FE] groupDetail 정보 로드 오류 해결 (#305) * fix: devServer 경로 수정 * fix: group data early return 조건 변경 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * [BE] 누락된 테스트 추가 작업 (#298) * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * refactor: 중복 메소드 제거 Co-authored-by: yukong <[email protected]> * [FE] 메인 페이지에서 모임이 없을 시 마감된 모임 제외 체크박스가 보이지 않는 오류 해결 (#309) * feat: 메인 화면 모임 목록의 헤더가 모임 유무와 관계 없이 항상 보이도록 변경 - 모임이 없을 경우에는 문구가 나오지 않고 체크박스만 보임 - 카테고리 선택 시 `{카테고리이름} 모임을 찾아봤어요 🚀` 문구가 나오도록 추가 * style: favicon 파일 형식을 jpeg → ico로 변경 * [FE] 배포 모드에서 favicon이 보이지 않는 오류 해결 (#312) chore: 웹팩 설정에 favicon 추가 * [BE] 개발 서버 구축 및 실행환경 분리 (#311) * chore: profile별 DB환경 분리 * chore: profile 설정 오류 수정 * chore: 테스트 환경 파일 yml 수정 * [FE] 마감 모임 제외 기능 disabled 처리 (#314) * fix: 오류 부분 비활성화 * [BE] 도메인 값 객체 분리 (#316) * [BE] Calendar 도메인 패키지 리팩터링 (#319) * test: calendar 및 datetime 픽스처 패키지 분리 * test: datetime 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: datetime 관련 테스트픽스처 메서드명 변경 * test: calendar 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: calendar 관련 테스트픽스처 메서드명 변경 * test: DeadlineFixture 테스트픽스처 생성 * test: DurationFixture 테스트픽스처 상수 이름 변경 * refactor: calendar 패키지 도메인 리팩토링 및 테스트 보충 * test: calendar 패키지 테스트픽스처 메서드명 변경 * refactor: Schedule 메서드 분리 롤백 * style: Duration 메서드 메서드명 변경 * refactor: ScheduleFixture 메서드 접근제어자 수정 * [BE] 조회 클래스 리팩토링 (#322) * refactor: GroupSpecification 패키지 이동 * fix: 종료여부 확인과정에서 잘못된 쿼리생성 수정 * refactor: 매직넘버 제거 * refactor: 패키지 분리 * style: enum 상수 선언 스타일 수정 * style: 무의미한 빈줄 제거 * [FE] 프로젝트 리팩토링 (#325) * refactor: 라이브러리 수정 - 스토리북 제거 - esbuild loader 추가 * feat: react devtools가 배포 모드에서는 동작하지 않도록 추가 * refactor: API 요청 함수 네이밍 통일 * refactor: 페이지 종속 컴포넌트는 페이지 폴더 하위로 이동 * refactor: 컴포넌트 리팩토링 * refactor: 기타 파일 리팩토링 Co-authored-by: Usage <[email protected]> * [FE] 메인, 상세, 수정 페이지 리팩토링 (#329) * refactor: 메인 페이지 리팩토링 * refactor: 모임 상세 페이지 리팩토링 * style: 모임 상세 페이지 사이드바 스타일링 수정 * style: global input style에 border-box 추가 * refactor: useCreateState 반환값 타입 추가 - 해당 함수의 반환 타입을 재활용할 일이 생겨 타입 추가 * refactor: 모임 수정 모달 리팩토링 및 일부 스타일링 수정 * [FE] OAuth, 생성, 내 모임, 내 정보 페이지 리팩토링 (#330) * refactor: Auth 페이지 리팩토링 * refactor: Create 페이지 리팩토링 * refactor: 추가된 setCapacity 메서드 반영 * fix: 모임 수정시 같은 스케쥴이 중복해서 추가되던 버그 수정 * refactor: 내 모임 페이지 리팩토링 * refactor: 내 정보 페이지 리팩토링 * chore: 코드 리뷰 반영 * [BE] 모임 패키지 리팩터링 및 병합 (#323) * refactor: Group 패키지에 Participant 패키지 통합 * refactor: Calendar 사용하지 않는 레거시 메서드 제거 * refactor: Group#Builder 제거 * refactor: request dto 계층 분리 * refactor: 관심사에 따른 Group Controller 분리 * refactor: 관심사에 따른 Group Service 분리 * refactor: 서비스 계층의 비즈니스 로직을 도메인 계층으로 옮김 * refactor: 사용하지 않는 Group 메서드 제거 * refactor: GroupManageService#update 메서드 개선 * refactor: 사용하지 않는 클래스 제거 * refactor: toString 추가 * refactor: GroupSpecification 리팩터링 * style: Group 메서드 배치 변경 * refactor: GroupFindRequest Boolean 필드타입을 원시타입으로 변경 * refactor: Participants orphanRemoval 설정 * feat: exception 클래스 및 code,message Enum 생성 * feat: Group 도메인 exception 클래스 및 code,message Enum 생성 * test: 인수테스트 예외코드 검증 추가 * test: ParticipantServiceTest 리팩토링 * test: GroupSearchServiceTest 리팩토링 * test: GroupFixture builder 메서드 축약 * test: GroupManageServiceTest 리팩토링 * test: GroupFindServiceTest 리팩토링 * style: 코드 컨벤션 정리 * refactor: Group ErrorCode 세분화 작업 * refactor: Group 도메인 예외처리 세부화 및 ErrorCode 관심사 분리 * style: GroupFindAcceptanceTest 메서드 오타 수정 * test: RestAssured Logging 기능 Profile 설정가능하도록 수정 * style: EOF 추가 * style: static import 처리 * refactor: GroupManageService 템플릿콜백패턴 적용 * refactor: 예외메시지 관리 방식 변경 * ExceptionCode / ExceptionMessage 제거 * GroupErrorCode 활용 * 행위 기반에서 원인 기반으로 예외 메시지 내용 변경 * refactor: Group 검증 예외처리 리팩터링 * refactor: Participants 검증 예외처리 리팩터링 * refactor: OneToMany Fetch.Lazy 제거 (default이므로) * refactor: @EqualsAndHashCode @ToString 설정 * refactor: Group Controller 리팩토링 * refactor: Capacity 내부로 CapacityRange 통합 * refactor: host 칼럼명 명시 * refactor: GroupIdResponse 빈생성자 제거 * refactor: 사용하지 않는 클래스 제거 * test: 인수테스트 @SuppressWarnings("NonAsciiCharacters") 선언 * test: RestHandler 함수형인터페이스 제거 * test: GroupFixture#setDeadlinePast 리팩토링 * refactor: Capacity#isSmallThan 메서드명 변경 * refactor: GroupFindRequest Getter 수정 * refactor: CascadeType.REMOVE 제거 * refactor: Controller 계층 DTO 네이밍 수정 * refactor: Group Controller/Service 네이밍 수정 * refactor: Group#leave 메소드명 수정 * refactor: GroupFindRequest 어노테이션 배치 변경 * test: 무의미한 throws 예외전파 제거 * test: TestConstructor 어노테이션 지정 * style: optimize imports * style: GroupFindService 상수 개행 * [BE] 개발서버 배포가 실패하는 이슈 (#333) * chore: 개발 서버 api 주소 변경 (#334) Co-authored-by: Usage <[email protected]> * [FE] 번들 크기 최적화 (#337) * chore: 필요한 모듈 설치 * chore: copy-webpack-plugin 적용 - 폰트 형식 지원하도록 추가 * feat: 폰트 최적화 * feat: 페이지 지연 로딩 * chore: js 파일명 해시 적용 * chore: 웹팩 정리 Co-authored-by: Usage <[email protected]> * [FE] 렌더링 최적화 (#340) * feat: 모임 카드에 memo 적용 * feat: layout shift 최적화 * refactor: 모임 생성 관련 타입 정리 * chore: 개발 / 배포 모드 빌드 스크립트 작성 * feat: top 버튼 연속 클릭 방지 * style: 스크롤바 커스텀 * feat: 마이페이지 리렌더링 최적화 Co-authored-by: Usage <[email protected]> * fix: webpack-bundle-analayzer 비활성화 (#342) - 우선 임시로 주석 처리 - 빌드가 무한로딩되는 문제가 발생하여 비활성화 * [FE] MSW 비활성화 (#343) fix: MSW 비활성화 Co-authored-by: Usage <[email protected]> * [BE] 조회로직 Specification(Criteria) -> QueryDsl 변경 (#339) * chore: queryDsl 환경설정 Co-authored-by: sinb57 <[email protected]> * chore: build.gradle 문단 구분 Co-authored-by: sinb57 <[email protected]> * refactor: 기본 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 주최한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 참여한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: GroupSearchService에 연동된 GroupRepository를 Criteria에서 QueryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: Specification(Criteria) 제거 Co-authored-by: sinb57 <[email protected]> * style: 잘못된 컨벤션 수정 Co-authored-by: sinb57 <[email protected]> * refactor: 가독성 향상을 위한 변수 추출 Co-authored-by: sinb57 <[email protected]> * refactor: 템플릿 콜백 패턴 적용 Co-authored-by: sinb57 <[email protected]> * style: 개행 컨벤션 통일 Co-authored-by: sinb57 <[email protected]> * refactor: 상수 제거 및 메서드 배치 순서 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition 생성 Co-authored-by: sinb57 <[email protected]> * refactor: 동적 쿼리 생성 방식을 BooleanBuilder 사용으로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition#Getter Optional 적용 Co-authored-by: sinb57 <[email protected]> * refactor: ConditionFilter 클래스 분리 Co-authored-by: sinb57 <[email protected]> * refactor: FinCondition#Getter Optional 제거 Co-authored-by: sinb57 <[email protected]> * refactor: 참여 인원수에 대한 매직넘버에 의미 부여 Co-authored-by: sinb57 <[email protected]> * refactor: 인터페이스 제거 및 클래스명 변경, 패키지 분리 Co-authored-by: sinb57 <[email protected]> * refactor: CQRS 패턴으로 GroupRepository CRUD 분리 Co-authored-by: sinb57 <[email protected]> * refactor: 패키지 구조 및 조회 관련 도메인 이름 수정 Co-authored-by: sinb57 <[email protected]> * refactor: supplier 파라미터명 수정 Co-authored-by: sinb57 <[email protected]> * refactor: GroupManage~ 클래스를 Modify로 변경 Co-authored-by: sinb57 <[email protected]> Co-authored-by: sinb57 <[email protected]> * [FE] 이미지 파일 최적화 feat: 카테고리 이미지 jpg → webp 변환 Co-authored-by: Usage <[email protected]> * [FE] gzip 최적화 (#350) feat: gzip 압축 설정 Co-authored-by: AhhyunLee <[email protected]> * [BE] 구글 OAuth 버그 해결 (#348) * fix: 구글 로그인 요청 시 잘못된 정적 팩토리 메서드 수정 * refactor: 사용하지 않는 메서드 제거 * [BE] 개발서버의 DB 실행 환경 분리 (#355) * [BE] 인덱스 설정을 통한 DB 조회 성능 개선 (#356) * refactor: ConditionFilter#filterByCondition 성능을 고려하여 where절 순서 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 생성 Co-authored-by: nbalance97 <[email protected]> * chore: docker 가이드라인 작성 Co-authored-by: nbalance97 <[email protected]> * chore: .gitignore 업데이트 Co-authored-by: nbalance97 <[email protected]> * chore: local-datasource.yml DB 전환(h2 -> mysql) Co-authored-by: nbalance97 <[email protected]> * chore: docker mysql 접속 자동화 스크립트 Co-authored-by: nbalance97 <[email protected]> * chore: docker README 업데이트 Co-authored-by: nbalance97 <[email protected]> * style: docker sh EOF 추가 Co-authored-by: nbalance97 <[email protected]> * chore: docker container name 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 접속 데이터베이스 지정 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 분리 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 디렉터리 분리 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 수정 Co-authored-by: nbalance97 <[email protected]> * feat: Group 인덱스(deadline) 설정 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 파일명 수정 Co-authored-by: nbalance97 <[email protected]> * chore: docker init.sql 제거 및 local-datasource.yml ddl-auto 수정 Co-authored-by: nbalance97 <[email protected]> * style: .gitignore EOF 추가 Co-authored-by: nbalance97 <[email protected]> Co-authored-by: nbalance97 <[email protected]> * [BE] Group 도메인 N+1 문제 해결 (#358) * refactor: Group-Participants Fetch전략 Eager로 변경 * refactor: Group 도메인 QueryDsl fetchJoin 적용 * chore: index.html 제거 * [BE] 지도 도입에 따른 API, 로직 수정 (#360) * feat: Group도메인의 String 타입의 Location을 값 객체로 변경 * test: Group도메인의 String 타입의 Location을 값 객체로 변경 * feat: 그룹 수정정보에 Location 정보 제거 * feat: 모임 장소 수정 API생성 * test: 모임 장소 수정 기능 테스트 추가 * docs: 모임 장소 수정 restdocs추가 * refactor: location의 detail column name 값 수정 * test: init.sql의 detail column name 값 수정 * [FE] 지도 API 연결 (#362) * chore: 서브모듈 업데이트 * chore: react-daum-postcode 설치 * chore: 카카오맵 설정 추가 * chore: 웹팩에 카카오맵 키 추가 * style: disabled input 글로벌 스타일 추가 - 커서 스타일 추가 * style: 스낵바 z-index 추가 * feat: DaumPostCode 모달 생성 * fix: location 타입 수정 * chore: 카카오맵 타입 추가 * fix: 모임 수정에서 장소 수정 제거 * feat: 모임 생성 시 Postcode 모달을 사용하여 주소를 입력하도록 추가 * feat: 모임 상세 페이지에 카카오맵 추가 * [FE] 찜 기능 구현 (#364) * feat: 메인 페이지 모임 목록에 찜 여부 표시 * feat: 찜하기 / 찜 취소하기 api 추가 * feat: 모임 상세 페이지에 찜하기 플로팅 버튼 구현 - useThrottle 구현 - Top 플로팅 버튼에 useThrottle 적용 * feat: 내 모임의 내가 찜한 모임 탭에 찜한 모임들을 표시 * feat: api 변경 사항 적용 & 상태 변경과 동시에 적용되도록 수정 * fix: 버그 및 css 수정 - dimmer, snackbar z-index 수정 - 2022-08-19 hotfix 내용 복구 * [BE] Oauth2 로그인 실패 해결 (#367) fix: oauth2 로그인 실패 이슈 해결 (임시비밀번호 형식) * [FE] 릴리즈 이전 수정사항 반영 (#369) chore: 수정사항 반영 * [BE] 찜 기능 구현 (#363) * feat: 찜 도메인 구현 Co-authored-by: sinb57 <[email protected]> * feat: 찜하기, 찜 취소 API 구현 * feat: 찜한 모임 조회 API구현 * feat: Authorization 필더를 선택적으로 받도록 하는 어노테이션 생성 * feat: 모임 조회 반환값에 찜 여부 추가 * docs: 모임 찜하기 api추가 Co-authored-by: sinb57 <[email protected]> * [BE] 모임 참여인원이 실제와 다르게 출력되는 현상 해결 (#376) * refactor: findGroups fetchJoin 제거 * refactor: findGroups distinct 추가 * fix: 누락된 from 추가 * [BE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#384) * refactor: Token과 Member연관관계의 JoinColumn 컬럼명 명시 * test: TokenService 메서드 테스트 추가 * test: 토큰 만료시 발생하는 예외 테스트 추가 * refactor: 같은 토큰인지 검증하는 메서드의 반환값 반대로 수정 * [BE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#378) * refactor: 마감여부 인원수로 체크하지 않도록 로직 변경 * refactor: 미사용 메서드 제거 * refactor: 메서드 단일화 * [BE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#379) * refactor: 탈퇴한 회원의 정보 수정 로직 변경 * refactor: 탈퇴한 회원의 이름을 빈값으로 반환 * refactor: GhostMember 클래스명 변경 * refactor: 보여지는 탈퇴한 사용자의 이름 상수화 * [FE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#390) * chore: 사용하지 않는 모듈 삭제 * feat: 토큰 저장소를 세션 → 로컬로 변경 * fix: 리프레시 토큰 오류 해결 * [BE] 모집이 마감된 모임에 대하여 찜하기/찜취소 기능 에러가 발생하는 현상 (#386) * test: GroupSearchRepositoryTest 위치 변경 * test: Favorite, Favorites 도메인 테스트 추가 * fix: 마감된 모임을 찜하지 못하던 오류 수정 * fix: 마감된 모임을 찜 취소하지 못하던 오류 수정 * test: 마감된 모임에 대한 찜하기 기능 테스트 추가 * [BE] QueryDSL 이용하여 pagination 할 때 limit 이 설정되지 않는 현상 (#389) * fix: 찜 모임 조회시 Full Scan을 한 후 JVM내에서 페이지내에션을 하던 오류 수정 * refactor: 사용하지 않는 메서드 제거 * [FE] 일정값이 없을때 모임이 생성되지 않는 에러 해결 (#393) * fix: 일정값이 없어도 모임이 생성되도록 수정 * feat: copyObject 메서드 유틸에 추가 - compare -> object 파일 이름 변경 * chore: 테스트 라이브러리 설치 및 업데이트 - jest 버전 업데이트 28.1.3 -> 29.1.1 - @type/jest 버전 업데이트 28.1.6 -> 29.1.0 - ts-jest 설치 * test: 모임 생성 유효성 검증 테스트 추가 * chore: 경고창에 error.message를 보여주는 것으로 변경 * [FE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#394) * chore: 모듈 재설치 * feat: 모임 인원이 가득 찰 경우의 버튼 추가 * [BE] 모집 마감 시간이 지난 모임이 마감되지 않았다고 나타나는 현상 * [FE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#398) * fix: 바뀐 API 명세에 맞게 빈 문자열의 참여자는 탈퇴한 사용자라고 판단하여 표시 * feat: 탈퇴한 회원임을 알리는 가이드 메시지 추가 * feat: 호스트가 탈퇴했을 경우에도 탈퇴한 사용자임을 알리는 부분 추가 * feat: 누락된 탈퇴한 주최자 부분 추가 * refactor: 피드백 반영 * [FE] 마감된 모임에도 수정 버튼이 보이는 오류 해결 (#403) * fix: 마감된 모임에는 수정 버튼이 보이지 않도록 추가 * fix: useEffect dependency 오류 주석 추가 - 추후 해결 방법 강구 * [BE] 페이지네이션 과정에서 Page의 hasNext()가 잘못 나오는 오류 + 찜 조회 기능 오류 (#400) * fix: 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 좋아요한 그룹의 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 찜한 모임에서 중복된 데이터가 조회되는 오류 수정 * fix: 찜한 모임 조회에서 distinct를 거는 위치 수정 * test: 잘못된 테스트 코드 수정 * fix: 찜한 모임 조회에 중복된 모임이 나오는 에러 해결 * fix: 찜한 모임 조회에 중복된 모임 id를 조회하는 오류 수정 * refactor: 불필요한 leftjoin삭제 * test: 찜한 모임 목록 조회 테스트 추가 * refactor: 찜한 목록 id조회 메서드이 접근 제어자 수정 * 조기마감된 모임에 대한 에러코드가 마감기한이 지나도 동일한 이슈 (#404) refactor: 모임진행 유효성 검증 절차 순서 변경 * [BE] 에러 메시지 축약 (#399) * refactor: MemberErrorCode, MemberException 추가 * refactor: MemberException 에러 해결 * refactor: 회원가입 api 변경 및 Category 에러코드 추가 * refactor: 이외의 에러코드 핸들링 * refactor: 코드 컨벤션 수정 * refactor: 코드 컨벤션 수정 * refactor: 상수명 리셋 * [FE] 메인 페이지에서 검색 시 새롭게 들어온 모임 목록이 기존 모임 목록에 추가되는 오류 해결 (#407) fix: 새로운 모임 검색 시 기존 모임에 덮어씌우는 코드 추가 * [FE] 에러 세분화 적용 (#405) * feat: 에러 처리를 위한 useHandleError 구현 * chore: 에러 메시지 추가 * chore: 기존 api 연결에 에러 핸들러 추가 * chore: 코드 리뷰 반영 * [BE] 도메인(Member, Group) 필드 제약조건 변경 및 검증로직 수정 (#385) * refactor: GroupName 길이 정책 수정 * refactor: Description 길이 정책 적용 * refactor: UserId UserName Password 삭제정책 수정 * refactor: 사용자 아이디 길이 정책 반영 * test: 사용자 아이디 길이 정책 변경에 의한 기존 테스트 픽스처 수정 * refactor: 사용자 닉네임 길이 정책 반영 * refactor: 유효성 메서드명 및 검증 순서 변경 * style: optimize imports * refactor: UserId UserName Password 삭제 로직 수정 * test: MemberTest 추가 * style: EOF 추가 * refactor: 칼럼 길이 제약조건 변경 * refactor: Password Blank 유효성 검증 제거 * refactor: 유효성 검증 순서 변경 * [FE] signup URL을 members로 변경 fix: 회원가입 요청 url 변경 (#411) * [BE] 모임의 일정이 설정한 날짜보다 하루 전날로 저장되는 현상 해결 (#416) * refactor: TimeZone 설정 파트 추가 * refactor: Config 분리 * [FE] 입력값 제약 조건 추가 (#418) * fix: 변경된 서버 에러 코드에 맞춰 수정 * feat: 수정된 멤버 값 제약 조건 추가 * test: 회원가입 입력 값 검증 테스트 추가 * [BE] 지원하지 않은 API 요청에 대해 404 반환 (#419) * feat: 지원하지 않는 API 요청 처리 * refactor: ControllerAdvice 중복 로직 메서드 추출 * feat: restdocs 정적자원 접근 지정 * [FE] 랜딩 페이지 (#420) * feat: 랜딩 페이지에 사용할 이미지와 svg 업로드 * feat: throttle이 쓰로틀링이 적용된 함수를 반환하도록 수정 * feat: 랜딩 페이지 구현 * feat: 메인 페이지에 랜딩 페이지 접근 방식 추가 - 메인 페이지 접근 시 이미 방문했는지 여부를 판단하여 랜딩 페이지 또는 메인 페이지를 보여주도록 추가 * refactor: 피드백 반영 * [FE] 모임 목록 마감된 모임 필터링 기본값 변경 (#423) chore: 모임 목록 필터링 기본값 변경 - 마감된 모임 제외 : false -> true * [FE] 구글 로그인 시 이전 페이지로 보내주는 기능 (#428) * refactor: 구글 oauth 토큰 리다이렉트 url 파싱 부분 제거 * feat: Private Route에 replace 옵션 추가 * feat: 구글 로그인 시 이전 히스토리를 기억해 로그인 후 해당 url로 이동하도록 구현 * fix: 참여 신청 시 로그인이 되어있지 않으면 스낵바를 보여주도록 수정 - 기존에는 alert과 함께 로그인 모달을 띄워주었으나, 찜 버튼과의 통일성으로 인해 스낵바로 수정 * feat: 스낵바에 유지 시간 추가 - 스낵바 배경 색상 변경 * refactor: TimeZone 컴파일시 지정하도록 변경 (#424) * [BE] 모임 참여 요청이 동시에 왔을 때 참여 인원을 초과하는 문제 (#431) * refactor: 모임 참여 기준에 대한 검증 기준 수정 * fix: 참여하기 로직에 대한 동시성 처리 추가 * refactor: isOutOfRange의 불필요한 괄호 제거 Co-authored-by: Seongwon97 <[email protected]> Co-authored-by: AhhyunLee <[email protected]> Co-authored-by: Usage <[email protected]> Co-authored-by: Byunghoon <[email protected]> Co-authored-by: yukong <[email protected]> Co-authored-by: AhhyunLee <[email protected]> Co-authored-by: nbalance97 <[email protected]>
sinb57
added a commit
that referenced
this pull request
Oct 16, 2022
* chore: 스프링 프로젝트 초기 환경구축 * [FE] 프론트엔드 환경 구축 (#8) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * [FE] 프로젝트 환경 세팅 보강 (#12) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * chore: 이미지 웹팩 설정 - file-loader, @svgr/webpack 설치 및 적용 * chore: recoil 설치 * chore: react-query 설치 * chore: msw 설치 Co-authored-by: Usage <[email protected]> * [BE] 모임 도메인 설계 (#16) * feat: 모임 도메인 구조 설계 * feat: 모임 도메인의 기간 정보 원시값 포장 * chore: JPA 의존성 추가 및 환경 설정 * feat: 모임 도메인 JPA 적용 * refactor: 모임 도메인 패키지 분리 * feat: 모임 도메인 Repository 기능 구현 * feat: 누락된 nullable 제약조건 추가 * refactor: Schedules 일급 컬렉션 생성에 따른 로직 변경 * [FE] 메인 페이지 화면 마크업 (#17) * chore: 마크업에 필요한 모듈 설치 - @emotion/styled, emotion-reset * chore: 타입 선언 세분화 - declare.d.ts → global.d.ts로 변경 - image.d.ts 생성 * chore: 웹팩 설정 추가 - historyApiFallback 추가 - 절대경로 추가 * style: globalStyle, theme 생성 * style: 헤더 달린 페이지 레이아웃 생성 * style: 메인 페이지 UI 생성 * style: 헤더 UI 생성 - 푸터 삭제 Co-authored-by: Usage <[email protected]> * [FE] 모임 상세 페이지 화면 마크업 (#18) * chore: 필요한 svg 생성 * style: 모임 상세 페이지 UI 생성 Co-authored-by: Usage <[email protected]> * fix: 모임 도메인 누락된 필드 추가 (#21) * [BE] 모임 API 기능 구현 (#25) * feat: 카테고리 Service 목록 조회 기능 구현 * chore: RestAssured 의존성 추가 * feat: 카테고리 목록 조회 API 구현 * test: Category 인수테스트 리팩토링 * feat: 모임 생성 및 단일 조회 API 구현 * feat: 모임 목록 조회 API 구현 * feat: 모임 변경 API 구현 * feat: 모임 삭제 API 구현 * [BE] 코드 컨벤션 작성 및 imports문 정렬 (#30) * chore: 코드 컨벤션 파일 작성 * style: Optimize imports * [BE] 모임 API 기능 - 일부 인수테스트가 통과하지 않는 이슈 (#32) * chore: 불필요한 설정 제거 * chore: init.sql 파일의 DB 초기화 방식 변경 * [BE] 모임 API 기능 및 테스트 리팩터링 (#33) * refactor: Member와 Group 패키지 분리 * feat: Day에서 발생할 수 있는 예외 처리 로직 작성 * test: 누락된 Day 테스트 추가 * refactor: Category의 상속 클래스 변경 - JpaRepository -> Repository * refactor: Duration에서 발생할 수 있는 예외 처리 로직 작성 * feat: Schedule 레포지토리 생성 * test: 모임 관련 CRUD 테스트 수정 * refactor: TimeRequest 정보를 ScheduleRequest에서 갖도록 수정 * feat: 존재하지 않는 카테고리로 모임 생성시 발생하는 예외 처리 추가 * feat: 모임 조회시 발생할 수 있는 예외 처리 추가 * test: 모임 조회 테스트 추가 * test: 모임 삭제 테스트 코드 추가 - Repository의 deleteById를 통해 schedule도 삭제가 되는지 확인 - Service의 delete 로직 테스트 추가 * refactor: Schedule 내부 값을 요일에서 일자로 변경 * test: API 스펙 변경에 따른 테스트 초기 데이터 수정 * refactor: Group의 regular필드 제거 * refactor: 불필요한 예외 클래스 제거 * test: LocalDate 생성 방식 수정 as-is: LocalDate.parse(start, DateTimeFormatter.ISO_LOCAL_DATE); to-be: LocalDate.of(2020, 5, 8); * style: 코드 컨벤션에 맞게 재정렬 * refactor: 패키지 구조 변경 (#36) * chore: 스프링부트 버전 다운그레이드 및 DB설정 * [FE] 모임 생성 페이지 화면 마크업 (#40) * chore: eslint import order 패턴 추가 * feat: 헤더에 Link 추가 - Link의 기능 수행을 위해 App의 PageLayout을 Router 안으로 이동 * feat: 메인, 모임 상세 화면의 일부 컴포넌트에 데이터를 props로 내려줄 수 있도록 변경 - 데이터 타입 정의 * feat: path 변경 시 스크롤 위치 최상단으로 이동하도록 구현 * style: 모임 생성 페이지에서 각 단계별 마크업 UI 생성 * style: navigator 구성 컴포넌트 UI 생성 * style: 모임 생성 페이지 UI 생성 * style: 전역 스타일 추가 - input 스타일 추가 - 페이지 레이아웃 스타일 추가 Co-authored-by: Usage <[email protected]> * [BE] 회원 기능 구현 (#42) * feat: 멤버 도메인 필드 추가 * chore: validation 의존성 추가 * feat: 회원가입 서비스 로직 구현 * feat: 회원가입 API 구현 * feat: JWT 의존성 추가 및 유틸 클래스 추가 * feat: 로그인 기능 구현 * feat: 로그인 API 구현 * refactor: 로그인 메서드명 수정 - signIn -> login * feat: 회원 정보 조회 기능 구현 * feat: 인증 기능 및 정보조회 API 구현 - 인터셉터와 리졸버 구현 * test: 회원 관련 Controller test 추가 * test: 테스트 격리 * feat: 패스워드 암호화 기능 구현 * feat: 회원 탈퇴 API 구현 * style: 코드 컨벤션 통일 - 불필요한 import 제거 * feat: 패스워드 패턴 검사 추가 * refactor: 잘못된 예외 클래스 변경 * refactor: 로그인 API 반환값 수정 - Location 값 반환 삭제 * test: 회원 삭제 repository 테스트 추가 * refactor: JwtTokenProvider 중복 로직 제거 * refactor: login 메서드명 통일 * style: 불필요한 개행 제거 * test: 비밀번호 암호화 테스트 코드 추가 * refactor: 회원가입 API 명세 변경에 따른 수정 - 회원가입 기능을 auth 패키지로 이동 * test: displayName 형식 통일화 * test: 로그인 성공 테스트 수정 * refactor: sha256encoder messagedigest 상수화 * refactor: 비밀번호 패턴 에러 메시지 수정 * [BE] 회원 정보 수정 기능 구현 (#46) Co-authored-by: Seongwon97 <[email protected]> * [BE] 모임 API 기능 및 테스트 리팩터링 (#41) * test: 통과하지 않는 인수테스트 해결 * refactor: Category Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Request Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Member Response Assembler 를 통한 DTO 매핑 로직 분리 * chore: data.sql 생성을 통한 카테고리 초기값 저장 * refactor: Schedules 제거 * refactor: Group Builder 패턴 적용 * refactor: 카테고리 "전체" 항목 제거 * refactor: Duration 정적 팩토리 메서드 생성 * refactor: Schedule 정적 팩토리 메서드 생성 * refactor: Category enum 으로 대체 및 테스트 리팩토링 * refactor: ScheduleRepository 제거 * refactor: Group 과 Schedule 의 양방향 연관관계를 단방향으로 수정 * style: Cleanup Code * test: Group Repository 테스트 코드 수정 * test: Category Service 테스트 코드 수정 * feat: Duration 도메인 날짜 형식 검증 추가 * feat: Schedule 도메인 날짜 및 시간 형식 검증 추가 * test: 테스트 독립성 보장 - Group 인수테스트에서 저장된 데이터가 DB에 남아있어, 다른 테스트에 영향을 주는 문제 발생 - Group 인수테스트에 truncate 로직을 AFTER_EACH_METHOD로 지정하여 해결 * feat: Schedule 시간값 검증 로직 추가 * test: Category 인수테스트 수정 * refactor: RestAssuredConvenienceMethod 클래스 이름 변경 * refactor: Category getAll() 메서드 제거 * refactor: 정적 팩토리 메서드 및 시간 형식 검증 제거 * refactor: Schedule 정적 팩토리 메서드 제거 * refactor: Schedule 날짜 및 시간 형식 검증 로직 제거 * refactor: Duration 정적 팩토리 메서드 제거 * refactor: Duration 날짜 및 시간 형식 검증 로직 제거 * test: Duration, Schedule 픽스처 분리 * refactor: DTO 응답 객체에서 @NoArgsConstructor 제거 * refactor: 엔티티 Constructor 어노테이션 수정 * style: 불필요한 import 제거 * test: 매직넘버 제거 * test: GroupRepositoryTest 영속성 컨텍스트 DB 동기화 * refactor: merge conflict 해결 Co-authored-by: sinb57 <[email protected]> Co-authored-by: Seongwon97 <[email protected]> * [FE] 카테고리 API 연결 (#50) * chore: 절대경로 추가 - store * feat: 카테고리 axios 요청 추가 * feat: 카테고리 API mocking * feat: 카테고리 커스텀훅 구현 - useRecoilQuery, useCategory * feat: 데이터 타입 추가 * feat: 컴포넌트에서 카테고리 요청 부분 추가 * feat: recoil 카테고리 상태 추가 Co-authored-by: Usage <[email protected]> * [FE] 모임 생성 페이지 기능 구현 (#52) * feat: 모임 생성 페이지 커스텀훅 구현 - useCreateState * style: 모임 생성 페이지에서 공용으로 사용하는 스타일 추가 * chore: 모임 생성 규칙, 에러 메시지 상수화 * feat: 모임 생성 페이지에서 사용된 함수 utils로 분리 - isEqualObject - date utils - PageError 클래스 → ✨ OUR CUSTOM ERROR ✨ * feat: 모임 생성 Step1 * feat: 모임 생성 Step3 * feat: 모임 생성 Step4 * feat: 모임 생성 Step5 * feat: 모임 생성 Step6 * feat: 모임 생성 Step7 * style: svg 리소스 추가 * style: Dot 컴포넌트 props 수정 - color → isFocused, theme * feat: Navigator 컴포넌트 생성 * feat: 모임 생성 입력 데이터에 대한 유효성 검사 * feat: 모임 생성 페이지 기능 연결 * feat: 모임 기능 API mocking * feat: 모임 생성 요청 시 보낼 데이터 추가 * style: complete svg에서 사용하지 않는 스타일링 삭제 * style: Navigator의 사이드 버튼 스타일링 추가 - complete 시 크기 차이로 인해 navigator가 움직이던 부분 해결 Co-authored-by: Usage <[email protected]> * [BE] 인증 RestDocs 적용 (#56) * chore: restdocs 의존성 추가 * feat: AuthControllerTest restdocs 적용 및 관련 gradle 수정 * [ALL] .gitignore 설정 추가 (#59) * chore: .gitignore 설정 추가 * chore: .gitignore EOF 추가 * [FE] 메인 페이지 기능 구현 (#62) * chore: 카테고리 이미지 업로드 * feat: 카테고리에 맞게 이미지를 가져오는 함수 생성 * feat: 마감 기간까지의 시간 추출 함수 생성 * feat: 메인 페이지의 모임 카드 스타일 변경 - 카테고리 이미지로 변경 - 마감 기간 변경 * style: 메인 페이지의 카테고리 스타일 변경 * style: 헤더 스타일 변경 * style: 메인 페이지의 검색 섹션 스타일 변경 - 배경 이미지 삭제 - 검색 버튼 텍스트 변경 * feat: MSW를 사용한 모임 API mocking * refactor: 모임 생성 시 보내는 데이터 타입 선언 * feat: 메인 페이지 모임 목록 조회 API 연결 Co-authored-by: Usage <[email protected]> * [BE] Annotation 기반의 Interceptor를 통한 API 인증 처리 (#61) * feat: Annotation 기반의 인증 인터셉터 구현 * feat: 인증이 필요한 API 에 @Authenticated 어노테이션 설정 * [BE] 누락된 Controller 테스트 작성 (#65) * feat: CategoryController 테스트 작성 * feat: GroupController 테스트 작성 * feat: MemberController 테스트 작성 * [BE] 실패 테스트 코드 수정 (#67) * [FE] 모임 상세 페이지 기능 구현 (#69) * feat: 모임 상세 정보 요청 함수 생성 - 모임 생성 요청 함수에 리턴 값 추가 * chore: 지도 이미지 업로드 * style: theme에 filter prop 추가 - Theme 내부에 Record 적용 * refactor: mock data 수정 * fix: category의 id 타입 변경 * style: 모임 상세 페이지 이미지 추가 - 이미지에 필터 적용 * style: 모임 상세 페이지 스타일 변경 - 마감 기간 문구 수정 - 지도 이미지 추가 * feat: 카테고리명을 props로 전달하도록 변경 * feat: 모임 상세 페이지에 모임 상세정보 조회 API 적용 Co-authored-by: Usage <[email protected]> * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * [FE] 환경설정 추가 (#75) * chore: webpack 설정 추가 - output에 publicPath 추가 * chore: MSW warning option off * style: Global style 추가 - useTheme 사용 - textarea global style 추가 Co-authored-by: Usage <[email protected]> * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * [FE] 모임 삭제 기능 구현 (#79) * feat: 모임 삭제 API 구현 * style: 모임 삭제 버튼 스타일 변경 * feat: 모임 삭제 관련 메시지 생성 Co-authored-by: Usage <[email protected]> * [BE] RestDocs 적용하기 (#70) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * refactor: 카테고리 목록 조회 테스트명 수정 * refactor: index.adoc 오타 및 깨진 글자 수정 Co-authored-by: yukong <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> * [BE] 조회 로직 리팩토링 (#82) * [FE] 모달 구현 (#84) * feat: 모달 상태 Recoil에 저장 - 모달 상태 타입 정의 * feat: 클릭 이벤트 시 발생하는 버블링 막는 유틸 함수 구현 * feat: 모달 레이아웃 구현 - 포탈 사용 * feat: 로그인, 회원가입 모달 구현 - 헤더에 바인딩 Co-authored-by: Usage <[email protected]> * [BE] CI Github Action 오류 수정 (#86) * [BE] CORS 설정 변경 및 preflight 처리 (#90) * feat: CORS 설정 추가 * feat: interceptor preflight 설정 추가 * refactor: 불필요한 interceptor checking 제거 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] CORS 및 RestDocs 경로 패턴 설정 수정 (#93) * refactor: CORS 설정을 전역 Configuration 으로 클래스 분리 * refactor: RestDocs 설정 URL 패턴 적용 수정 * refactor: CORS 허용 메서드 지정 * refactor: WebConfig 클래스명 수정 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [FE] 회원가입 기능 구현 (#95) * chore: 로그인, 회원가입 모달 컴포넌트 삭제 * feat: 로그인, 회원가입 API 요청 함수 생성 * style: 모달에 그림자 추가 * chore: 로그인, 회원가입에 사용하는 상수 선언 - API 경로 → path - 메시지 * feat: useInput 커스텀훅 생성 * feat: User 타입 정의 * feat: 회원가입 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 로그인 기능 구현 (#97) * feat: access token 관리처 구현 - recoil selector 사용 - session storage에서 관리하도록 구현 * feat: 로그인 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원정보가 필요한 API 변경 (#101) * feat: 모임 생성, 삭제 요청 API 헤더에 accessToken 저장 * feat: 로그아웃 기능 구현 - 로그인 상태를 recoil에 저장 Co-authored-by: Usage <[email protected]> * [BE] JSON DateTime 형식 불일치로 인한 에러 발생 * [BE] 더미 데이터 작성 (#102) * chore: jpa 데이터 initialization 세팅 * feat: 더미데이터 추가 * feat: Category 문화생활 추가 * test: category 개수 수정에 따른 테스트 변경 * test: test yml 수정 및 repository 테스트 에러 해결 * [BE] 모임 목록 조회 API 형식 불일치 에러 발생 (#104) * feat: 모임 목록 조회를 위한 DTO 생성 * refactor: 모임 상세 조회 DTO 클래스명 변경 * style: Optimize Imports * [FE] 모임 참여자 목록 조회 기능 구현 (#106) * feat: 상수화 - 키, path * feat: 타입 선언 - UserProfile, GroupParticipants * feat: 참여자 목록 조회 API 생성 * feat: 참여자 목록 조회 기능 구현 Co-authored-by: Usage <[email protected]> * [BE] 인수테스트 리팩토링 (#109) * test: RestHandler 메서드명 통일 * test: RestHandler 사용하지 않는 메서드 제거 * test: AuthRestHandler, User 를 통한 인수테스트 리팩터링 * test: 인수테스트 DisplayName 수정 * test: Category 인수테스트 리팩토링 * test: Member 인수테스트 DisplayName 수정 * test: 모임 인수테스트 및 참여 인수테스트 리팩토링 * test: RestHandler 를 상속받은 각 도메인별 유틸성 클래스 생성 * test: GroupFixture 생성을 통한 모임 인수테스트 리팩토링 * test: 모임 CRUD 기능에 따라 인수테스트 클래스 분리 * test: MemberFixture 생성을 통한 인증/회원 인수테스트 리팩토링 * test: 테스트픽스처 클래스를 Enum 으로 변경 및 픽스처 패키지 분리 * test: truncate.sql 파일에 momo_participant 테이블 추가 * chore: init.sql, build.gradle 수정 * test: 불필요한 요소(제네릭) 제거 및 컨벤션 정리 * chore: api 명세 html 파일 빌드 생성 * chore: application.yml 불필요한 설정 제거 * style: application.yml 컨벤션 정리 * refactor: GroupResponse DTO 클래스명 변경 * test: API RestHandler 메서드명 통일 (~한다) * refactor: Optimize Annotation 및 사용하지 않는 클래스 제거 * test: DurationFixture 인스턴스 관리 방식 변경 * test: 테스트 픽스처 인스턴스 생성 방식 리팩토링 * [BE] 모임 참여 신청 시 주최자일 경우 예외 처리 추가 (#113) * refactor: 인수테스트 리팩토링 코드 추가 * refactor: 모임 참여 검증 로직 분리 * refactor: 리팩토링에 맞춰 참여자 인수테스트 추가 및 수정 * [FE] 달력 컴포넌트 구현 (#117) * feat: 달력 컴포넌트 생성 - 전달된 연도와 월을 바탕으로 해당 월의 달력만 보여주는 방식 * feat: 달력 커스텀훅 생성 - 전달된 연도와 월을 바탕으로 해당 월에서 보여질 일 수(지난달, 이번달, 다음달)를 계산하여 반환 * feat: 이전, 다음 월로 넘어가는 기능 추가 - props로 해당 함수를 전달받도록 구현 * feat: 달력 사이즈 추가 - medium, large * feat: 달력에 오늘 날짜를 표시하는 부분 추가 * style: 달력에 토, 일요일 구분 색깔 추가 * style: 각 일에 padding 추가 * refactor: dayLength → totalOfDay로 변수 네이밍 변경 * refactor: useCalendar 변수명 변경 - https://github.com/woowacourse-teams/2022-momo/pull/117#discussion_r930740289 * [FE] Suspense, ErrorBoundary 구현 (#118) * feat: ErrorBoundary 컴포넌트 구현 * refactor: 메인 페이지 section 분리 - 추천 모임 리스트 분리 * feat: ErrorBoundary 적용 * chore: lottie 설치 - react-lottie - @types/react-lottie * feat: Spinner 컴포넌트 구현 * feat: Loading 컴포넌트 구현 * feat: useRecoilQuery에 suspense옵션 추가 * feat: suspense 적용 * chore: 코드 리뷰 반영 - 스피너 애니메이션 색 변경 - css 스타일 컨벤션에 맞게 수정 - 절대경로 import 사용 * [FE] 모임 생성 페이지에 최대 인원 입력 추가 (#122) * feat: 모임 생성 Step3 컴포넌트 생성 - Step3가 추가됨에 따라 기존의 Step3~7을 Step4~8로 변경 * feat: 모임 생성 인원 관련 규칙 추가 * feat: 모임 생성 상태에 최대 인원 추가 * feat: 최대 인원 입력 기능 구현 * fix: 제거하지 않은 defaultValue 제거 * feat: Step3에 props 넘기는 부분 추가 * feat: 최대 인원 유효성 검사 추가 - 기존에 있던 ValidatorProps를 CreateGroupData로 대체 * feat: 모임 데이터 타입에 최대 인원 추가 * feat: 모임 생성 요청에 최대 인원 추가 - 입력되지 않았을 경우, 현재 최대 인원 입력의 최대값인 99로 요청이 가도록 구현 * feat: Step3 컴포넌트에 memo 추가 * refactor: Step4~8 컴포넌트 이름 변경 - https://github.com/woowacourse-teams/2022-momo/pull/122#discussion_r931838328 * [FE] 404 페이지 구현 (#126) * feat: NotFound 애니메이션 컴포넌트 구현 * feat: NotFound 페이지 구현 * feat: 404 Page 라우팅 적용 * refactor: Page 프리픽스 제거 * [FE] lottie-react 버젼 충돌 이슈 해결 (#128) * chore: lottie 라이브러리 교체 - react-lottie 제거 - lottie-react 설치 * refactor: lottie 라이브러리 변경 적용 * [BE] 모임 인원 제한 추가 (#125) * feat: 모임 최대 인원 정보 추가 * feat: 모임 정원 초과시 참여 제한 로직 추가 * refactor: 모임 객체가 hostId가 아닌 Member객체를 갖도록 수정 * feat: 모임 생성시 Host가 참가자로 저장되도록 로직 추가 - 기존에는 모임 생성시 Host가 참가자로 등록되지 않았는데 해당 로직을 추가하며 문제를 해결하였다. * refactor: 참가 검증 로직을 도메인으로 이동 - 호스트가 참가자인지 체크하는 테스트 제거 * refactor: 참가 최대 인원 변수명 수정 - maxOfParticipants -> capacity * refactor: 축약 가능한 람다 표현식 축약 * style: 정렬되지 않은 쿼리문 정렬 * refactor: 메서드 네이밍 수정 * refactor: GroupResponseAssembler의 불필요한 메서드 매개변수 제거 * refactor: host필드의 불필요한 JoinColumn 설정 제거 * refactor: requestDTO의 capacity를 Wrapper클래스로 변경 * feat: 모임 정원 값에 대한 유효성 검사 추가 * test: 모임 정원 초과 테스트 로직 수정 * feat: API 변경에 따른 모임 정원 필드 추가 * refactor: Response DTO의 ID값을 Wrapper class로 통일 * refactor: 재참여 검증 메서드명 수정 - validateReParticipant -> validateReParticipate * refactor: 모임 정원 상수 로직 분리 * test: 모임 정원 유효성 테스트 추가 * [BE] 패치지 계층 수정 및 코드 컨벤션 수정 (#134) * refactor: 패키지 계층 통일 - DTO 패키지를 Serive내로 이동 * style: 코드 컨벤션 수정 * [FE] 모달 애니메이션 추가 (#131) * style: 모달 애니메이션 추가 - 열고 닫는 애니메이션을 0.3초씩 재생하도록 추가 * refactor: 모달 애니메이션 재생 시간 상수화 - 스타일링 컴포넌트에서 props로 받도록 변경 * [BE] 모임 전체 조회 반환값에 현재 참여자 수 추가 (#140) * feat: 모임 전체 조회 API 반환값에 참가자 수 추가 * refactor: 불필요한 메서드 분리 제거 * [BE] 회원 필드 변경 (#138) * refactor: 회원의 email 필드를 userId 필드로 변경 * refactor: 학습 테스트 목적의 로직 제거 * style: optimize spaces * refactor: 아이디 형식 검증 로직 추가 * [FE] 메인, 모임 상세 페이지에 해당 모임의 최대 인원 및 현재 모인 인원 수 추가 (#139) * feat: 메인 페이지에 모임 인원 수 추가 - 현재 모임에 모인 사람의 수는 아직 모임 전체 목록 조회 API에 추가되지 않았으므로, 임시로 모임 참여자 목록 API를 사용하도록 대체 * feat: 모임 상세 페이지에 모임 인원 수 추가 * fix: API 변경에 따라 메인 페이지에서 현재 모임의 참여 인원 수를 가져오는 방식 변경 * fix: 모임 상세 페이지에서 참여자 수에 1을 더하는 부분 삭제 * [FE] 회원 정보 수정 기능 구현 (#141) * chore: info 페이지의 asset 추가 * feat: useInput 훅에 setValue output 추가 * feat: UserInfo type, query key 설정 * feat: 회원 정보 수정 기능 구현 * chore: 피드백 반영 * [FE] 모임 참여 기능 구현 (#144) * feat: 모임 참여, 취소 요청 API 생성 * style: 색상 추가 * feat: 모임 참여 신청, 취소 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원 탈퇴 기능 구현 (#143) * refactor: api 명세 수정에 따른 변경 적용 - email -> userId 로 변경 * feat: 회원 탈퇴 기능 구현 * feat: 회원 탈퇴 기능 적용 * refactor: 피드백 반영 * [FE] 모임 참여 시 header가 제대로 보내지지 않는 오류 해결 (#147) * fix: post 요청 시 header를 제대로 보내도록 수정 Co-authored-by: Usage <[email protected]> * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [FE] 모임 생성, 상세 페이지에 달력 추가 (#156) * style: 달력 스타일 변경 - 레이아웃이 깨지는 부분 변경 * feat: useDate 커스텀훅 생성 - 달력을 보여줄 때 사용할 상태와 함수 반환 * feat: 모임 생성 페이지에 달력 삽입 - large 사이즈 * style: 달력 컴포넌트 스타일 변경 - transform-origin 추가 - medium 사이즈일 때 scale을 0.5 → 0.7로 변경 * style: 모임 생성 페이지 달력에 max-width 부여 * feat: 모임 상세 페이지에 달력 추가 * style: 모임 생성 페이지 달력 너비 변경 * style: aspect-ratio 축약 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * [FE] 회원가입, 로그인 시 유효성 검사 및 에러 메시지 세분화 (#161) * feat: 로그인, 회원가입 에러 컨트롤러 구현 * feat: 회원가입 유효성 검증 함수 구현 * feat: 회원가입 실시간 유효성 검증 UI 구현 * feat: 로그인 에러 세분화 및 리팩토링 - 에러 컨트롤러 적용 - 비제어 컴포넌트로 변경 * refactor: 코드 리뷰 반영 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * [FE] 바뀐 모임 목록 API에 맞게 변경 (#166) * refactor: DetailData → GroupDetailData로 네이밍 변경 * refactor: Group → GroupSummary로 네이밍 변경 * feat: 모임 목록 API에 맞게 변경 Co-authored-by: Usage <[email protected]> * [BE] 로그 기능 추가 (#155) * chore: AOP 의존성 추가 * feat: console 창에 로그 남기는 기능 구현 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * chore: JPA SQL 로깅 기능 비활성화 * fix: 삭제한 메서드 테스트 제거 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * refactor: 파일에 로그가 적히는 시간 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * chore: AOP 의존성 추가 * refactor: 이전 PR 내용 적용 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * fix: 삭제한 메서드 테스트 제거 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * refactor: 파일에 로그가 적히는 시간 추가 * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * refactor: 사용자 픽스쳐 수정 Co-authored-by: Byunghoon <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: pageNumber 필드 추가 (#169) * [BE] 모임 수정 로직 추가 및 회원정보 조회 API 반환값 수정 (#168) * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * refactor: pageNumber 필드 추가 (#169) * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 Co-authored-by: Byunghoon <[email protected]> * [FE] 무한 스크롤 구현 (#170) * feat: GroupList 타입에 pageNumber 추가 * feat: 모임 목록 API 요청 함수 변경 - 요청 링크 변경 * feat: 모임 목록 무한스크롤 구현 Co-authored-by: Usage <[email protected]> * [FE] 전체적인 UI 개선 (#172) * refactor: react query에서 isError 제거 - 에러 컨트롤을 에러 바운더리로 대체 * feat: 회원가입 UI 수정 - 회원가입 성공 시, 로그인 모달로 이동 & input 초기화 * chore: package-lock.json 업로드 * refactor: 로그아웃 컨펌 메시지 분리 * feat: 로그인 상태에 따른 헤더 메뉴 변경 * refactor: API 요청 함수 반환 타입 명시 * refactor: 기존 타입을 사용하도록 변경 * style: css 수정 Co-authored-by: Usage <[email protected]> * [FE] 에러 바운더리 fallback 컴포넌트 수정 (#174) * chore: fallback 애니메이션 추가 * feat: 에러 바운더리 컴포넌트를 유연하게 변경 - fallback UI props 추가 * feat: 카테고리 fallback UI 구현 * chore: 기본 fallback UI style 변경 - border-radius 적용 * [BE] 사용자가 참여한 그룹 목록 조회 api 구현 (#176) * feat: 본인이 참여하는 모임 조회 기능 구현 * test: 본인이 참여하는 모임 조회 기능 테스트 작성 * refactor: 본인이 참여하는 모임 조회 adoc 파일에 추가 * refactor: 본인이 참여하는 모임 테스트 변경 * refactor: 불필요한 import문 제거 * [BE] 서브모듈 도입 (#175) * chore: git submodule 을 통한 중요파일 분리 * chore: workflow 파일 수정 * [FE] 달력에 선택된 날짜를 보여줄 수 있는 기능 추가 (#178) * feat: 시간 정제 함수 생성 - 00:00:00 형태로 들어오는 시간을 **시 **분으로 정제하여 반환 * feat: 모임 생성 시의 입력 상태에 schedules 추가 * style: 달력 css 수정 - transform-origin 제거 * feat: 스케줄로 선택된 날짜와 아닌 날짜 분기 처리 * feat: 선택된 날짜 컴포넌트 생성 - 색상 변경 - 호버링 시 조그맣게 시간 모달 * refactor: isHovering → isHover로 변경 * [FE] 모임 모집 마감 기능 구현 (#181) * feat: 모임 모집 마감 관련 상수화 * feat: 모임 모집 마감 요청 API 함수 생성 * feat: 모임 모집 마감 기능 구현 * [FE] utils 함수 테스트 코드 작성 (#183) * chore: jest 설치 및 명령어 설정 * refactor: 시간 단위 상수화 * test: date 함수 단위 테스트 작성 * [FE] 해당 모임에 대한 사용자의 역할 판단 로직 추가 (#185) * fix: 로그인 요청 시 받아오는 데이터의 타입 변경 * feat: 로그인 시 리코일에 저장하는 기능 추가 * feat: 내 정보 페이지에서 로그인한 사용자의 정보를 가져오는 방법 수정 - 기존에 API 요청을 통해 가져왔다면, 저장된 리코일의 정보를 가져오도록 수정 * feat: 현재 로그인한 사용자가 호스트인지 판단하는 로직 추가 * feat: 현재 로그인한 사용자가 모임의 참여자인지 판단하는 로직 추가 * fix: 참여자 목록에서 호스트를 제외한 사람만 구분하여 보여줄 수 있도록 변경 * [BE] 배포서버 데이터베이스 변경 (to Mysql) (#188) * chore: application.yml 계층 단순화 및 mysql 연동 * chore: data.sql 파일 제거 * [FE] 로그인 시 회원정보를 제대로 가져오지 못하는 오류 해결 (#190) * fix: access token 저장 후 사용자 정보를 요청하도록 순서 변경 * chore: package-lock 업로드 * feat: 모임 참여 신청, 취소, 모집 마감 시에 데이터 최신화 기능 추가 (#191) * chore: API 주소 업데이트 (#194) Co-authored-by: Usage <[email protected]> * [BE] 배포 서버 재시작 시 DB 초기화되는 현상 발생 (#199) * chore: submodule 업데이트 * chore: 쿼리 로깅 기능 비활성화 * [FE] 모임 생성 시 상세 일정 입력 기능 추가 (#200) * style: input disabled 스타일 추가 * feat: 생성 페이지에서 duration 구성하여 전달하도록 추가 * style: 달력에 스타일 추가 - 애니메이션 - disabled date * feat: 달력 기능 추가 구현 - duration이 있을 경우, duration이 아닌 날짜는 disabled 처리 - 날짜를 선택하는 기능 - 선택된 날짜를 보여주는 기능 * feat: 세부 일정 입력 기능 구현 - 달력의 날짜를 선택하여 일정 입력 - api에 일정 추가 Co-authored-by: Usage <[email protected]> * [FE] 마감된 모임에 대해 상태 반영 (#192) * feat: 모임 상세 데이터에 finish 타입 추가 * feat: 모집 종료 버튼 구현 * chore: 코드 리뷰 반영 * feat: 설명이 없는 모임은 description 영역 제거 * feat: 모집 마감시 DetailContent에 표시 * feat: 마감된 모임은 메인 화면에서 마감 표시 * [FE] 달력 일정 호버 시 모달에 겹치면 모달이 계속 여닫히는 오류 해결 (#202) * feat: 시간 모달에 호버 시 모달이 꺼지지 않는 기능 추가 * refactor: 함수 네이밍 변경 - toggleHovering → changeHoverState * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * fix: 무한 스크롤 시 마지막 페이지의 데이터를 보여주도록 추가 (#208) * [BE] 에러코드 추가 (#204) * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * refactor: 리뷰 반영 Co-authored-by: yukong <[email protected]> * fix: 오늘 날짜 하이라이팅 우선순위 변경 (#215) - 선택할 경우 > 오늘일 경우 * fix: getNewDateString에 한국 시간대 적용 (#217) * [BE] Google Oauth2 연동 (#213) * feat: Google Oauth 요청을 책임지는 Support 클래스 구현 * feat: Google Oauth 로그인 기능 구현 * test: Google Oauth 테스트코드 작성 * chore: application.yml 관심사 분리 및 profile 간의 중복 제거 * chore: rest docs api 문서화 생성 * chore: security 서브모듈 업데이트 * chore: security 서브모듈 업데이트 * feat: GoogleProvider 필드 불변성 보장 * refactor: OauthService 필드명 변경 * refactor: OauthService 필드명 변경 * refactor: 사용하지 않는 클래스 제거 * refactor: MemberResponse 빈생성자 어노테이션 추가 * refactor: MemberRepository#findByUserId 반환타입을 Optional로 변환 * style: 변수명 오타 수정 * refactor: MemberResponse 빈생성자의 접근제어자 private으로 지정 * refactor: OauthController#access api의 반환값을 dto로 매핑 * refactor: Oauth에 대한 에러코드 작성 및 예외처리 * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#225) * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#227) * [BE] 모임 수정, 모임 삭제 기능을 참여자가 없을 경우에만 가능하도록 변경 (#222) * refactor: 모임 삭제 시 주최자 외 참여자가 있을 경우 삭제 불가능 * refactor: 모임 수정 시 주최자 외 참여자가 있을 경우 수정 불가능 * refactor: 모임 수정 시 이름도 수정 가능하게 변경 * refactor: 메서드명 수정 * refactor: 공통 로직 메서드로 분리 * test: 검증 라이브러리를 JUnit 에서 AssertJ 로 변경 * refactor: 처리하지 못한 예외에 한해 로그 작성 * [FE] 메인 페이지 UI 개선 (#229) * style: 메인 페이지 카테고리 UI 변경 * style: 모임이 없을 경우의 UI 추가 * feat: MSW 전체 모임 목록 코드 업데이트 * feat: 다음 페이지가 없을 때는 요청을 보내지 않도록 추가 - 페이지 번호와 모임 목록 데이터를 업데이트하는 부분 분리 * feat: 모임 목록 데이터를 가져오는 중이라면 로딩 바를 보여주도록 추가 - 이를 위해 isLoading → isFetching을 사용하도록 변경 * style: 카드 이미지를 img 태그에서 background로 변경 * style: 마감 완료된 모임에 대해 회색 필터링 적용 * style: 페이지 레이아웃 너비 변경 - 100vw로 설정 시 가로 스크롤이 생기므로 100%로 변경 * style: 모임 목록 컨테이너 스타일링 추가 * style: 메인 페이지 사용하지 않는 스타일링 제거 * style: 카드 호버 시 살짝 커지도록 추가 * fix: 모임이 없을 경우의 UI 가운데 정렬 * fix: Wrapper → Container로 변경 * [FE] TOP 버튼 구현 feat: TOP 버튼 구현 (#231) - 메인 페이지에 추가 * [FE] 모임 생성에서 모임 시작 기간이 끝 기간을 넘어가면 끝 기간을 맞춰서 연장하도록 수정 (#233) * fix: 시작 날짜 선택 함수 변경 - 시작 날짜가 종료 날짜보다 작으면 종료 날짜를 변경하도록 수정 * refactor: 필요없는 코드 제거 * [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 (#235) * refactor: Oauth Redirect URI 생성방식 개선 * style: 오타 수정 * refactor: 관심사에 따른 Configuration 분리 * refactor: 구글 Oauth AccessToken 요청에 사용되는 redirect_url 형성 방식 개선 * chore: submodule update * [FE] 환경변수 설정 (#237) * chore: webpack-merge dotenv 설치 - npm scripts 변경 * chore: gitignore에 env 추가 * chore: webpack 모드 설정 - common, development, production * refactor: base url 환경변수로 이전 Co-authored-by: Usage <[email protected]> * [BE] 리프레시 토큰 구현 (#238) * feat: 리프레시 토큰 발급 로직 구현 * feat: 리프레시 토큰을 담을 Entity와 Repository 구현 * rebase develop-be - [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 * feat: 리프레시토큰에 누락된 Payload값 추가 * style: RefreshToken 클래스명을 Token으로 변경 * feat: 엑세스 토큰 재발급 로직 구현 * feat: 리프레시 토큰을 검증하는 인터셉터 구현 * feat: 로그인시 리프레시토큰 값을 DB에 저장하는 로직 추가 * feat: 엑세스 토큰을 재발급받는 API 구현 * test: 리프레시 토큰을 통한 엑세스 토큰 발급 인수 테스트 추가 * refactor: DB 값을 업데이트하는 로그인 로직에 누락된 트랜잭션 어노테이션 추가 * refactor: DB에 저장된 리프레시토큰 값과 다를 경우 예외가 발생하도록 로직 수정 * refactor: 토큰의 유효기간을 서브모듈에서 읽어오도록 변수 수정 * chore: 서브모듈 버전 업데이트 * feat: token객체가 Member 객체를 갖도록 수정 * refactor: 리프레시토큰 값 동기화 메서드 분리 * test: 잘못된 테스트 코드 수정 * refactor: Optional의 기본 기능을 사용하도록 수정 * feat: 로그아웃시 API 구현 * style: 메서드명 오타 수정 * test: 컨트롤러 테스트의 responseField제거 * test: 인수 테스트의 static 메서드의 prefix제거 * refactor: 리프레시토큰 api 수정 * [BE] 모임 탈퇴 기능 구현 (#240) * feat: 모임 탈퇴 기능 구현 * feat: 주최자는 모임 탈퇴 불가능 * feat: 모임에 참여자가 아닐 경우 모임 탈퇴 불가능 * feat: 모집이 마감된 모임의 탈퇴 불가능 * feat: 조기 종료된 모임에 탈퇴 불가능 * refactor: 메서드 변경 및 메서드 추출 * refactor: import 형식 변경 * [FE] 환경 변수 서브 모듈화 (#243) * chore: 서브모듈 등록 * fix: 환경 변수 파일 경로 수정 * [BE] Oauth 인증 - Redirect Uri 전달받도록 변경 (#241) * refactor: Oauth Redirect Uri, 파싱하지 않고 전달받는 방식으로 변경 * chore: index.html 업데이트 * chore: submodule 업데이트 * chore: index.html 업데이트 * [FE] 모임 생성 페이지에서 각 스텝에 대해 모달로 띄워주는 호버 이벤트 추가 (#244) feat: 모임 생성 페이지에서 각 스텝별 모달 추가 * [BE] 로그인기능 실패 오류 수정 (#248) * fix: 로그인시 DB에 접근이 되지 않던 오류 수정 * test: 테스트의 sql쿼리문에 token 테이블 정보 추가 * docs: restDocs에 리프레시 토큰관련 API 추가 * fix: production mode env 파일 경로 수정 (#252) * [BE] OAuth 로그인기능 실패 오류 수정 (#254) * [FE] 헤더에 로그인 정보 Dropdown 추가 (#253) * refactor: assets 폴더 정리 * style: TOP 버튼 내용을 svg로 변경 * feat: useClosingState 커스텀훅 생성 - 닫는 애니메이션을 보여주기 위해 닫는 과정을 지연시키는 커스텀훅 - 기존에 사용하던 모달 컴포넌트에서 커스텀훅으로 분리 * feat: 헤더에 현재 로그인한 사용자 메뉴를 드롭다운으로 추가 * fix: 헤더 고정을 sticky → fixed로 변경 - 헤더 영역 확보를 위해 헤더 밑 내용에도 padding 적용 * [FE] Google OAuth 로그인 구현 (#255) * chore: google login svg 추가 * feat: google 로그인 api 구현 * feat: 구글 로그인 UI 구현 * feat: 구글 로그인 리다이렉션 페이지 구현 * feat: 회원가입 바로가기 링크 추가 * refactor: 피드백 반영 * [BE] 이미지 업로드 기능 구현 (#246) * feat: file upload/save 컨트롤러 작성 * feat: file upload/save 서비스 기능구현 * feat: 파일 업로드 테스트 작성 * refactor: displayname 추가 * refactor: test restdocs 추가 * refactor: test restdocs 누락된 어노테이션과 adoc 추가 * refactor: api 네이밍 변경 * feat: 이미지 확장자 검증 추가 * refactor: 리뷰 반영 * refactor: MomoException으로 변환 * refactor: 불필요 주석 제거 * refactor: 컨벤션 맞추어서 코드 수정 * [BE] SonarQube 서버 구축 및 Github Actions PR 연동 * [FE] 스낵바 구현 (#264) * feat: 포탈에 스낵바 추가 * feat: 리코일에 스낵바 상태 추가 - isShowing, message * feat: useSnackbar 커스텀훅 생성 - setMessage, resetSnackbar 함수 존재 * refactor: useClosingState 타입 변경 - Function → () => void로 명시 * feat: 스낵바 컴포넌트 생성 - 페이지 레이아웃에 스낵바 추가 * feat: 성공 alert을 스낵바로 교체 - 모임 참여, 취소, 삭제, 마감 - 로그인, 회원가입, 회원정보 수정 * [FE] 내 모임 페이지 구현 (#265) * feat: 내가 참여한 모임 api 구현 * refactor: Search 컴포넌트의 검색창 영역 분리 * refactor: NoResultContainer를 별도의 컴포넌트로 분리 * feat: 내가 참여한 모임 컴포넌트 구현 * feat: 내 모임 페이지 구현 - 헤더에서 내 모임 페이지 링크 연결 * chore: 코드 리뷰 반영 * [FE] 로그아웃 요청 추가 (#267) * feat: 로그아웃 요청 함수 생성 * feat: 로그아웃 시 서버에 요청하는 기능 추가 * feat: 액세스 토큰 만료 시 자동 로그아웃 기능 추가 * [BE] Code Smell 제거 (#263) * refactor: Optimize imports * test: 테스트 클래스 접근제어자 수정 * refactor: 빈 생성자 추가 및 필드 선언 변경 * style: 불필요한 개행 제거 * refactor: global 패키지 구성 * refactor: 잘못 사용된 연산자 수정 * style: 변수 오타 수정 * refactor: inverted 하게 사용되는 메서드 리팩터링 * refactor: 메서드 분리 * refactor: 파일 생성 검증 순서 변경 * refactor: 업로드 파일 검증 로직 리팩터링 * [BE] 모임 수정 API Docs 활성화 (#272) * [BE] 회원 탈퇴 기능 구현 (#269) * refactor: 사용자 테이블에 deleted 필드 추가 * refactor: 회원 탈퇴 시 deleted 필드 변경 * refactor: 회원 탈퇴 시 개인정보 변경 * refactor: develop-be 이력 적용 * refactor: 회원 탈퇴 시 주최한 모임 중 진행중인 모임이 있다면 탈퇴 불가능 * test: 자신이 참여한 모임 목록 조회 테스트 추가 * test: 탈퇴한 사용자가 속한 모임의 참여자 목록 조회 테스트 추가 * style: 올바른 import 경로로 수정 * refactor: 인스턴스 변수 호출 시 this 삭제 * refactor: '탈퇴하다' 의 용어를 leave 로 변경 * refactor: 탈퇴한 사용자의 기능 제한 * test: 비어있는 값에 대한 테스트 검증 방식 변경 * refactor: lombok 에서 제공하는 메서드 사용 * refactor: 탈퇴한 사용자는 모든 기능에 접근할 수 없도록 변경 * test: 미리 구현되어 있는 메서드 사용 * refactor: 회원 탈퇴 시 모임 탈퇴 로직 변경 * refactor: 회원 탈퇴 관련 에러 코드명 변경 * fix: redirectUrl을 href에서 origin으로 수정 (#276) * [BE] 테이블 컬럼 타입과 엔티티 필드 타입의 불일치 발생 (#280) * [FE] 내 정보 페이지 UI 개선 (#278) * refactor: 내 정보 네이밍 통일 * refactor: Routes 분리 * feat: 로고 svg로 컴포넌트로 생성 * style: 페이지에 높이 적용 * feat: 피그마에 맞게 내 정보 페이지 UI 변경 - 기존에 있던 닉네임, 비밀번호 관련 함수 병합 * refactor: 공용으로 사용하는 컴포넌트 components/@shared 폴더로 정리 * refactor: 내 정보 페이지 컴포넌트 분리 - 내 정보와 회원 탈퇴 섹션 분리 * refactor: 모달 플래그 네이밍 통일 * style: 페이지 내용 전역에 높이를 지정함에 따라 다른 페이지들의 높이 스타일링변경 - calc(100% - 4rem) → 100%로 변경 * feat: 비밀번호 확인 모달 생성 * feat: 비밀번호 확인 요청 API 생성 * feat: 내 정보 수정 시 비밀번호 확인 과정을 거쳐 수정하도록 추가 * feat: 모달 상태에 비밀번호 확인 상태 추가 * feat: useModal 커스텀훅 생성 * feat: 내 정보 수정 후 새롭게 수정된 정보를 받아와 저장하는 부분 추가 * feat: 로그인 정보에 로그인 타입 추가 - 현재는 basic & oauth * feat: basic과 oauth 내 정보 화면 분리 - basic에서는 닉네임, 비밀번호를 모두 변경하고 비밀번호 확인을 할 수 있음 - oauth에서는 닉네임 변경만 가능하며 비밀번호 확인이 존재하지 않음 * refactor: '/'를 BROWSER_PATH.BASE로 변경 * refactor: 내 정보를 수정하는 함수를 내 정보 페이지로 이동 - 기존에는 비밀번호 확인 컴포넌트에 있었으나, 해당 컴포넌트의 역할과는 맞지 않다고 판단하여 이동 * [FE] 모임 마감날짜 유효성 검증 오류 수정 (#282) * feat: 날짜 유효성 검증 로직 수정 - 한국 시간 변환 함수 추가 -가장 빠른 스케쥴과 비교하는 로직 추가 * test: 함수 변동사항 적용 * chore: 주석 삭제 * [BE] 검색 기능 구현 (#277) * refactor: 모임 조회를 역순으로 하도록 수정 * feat: 카테고리별 그룹 조회 로직 추가 * refactor: 카테고리 정보를 찾지 못할 때 발생하는 예외를 다른 예외 형식과 통일 * refactor: 사용하지 않는 메서드 제거 * feat: 카테고리별 모임 조회 API 구현 * test: 제거된 API에 대한 테스트 제거 * test: 카테고리별 모임 조회 인수 테스트 추가 * test: 모임 생성 메서드 하나로 통일 * feat: 모임 키워드 검색 기능 구현 * feat: 모임 키워드 검색 API 구현 * feat: 모임 필터링 Specification 구현 * feat: 카테고리, 참여한 모임, 생성한 모임을 조회하는 Specification 구현 * feat: 카테고리, 검색 조회 API에 Specification을 통해 동작하도록 적용 * feat: 참여한 모임 조회 API 로직 수정 * feat: 주최한 모임 조회 API 구현 * refactor: 모임 필터링 Specification 체이닝으로 변경 * test: 모임 필터링 테스트 추가 * style: 모임 단일 조회 메서드명 수정 * test: 모임 조회 로직 컨트롤러 인수 테스트 추가 * refactor: rebase 충돌 해결 * style: import문 재정렬 * refactor: code smell 제거 * refactor: GroupSpecification에서 MemberId가 아닌 객체를 받도록 수정 * refactor: GroupSpecification의 반환값을 null이 아닌 predicate객체로 변환 * style: GroupFindService 메서드명 수정 * style: GroupSpecification 메서드명 수정 * refactor: GroupSpecification 빈 등록 * [FE] 새로고침 시 자동 로그아웃되는 오류 해결 (#284) * feat: access token이 유효할 시 자동 로그인이 되도록 추가 * fix: 내 정보 페이지 input에 type 부여 * refactor: 로그인 상태를 비우는 부분을 reset을 사용하여 하도록 변경 * fix: 내 정보 페이지에서 로그아웃 시 uncontrolled 경고가 뜨는 오류 해결 * style: 비밀번호 input에 placeholder 추가 * [FE] 변경된 회원정보 수정 API에 맞게 요청 형식 변경 (#289) * feat: 새로고침 시 로그인 타입을 판단하는 기능 추가 * style: 비밀번호 변경 시에만 비밀번호 확인 모달이 뜨도록 변경 * fix: 비밀번호 확인 API 요청 함수 삭제 및 비밀번호 수정 API 요청 변경 * [BE] 비밀번호 확인 API 구현 (#285) * refactor: 패스워드 전송 DTO 네이밍 수정 * feat: 비밀번호 확인 로직 구현 * feat: 비밀번호 확인 API 구현 * test: 비밀번호 확인 인수테스트 추가 * test: DisplayName명 수정 * refactor: 회원 비밀번호 수정+비밀번호 검증 통일하도록 수정 * refactor: 비밀번호 확인 메서드명 수정 * [FE] Private Route 구현 (#292) feat: Private Routes 구현 * [FE] 리프레시 토큰 적용 (#295) * feat: access token provider 생성 및 적용 * feat: 리프레시 토큰 selector 정의 * feat: refresh token provider 생성 * feat: Token 타입 정의 * feat: 리프레시 토큰을 사용하여 액세스 토큰을 요청하는 함수 생성 * feat: 헤더에서 토큰 유효성을 판단하여 재발급 또는 로그아웃 시키는 로직 구현 - 액세스 토큰이 유효하지 않음 → 리프레시 토큰으로 액세스 토큰 발급 - 리프레시 토큰이 유효하지 않음 → 로그아웃 * feat: 로그인 시 리프레시 토큰을 저장하는 부분 추가 * feat: 로그아웃, 회원 탈퇴 시 리프레시 토큰을 삭제하는 부분 추가 * [FE] 모임 검색 및 필터링 기능 구현 (#297) * feat: useInfiniteScroll 커스텀훅 생성 * fix: API 링크 수정 * feat: 내가 참여한 모임 목록에 무한 스크롤 적용 * feat: 체크박스 컴포넌트 생성 * feat: 전달된 쿼리 바탕으로 URL을 만들어주는 함수 생성 * feat: 마감된 모임 포함/제외 필터링 기능 구현 * feat: 키워드 검색 기능 구현 * feat: 카테고리 필터링 기능 구현 * feat: 내 모임 필터링 기능 구현 - 내가 참여한 모임, 내가 주최한 모임, 내가 찜한 모임 * feat: 내 모임 페이지에 TOP 버튼 추가 - 무한 스크롤이 적용된 페이지이므로 추가 * refactor: SearchForm 폴더화 * refactor: 유효하지 않은 카테고리 ID 상수화 * [FE] 모임 검색 시 엔터를 입력해도 검색되도록 추가 (#301) * feat: 엔터 입력 시에도 검색이 가능하도록 변경 - 검색 input을 폼으로 바꾸고 검색 이벤트를 submit으로 이전 * refactor: onClick 이벤트 삭제 * [FE] 모임 수정 기능 구현 (#299) * chore: calendar svg 추가 * refactor: useCreateState 리팩토링 - useState를 useInput으로 변경 * feat: 달력에서 일정 삭제 기능 추가 후 컴포넌트 분리 * refactor: useCreateState 리팩토링 변경점 적용 * refactor: useInput에 initialState 타입 추가 * fix: 날짜 비교 버그 수정 * feat: 모임 정보 수정 모달 생성 * feat: 모임 정보 수정 api 추가 * feat: 모임 수정 기능 구현 * fix: groupDetail이 갱신되지 않던 버그 수정 * refactor: 피드백 반영 * [FE] 내 모임 페이지에서 찜한 목록은 준비 중 페이지로 변경 (#303) * style: 내가 찜한 모임 섹션은 준비 중 페이지로 대체 * style: favicon 추가 * style: 내 정보 페이지의 로고 변경 - favicon 이미지를 svg화 시켜 애니메이션 적용 * [FE] groupDetail 정보 로드 오류 해결 (#305) * fix: devServer 경로 수정 * fix: group data early return 조건 변경 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * [BE] 누락된 테스트 추가 작업 (#298) * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * refactor: 중복 메소드 제거 Co-authored-by: yukong <[email protected]> * [FE] 메인 페이지에서 모임이 없을 시 마감된 모임 제외 체크박스가 보이지 않는 오류 해결 (#309) * feat: 메인 화면 모임 목록의 헤더가 모임 유무와 관계 없이 항상 보이도록 변경 - 모임이 없을 경우에는 문구가 나오지 않고 체크박스만 보임 - 카테고리 선택 시 `{카테고리이름} 모임을 찾아봤어요 🚀` 문구가 나오도록 추가 * style: favicon 파일 형식을 jpeg → ico로 변경 * [FE] 배포 모드에서 favicon이 보이지 않는 오류 해결 (#312) chore: 웹팩 설정에 favicon 추가 * [BE] 개발 서버 구축 및 실행환경 분리 (#311) * chore: profile별 DB환경 분리 * chore: profile 설정 오류 수정 * chore: 테스트 환경 파일 yml 수정 * [FE] 마감 모임 제외 기능 disabled 처리 (#314) * fix: 오류 부분 비활성화 * [BE] 도메인 값 객체 분리 (#316) * [BE] Calendar 도메인 패키지 리팩터링 (#319) * test: calendar 및 datetime 픽스처 패키지 분리 * test: datetime 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: datetime 관련 테스트픽스처 메서드명 변경 * test: calendar 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: calendar 관련 테스트픽스처 메서드명 변경 * test: DeadlineFixture 테스트픽스처 생성 * test: DurationFixture 테스트픽스처 상수 이름 변경 * refactor: calendar 패키지 도메인 리팩토링 및 테스트 보충 * test: calendar 패키지 테스트픽스처 메서드명 변경 * refactor: Schedule 메서드 분리 롤백 * style: Duration 메서드 메서드명 변경 * refactor: ScheduleFixture 메서드 접근제어자 수정 * [BE] 조회 클래스 리팩토링 (#322) * refactor: GroupSpecification 패키지 이동 * fix: 종료여부 확인과정에서 잘못된 쿼리생성 수정 * refactor: 매직넘버 제거 * refactor: 패키지 분리 * style: enum 상수 선언 스타일 수정 * style: 무의미한 빈줄 제거 * [FE] 프로젝트 리팩토링 (#325) * refactor: 라이브러리 수정 - 스토리북 제거 - esbuild loader 추가 * feat: react devtools가 배포 모드에서는 동작하지 않도록 추가 * refactor: API 요청 함수 네이밍 통일 * refactor: 페이지 종속 컴포넌트는 페이지 폴더 하위로 이동 * refactor: 컴포넌트 리팩토링 * refactor: 기타 파일 리팩토링 Co-authored-by: Usage <[email protected]> * [FE] 메인, 상세, 수정 페이지 리팩토링 (#329) * refactor: 메인 페이지 리팩토링 * refactor: 모임 상세 페이지 리팩토링 * style: 모임 상세 페이지 사이드바 스타일링 수정 * style: global input style에 border-box 추가 * refactor: useCreateState 반환값 타입 추가 - 해당 함수의 반환 타입을 재활용할 일이 생겨 타입 추가 * refactor: 모임 수정 모달 리팩토링 및 일부 스타일링 수정 * [FE] OAuth, 생성, 내 모임, 내 정보 페이지 리팩토링 (#330) * refactor: Auth 페이지 리팩토링 * refactor: Create 페이지 리팩토링 * refactor: 추가된 setCapacity 메서드 반영 * fix: 모임 수정시 같은 스케쥴이 중복해서 추가되던 버그 수정 * refactor: 내 모임 페이지 리팩토링 * refactor: 내 정보 페이지 리팩토링 * chore: 코드 리뷰 반영 * [BE] 모임 패키지 리팩터링 및 병합 (#323) * refactor: Group 패키지에 Participant 패키지 통합 * refactor: Calendar 사용하지 않는 레거시 메서드 제거 * refactor: Group#Builder 제거 * refactor: request dto 계층 분리 * refactor: 관심사에 따른 Group Controller 분리 * refactor: 관심사에 따른 Group Service 분리 * refactor: 서비스 계층의 비즈니스 로직을 도메인 계층으로 옮김 * refactor: 사용하지 않는 Group 메서드 제거 * refactor: GroupManageService#update 메서드 개선 * refactor: 사용하지 않는 클래스 제거 * refactor: toString 추가 * refactor: GroupSpecification 리팩터링 * style: Group 메서드 배치 변경 * refactor: GroupFindRequest Boolean 필드타입을 원시타입으로 변경 * refactor: Participants orphanRemoval 설정 * feat: exception 클래스 및 code,message Enum 생성 * feat: Group 도메인 exception 클래스 및 code,message Enum 생성 * test: 인수테스트 예외코드 검증 추가 * test: ParticipantServiceTest 리팩토링 * test: GroupSearchServiceTest 리팩토링 * test: GroupFixture builder 메서드 축약 * test: GroupManageServiceTest 리팩토링 * test: GroupFindServiceTest 리팩토링 * style: 코드 컨벤션 정리 * refactor: Group ErrorCode 세분화 작업 * refactor: Group 도메인 예외처리 세부화 및 ErrorCode 관심사 분리 * style: GroupFindAcceptanceTest 메서드 오타 수정 * test: RestAssured Logging 기능 Profile 설정가능하도록 수정 * style: EOF 추가 * style: static import 처리 * refactor: GroupManageService 템플릿콜백패턴 적용 * refactor: 예외메시지 관리 방식 변경 * ExceptionCode / ExceptionMessage 제거 * GroupErrorCode 활용 * 행위 기반에서 원인 기반으로 예외 메시지 내용 변경 * refactor: Group 검증 예외처리 리팩터링 * refactor: Participants 검증 예외처리 리팩터링 * refactor: OneToMany Fetch.Lazy 제거 (default이므로) * refactor: @EqualsAndHashCode @ToString 설정 * refactor: Group Controller 리팩토링 * refactor: Capacity 내부로 CapacityRange 통합 * refactor: host 칼럼명 명시 * refactor: GroupIdResponse 빈생성자 제거 * refactor: 사용하지 않는 클래스 제거 * test: 인수테스트 @SuppressWarnings("NonAsciiCharacters") 선언 * test: RestHandler 함수형인터페이스 제거 * test: GroupFixture#setDeadlinePast 리팩토링 * refactor: Capacity#isSmallThan 메서드명 변경 * refactor: GroupFindRequest Getter 수정 * refactor: CascadeType.REMOVE 제거 * refactor: Controller 계층 DTO 네이밍 수정 * refactor: Group Controller/Service 네이밍 수정 * refactor: Group#leave 메소드명 수정 * refactor: GroupFindRequest 어노테이션 배치 변경 * test: 무의미한 throws 예외전파 제거 * test: TestConstructor 어노테이션 지정 * style: optimize imports * style: GroupFindService 상수 개행 * [BE] 개발서버 배포가 실패하는 이슈 (#333) * chore: 개발 서버 api 주소 변경 (#334) Co-authored-by: Usage <[email protected]> * [FE] 번들 크기 최적화 (#337) * chore: 필요한 모듈 설치 * chore: copy-webpack-plugin 적용 - 폰트 형식 지원하도록 추가 * feat: 폰트 최적화 * feat: 페이지 지연 로딩 * chore: js 파일명 해시 적용 * chore: 웹팩 정리 Co-authored-by: Usage <[email protected]> * [FE] 렌더링 최적화 (#340) * feat: 모임 카드에 memo 적용 * feat: layout shift 최적화 * refactor: 모임 생성 관련 타입 정리 * chore: 개발 / 배포 모드 빌드 스크립트 작성 * feat: top 버튼 연속 클릭 방지 * style: 스크롤바 커스텀 * feat: 마이페이지 리렌더링 최적화 Co-authored-by: Usage <[email protected]> * fix: webpack-bundle-analayzer 비활성화 (#342) - 우선 임시로 주석 처리 - 빌드가 무한로딩되는 문제가 발생하여 비활성화 * [FE] MSW 비활성화 (#343) fix: MSW 비활성화 Co-authored-by: Usage <[email protected]> * [BE] 조회로직 Specification(Criteria) -> QueryDsl 변경 (#339) * chore: queryDsl 환경설정 Co-authored-by: sinb57 <[email protected]> * chore: build.gradle 문단 구분 Co-authored-by: sinb57 <[email protected]> * refactor: 기본 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 주최한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 참여한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: GroupSearchService에 연동된 GroupRepository를 Criteria에서 QueryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: Specification(Criteria) 제거 Co-authored-by: sinb57 <[email protected]> * style: 잘못된 컨벤션 수정 Co-authored-by: sinb57 <[email protected]> * refactor: 가독성 향상을 위한 변수 추출 Co-authored-by: sinb57 <[email protected]> * refactor: 템플릿 콜백 패턴 적용 Co-authored-by: sinb57 <[email protected]> * style: 개행 컨벤션 통일 Co-authored-by: sinb57 <[email protected]> * refactor: 상수 제거 및 메서드 배치 순서 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition 생성 Co-authored-by: sinb57 <[email protected]> * refactor: 동적 쿼리 생성 방식을 BooleanBuilder 사용으로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition#Getter Optional 적용 Co-authored-by: sinb57 <[email protected]> * refactor: ConditionFilter 클래스 분리 Co-authored-by: sinb57 <[email protected]> * refactor: FinCondition#Getter Optional 제거 Co-authored-by: sinb57 <[email protected]> * refactor: 참여 인원수에 대한 매직넘버에 의미 부여 Co-authored-by: sinb57 <[email protected]> * refactor: 인터페이스 제거 및 클래스명 변경, 패키지 분리 Co-authored-by: sinb57 <[email protected]> * refactor: CQRS 패턴으로 GroupRepository CRUD 분리 Co-authored-by: sinb57 <[email protected]> * refactor: 패키지 구조 및 조회 관련 도메인 이름 수정 Co-authored-by: sinb57 <[email protected]> * refactor: supplier 파라미터명 수정 Co-authored-by: sinb57 <[email protected]> * refactor: GroupManage~ 클래스를 Modify로 변경 Co-authored-by: sinb57 <[email protected]> Co-authored-by: sinb57 <[email protected]> * [FE] 이미지 파일 최적화 feat: 카테고리 이미지 jpg → webp 변환 Co-authored-by: Usage <[email protected]> * [FE] gzip 최적화 (#350) feat: gzip 압축 설정 Co-authored-by: AhhyunLee <[email protected]> * [BE] 구글 OAuth 버그 해결 (#348) * fix: 구글 로그인 요청 시 잘못된 정적 팩토리 메서드 수정 * refactor: 사용하지 않는 메서드 제거 * [BE] 개발서버의 DB 실행 환경 분리 (#355) * [BE] 인덱스 설정을 통한 DB 조회 성능 개선 (#356) * refactor: ConditionFilter#filterByCondition 성능을 고려하여 where절 순서 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 생성 Co-authored-by: nbalance97 <[email protected]> * chore: docker 가이드라인 작성 Co-authored-by: nbalance97 <[email protected]> * chore: .gitignore 업데이트 Co-authored-by: nbalance97 <[email protected]> * chore: local-datasource.yml DB 전환(h2 -> mysql) Co-authored-by: nbalance97 <[email protected]> * chore: docker mysql 접속 자동화 스크립트 Co-authored-by: nbalance97 <[email protected]> * chore: docker README 업데이트 Co-authored-by: nbalance97 <[email protected]> * style: docker sh EOF 추가 Co-authored-by: nbalance97 <[email protected]> * chore: docker container name 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 접속 데이터베이스 지정 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 분리 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 디렉터리 분리 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 수정 Co-authored-by: nbalance97 <[email protected]> * feat: Group 인덱스(deadline) 설정 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 파일명 수정 Co-authored-by: nbalance97 <[email protected]> * chore: docker init.sql 제거 및 local-datasource.yml ddl-auto 수정 Co-authored-by: nbalance97 <[email protected]> * style: .gitignore EOF 추가 Co-authored-by: nbalance97 <[email protected]> Co-authored-by: nbalance97 <[email protected]> * [BE] Group 도메인 N+1 문제 해결 (#358) * refactor: Group-Participants Fetch전략 Eager로 변경 * refactor: Group 도메인 QueryDsl fetchJoin 적용 * chore: index.html 제거 * [BE] 지도 도입에 따른 API, 로직 수정 (#360) * feat: Group도메인의 String 타입의 Location을 값 객체로 변경 * test: Group도메인의 String 타입의 Location을 값 객체로 변경 * feat: 그룹 수정정보에 Location 정보 제거 * feat: 모임 장소 수정 API생성 * test: 모임 장소 수정 기능 테스트 추가 * docs: 모임 장소 수정 restdocs추가 * refactor: location의 detail column name 값 수정 * test: init.sql의 detail column name 값 수정 * [FE] 지도 API 연결 (#362) * chore: 서브모듈 업데이트 * chore: react-daum-postcode 설치 * chore: 카카오맵 설정 추가 * chore: 웹팩에 카카오맵 키 추가 * style: disabled input 글로벌 스타일 추가 - 커서 스타일 추가 * style: 스낵바 z-index 추가 * feat: DaumPostCode 모달 생성 * fix: location 타입 수정 * chore: 카카오맵 타입 추가 * fix: 모임 수정에서 장소 수정 제거 * feat: 모임 생성 시 Postcode 모달을 사용하여 주소를 입력하도록 추가 * feat: 모임 상세 페이지에 카카오맵 추가 * [FE] 찜 기능 구현 (#364) * feat: 메인 페이지 모임 목록에 찜 여부 표시 * feat: 찜하기 / 찜 취소하기 api 추가 * feat: 모임 상세 페이지에 찜하기 플로팅 버튼 구현 - useThrottle 구현 - Top 플로팅 버튼에 useThrottle 적용 * feat: 내 모임의 내가 찜한 모임 탭에 찜한 모임들을 표시 * feat: api 변경 사항 적용 & 상태 변경과 동시에 적용되도록 수정 * fix: 버그 및 css 수정 - dimmer, snackbar z-index 수정 - 2022-08-19 hotfix 내용 복구 * [BE] Oauth2 로그인 실패 해결 (#367) fix: oauth2 로그인 실패 이슈 해결 (임시비밀번호 형식) * [FE] 릴리즈 이전 수정사항 반영 (#369) chore: 수정사항 반영 * [BE] 찜 기능 구현 (#363) * feat: 찜 도메인 구현 Co-authored-by: sinb57 <[email protected]> * feat: 찜하기, 찜 취소 API 구현 * feat: 찜한 모임 조회 API구현 * feat: Authorization 필더를 선택적으로 받도록 하는 어노테이션 생성 * feat: 모임 조회 반환값에 찜 여부 추가 * docs: 모임 찜하기 api추가 Co-authored-by: sinb57 <[email protected]> * [BE] 모임 참여인원이 실제와 다르게 출력되는 현상 해결 (#376) * refactor: findGroups fetchJoin 제거 * refactor: findGroups distinct 추가 * fix: 누락된 from 추가 * [BE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#384) * refactor: Token과 Member연관관계의 JoinColumn 컬럼명 명시 * test: TokenService 메서드 테스트 추가 * test: 토큰 만료시 발생하는 예외 테스트 추가 * refactor: 같은 토큰인지 검증하는 메서드의 반환값 반대로 수정 * [BE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#378) * refactor: 마감여부 인원수로 체크하지 않도록 로직 변경 * refactor: 미사용 메서드 제거 * refactor: 메서드 단일화 * [BE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#379) * refactor: 탈퇴한 회원의 정보 수정 로직 변경 * refactor: 탈퇴한 회원의 이름을 빈값으로 반환 * refactor: GhostMember 클래스명 변경 * refactor: 보여지는 탈퇴한 사용자의 이름 상수화 * [FE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#390) * chore: 사용하지 않는 모듈 삭제 * feat: 토큰 저장소를 세션 → 로컬로 변경 * fix: 리프레시 토큰 오류 해결 * [BE] 모집이 마감된 모임에 대하여 찜하기/찜취소 기능 에러가 발생하는 현상 (#386) * test: GroupSearchRepositoryTest 위치 변경 * test: Favorite, Favorites 도메인 테스트 추가 * fix: 마감된 모임을 찜하지 못하던 오류 수정 * fix: 마감된 모임을 찜 취소하지 못하던 오류 수정 * test: 마감된 모임에 대한 찜하기 기능 테스트 추가 * [BE] QueryDSL 이용하여 pagination 할 때 limit 이 설정되지 않는 현상 (#389) * fix: 찜 모임 조회시 Full Scan을 한 후 JVM내에서 페이지내에션을 하던 오류 수정 * refactor: 사용하지 않는 메서드 제거 * [FE] 일정값이 없을때 모임이 생성되지 않는 에러 해결 (#393) * fix: 일정값이 없어도 모임이 생성되도록 수정 * feat: copyObject 메서드 유틸에 추가 - compare -> object 파일 이름 변경 * chore: 테스트 라이브러리 설치 및 업데이트 - jest 버전 업데이트 28.1.3 -> 29.1.1 - @type/jest 버전 업데이트 28.1.6 -> 29.1.0 - ts-jest 설치 * test: 모임 생성 유효성 검증 테스트 추가 * chore: 경고창에 error.message를 보여주는 것으로 변경 * [FE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#394) * chore: 모듈 재설치 * feat: 모임 인원이 가득 찰 경우의 버튼 추가 * [BE] 모집 마감 시간이 지난 모임이 마감되지 않았다고 나타나는 현상 * [FE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#398) * fix: 바뀐 API 명세에 맞게 빈 문자열의 참여자는 탈퇴한 사용자라고 판단하여 표시 * feat: 탈퇴한 회원임을 알리는 가이드 메시지 추가 * feat: 호스트가 탈퇴했을 경우에도 탈퇴한 사용자임을 알리는 부분 추가 * feat: 누락된 탈퇴한 주최자 부분 추가 * refactor: 피드백 반영 * [FE] 마감된 모임에도 수정 버튼이 보이는 오류 해결 (#403) * fix: 마감된 모임에는 수정 버튼이 보이지 않도록 추가 * fix: useEffect dependency 오류 주석 추가 - 추후 해결 방법 강구 * [BE] 페이지네이션 과정에서 Page의 hasNext()가 잘못 나오는 오류 + 찜 조회 기능 오류 (#400) * fix: 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 좋아요한 그룹의 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 찜한 모임에서 중복된 데이터가 조회되는 오류 수정 * fix: 찜한 모임 조회에서 distinct를 거는 위치 수정 * test: 잘못된 테스트 코드 수정 * fix: 찜한 모임 조회에 중복된 모임이 나오는 에러 해결 * fix: 찜한 모임 조회에 중복된 모임 id를 조회하는 오류 수정 * refactor: 불필요한 leftjoin삭제 * test: 찜한 모임 목록 조회 테스트 추가 * refactor: 찜한 목록 id조회 메서드이 접근 제어자 수정 * 조기마감된 모임에 대한 에러코드가 마감기한이 지나도 동일한 이슈 (#404) refactor: 모임진행 유효성 검증 절차 순서 변경 * [BE] 에러 메시지 축약 (#399) * refactor: MemberErrorCode, MemberException 추가 * refactor: MemberException 에러 해결 * refactor: 회원가입 api 변경 및 Category 에러코드 추가 * refactor: 이외의 에러코드 핸들링 * refactor: 코드 컨벤션 수정 * refactor: 코드 컨벤션 수정 * refactor: 상수명 리셋 * [FE] 메인 페이지에서 검색 시 새롭게 들어온 모임 목록이 기존 모임 목록에 추가되는 오류 해결 (#407) fix: 새로운 모임 검색 시 기존 모임에 덮어씌우는 코드 추가 * [FE] 에러 세분화 적용 (#405) * feat: 에러 처리를 위한 useHandleError 구현 * chore: 에러 메시지 추가 * chore: 기존 api 연결에 에러 핸들러 추가 * chore: 코드 리뷰 반영 * [BE] 도메인(Member, Group) 필드 제약조건 변경 및 검증로직 수정 (#385) * refactor: GroupName 길이 정책 수정 * refactor: Description 길이 정책 적용 * refactor: UserId UserName Password 삭제정책 수정 * refactor: 사용자 아이디 길이 정책 반영 * test: 사용자 아이디 길이 정책 변경에 의한 기존 테스트 픽스처 수정 * refactor: 사용자 닉네임 길이 정책 반영 * refactor: 유효성 메서드명 및 검증 순서 변경 * style: optimize imports * refactor: UserId UserName Password 삭제 로직 수정 * test: MemberTest 추가 * style: EOF 추가 * refactor: 칼럼 길이 제약조건 변경 * refactor: Password Blank 유효성 검증 제거 * refactor: 유효성 검증 순서 변경 * [FE] signup URL을 members로 변경 fix: 회원가입 요청 url 변경 (#411) * [BE] 모임의 일정이 설정한 날짜보다 하루 전날로 저장되는 현상 해결 (#416) * refactor: TimeZone 설정 파트 추가 * refactor: Config 분리 * [FE] 입력값 제약 조건 추가 (#418) * fix: 변경된 서버 에러 코드에 맞춰 수정 * feat: 수정된 멤버 값 제약 조건 추가 * test: 회원가입 입력 값 검증 테스트 추가 * [BE] 지원하지 않은 API 요청에 대해 404 반환 (#419) * feat: 지원하지 않는 API 요청 처리 * refactor: ControllerAdvice 중복 로직 메서드 추출 * feat: restdocs 정적자원 접근 지정 * [FE] 랜딩 페이지 (#420) * feat: 랜딩 페이지에 사용할 이미지와 svg 업로드 * feat: throttle이 쓰로틀링이 적용된 함수를 반환하도록 수정 * feat: 랜딩 페이지 구현 * feat: 메인 페이지에 랜딩 페이지 접근 방식 추가 - 메인 페이지 접근 시 이미 방문했는지 여부를 판단하여 랜딩 페이지 또는 메인 페이지를 보여주도록 추가 * refactor: 피드백 반영 * [FE] 모임 목록 마감된 모임 필터링 기본값 변경 (#423) chore: 모임 목록 필터링 기본값 변경 - 마감된 모임 제외 : false -> true * [FE] 구글 로그인 시 이전 페이지로 보내주는 기능 (#428) * refactor: 구글 oauth 토큰 리다이렉트 url 파싱 부분 제거 * feat: Private Route에 replace 옵션 추가 * feat: 구글 로그인 시 이전 히스토리를 기억해 로그인 후 해당 url로 이동하도록 구현 * fix: 참여 신청 시 로그인이 되어있지 않으면 스낵바를 보여주도록 수정 - 기존에는 alert과 함께 로그인 모달을 띄워주었으나, 찜 버튼과의 통일성으로 인해 스낵바로 수정 * feat: 스낵바에 유지 시간 추가 - 스낵바 배경 색상 변경 * refactor: TimeZone 컴파일시 지정하도록 변경 (#424) * [FE] 메인 페이지 디자인 변경 (#432) * chore: svg 추가 * feat: search section 디자인 변경 * feat: Card 컴포넌트 디자인 변경 * feat: Category 컴포넌트 디자인 변경 * feat: 메인 페이지 디자인 변경 * feat: 미사용 부분 변경 및 제거 - Header 투명도 제거 - 현재 Category 설명 제거 * feat: 마감시간 표시 방식 변경으로 인한 수정 * feat: 카테고리 에러 바운더리 수정 * [BE] 모임 참여 요청이 동시에 왔을 때 참여 인원을 초과하는 문제 (#431) * refactor: 모임 참여 기준에 대한 검증 기준 수정 * fix: 참여하기 로직에 대한 동시성 처리 추가 * refactor: isOutOfRange의 불필요한 괄호 제거 * [BE] Group엔티티와 Favorite엔티티의 연관관계를 단방향으로 의존성 방향 수정 (#427) * rebase branch develop-be * refactor: like관련 네이밍을 favorite으로 변경 * refactor: favorite에서 갖는 Group필드를 id로 변경 * refactor: favorite에서 갖는 Member필드를 id로 변경 * feat: 모임 찜하기시 존재하지 않는 회원, 멤버에 대한 검증 추가 * feat: 모임, 회원 삭제시 찜하기 정보 삭제로직 추가 * refactor: 회원, 모임 삭제시 찜한 목록을 삭제하는 방식을 Event방식으로 변경 * refactor: 회원, 모임 id의 유효성 검증 로직을 validateService로 분리 * feat: authenticate을 통을 통해 모임목록 조회시 유효한 회원인지에 대한 검증 로직 추가 * refactor: ValidateService 네이밍을 Validator로 수정 * feat: id를 통한 회원 존재 유무 로직 수정 * test: Validator에 대한 검증 로직 추가 * refactor: FavoriteRepository의 상위 클래스를 JpaRepository에서 Repository로 변경 * test: FavoriteRepository의 테스트 코드 추가 * refactor: Favorite관련 Listener를 하나로 통합 * fix: 모임 또는 회원 삭제시 관련된 favorite 데이터 삭제로직에 N+1 문제 해결 * refactor: DeleteEvent 클래스에 ApplicationEvent 상속 제거 * refactor: Favorite group, member 아이디에 nullable 속성 추가 * test: Autowired가 아닌 생성자 주입을 통해 의존성이 주입되도록 수정 * refactor: 회원 존재 여부 검증에 대한 로직 관심사 분리 * refactor: 데이터 존재 여부에 대한 검증 결과 필드를 isExist로 변경 * refactor: FavoriteService#cancel Optional 처리 로직 변경 * [BE] JPA 지연 로딩 적용 (#436) * refactor: fetch 타입 지연로딩으로 전환 * refactor: 공백 제거 * [BE] 동일한 사용자 이름으로 회원가입하는 경우에 대한 유효성 검증 (#437) * refactor: MemberService#signUp 이름중복 유효성 검증 추가 * test: 이름중복 유효성 검증 추가에 따른 테스트 수정 * refactor: 사용하지 않는 ErrorCode 제거 * refactor: signUp 의존성 정리 * test: SignUpRequest 생성 메서드 매개변수 변경 * style: MemberService 메서드명 오타 수정 * [FE] 모임 상세 페이지 디자인 변경 (#443) * feat: svg 업데이트 * refactor: 사용하지 않는 코드 제거 * feat: 일정 보여주는 유틸 함수 생성 * refactor: 파일 위치 변경 * feat: 찜 버튼의 refetch를 props에서 캐시 무효화로 변경 * style: 컨트롤 버튼 스타일링 변경 * style: 공통 스타일링 생성 * feat: 일정을 달력형과 리스트형으로 볼 수 있도록 구현 * style: 참여자 스타일링 변경 * style: 사이드바 재구성 * style: 모임 상세 내용 재구성 * style: 모임 상세 페이지 재구성 * feat: 상세 페이지 공통 컴포넌트 생성 * feat: 데스크톱 버전 상세 페이지 구현 * feat: 모바일 버전 상세 페이지 구현 * feat: 태블릿 이상 크기는 데스크톱, 이하 크기는 모바일 버전으로 보여주도록 구현 * refactor: svg 크기 상수화 * refactor: 변수 네이밍 변경 - initParticipants → previewingParticipants * refactor: 변수 네이밍 변경 - unit → cutLine * refactor: 변수 네이밍 변경 - unit → cutLine - initSchedules → previewingSchedules * style: min-width 기준에 +1 추가 * refactor: 사용하지 않는 스타일 컴포넌트 삭제 * refactor: break point 상수를 사용하도록 변경 * [FE] 내 모임 페이지 디자인 변경 (#445) * feat: 내 모임에 카테고리 필터링 요청 추가 * chore: 로티 애니메이션 컴포넌트 스타일 수정 * chore: 카드 컴포넌트 ui 수정 * chore: 검색, 카테고리 컴포넌트 스타일 수정 * feat: 내 모임 페이지 새 디자인 적용 * chore: 코드 리뷰 반영 * feat: 검색 키워드 추천을 placeholder로 표시 * fix: 모임 장소 수정 시 장소세부설명이 잘못 업데이트되는 이슈 해결 (#448) fix: 모임 장소 수정 시 장소세부설명이 잘못 업데이트되는 이슈 해결 * [BE] 백엔드 모임 조회 쿼리 성능개선 (#441) * refactor: fetch 타입 지연로딩으로 전환 * test: 모임 Fixture에 여러 일정이 있는 데이터 추가 * refactor: 모임 단건 조회 쿼리 개선 * test: 누락된 GroupSearchService 테스트 추가 * refactor: 모임 조회로직 쿼리 개선 * style: 잘못된 공백 라인 제거 * refactor: 메직넘버를 변수로 추출 Co-authored-by: nbalance97 <[email protected]> * [BE] 모임 수정 API와 모임 장소 수정 API 통합 (#450) * refactor: 모임 수정 API와 모임 장소 수정 API 통합 * style: Optimize imports * [FE] 모임 수정 디자인 변경 (#452) * feat: CalendarEditor에 편집 반응형 추가 * refactor: 기존의 모임 수정 모달 삭제 * fix: 모임 장소 수정 조건 수정 * feat: 데스크톱 버전에 모임 수정 기능 추가 * fix: 폴더명 수정 * feat: 모바일 버전에 모임 수정 기능 추가 * fix: 타입 수정 * chore: 개발, 배포 모드에 모두 esbuild-loader 적용 - 타입 체크는 fork-ts-checker-webpack-plugin를 사용 - 기존의 ts-loader는 삭제 * style: 모임 상세 설명에 스크롤 지정 * refactor: 피드백 반영 * [BE] 백엔드 모임 CUD 쿼리 성능개선 (#446) * refactor: Group과 Schedule의 관계를 양방향 관계로 수정 * test: 도메인 로직 위치 수정에 따른 테스트 코드 수정 * refactor: 모임 삭제 쿼리 개선 - OrphanRemoval을 통해 Schedule, Participant의 데이터를 삭제하던 로직을 repository를 통해 삭제하도록 변경 * refactor: Member 삭제에 대한 로직 보완을 위한 Participant의 orphanremoval옵션 추가 - Member삭제와 관련하여 Participants데이터 관리에 대한 성능 개선이 필요 * refactor: 모임 수정에 대한 Schedule관련 쿼리 개선 * refactor: 모임 일정 수정 관련 로직 수정 * feat: 모임 기간은 일정 내의 기간으로만 업데이트 할 수 있는 검증 로직 추가 * refacor: rebase를 통한 코드 불일치 수정 * refactor: 회원 삭제시 참여자 삭제에 대한 쿼리 개선 * refactor: JPQL문에 alias 추가 * fix: memberId를 통해 Token을 삭제할 때 이상한 쿼리가 나가는 오류 수정 * refactor: 인터페이스 구현 메서드에 Override 어노테이션 추가 * fix: 마감된 모집에 대해서 Participant정보를 삭제하는 정책 불일치의 오류 해결 * [BE] 모임 조회 로직 리팩토링 (#454) * refactor: AuthenticatedOptional 제거 및 RequestMapping 헤더 지정 * refactor: GroupSearchRepository#findParticipatedGroups 메서드 이동 및 Query 정의 * refactor: GroupSearchRepositoryCustom 조회 인터페이스 매개변수 타입 변경 * refactor: GroupSearchService 템플릿 콜백 패턴 적용 * refactor: GroupSearchService 메서드 중복 제거 및 스타일 변경 * test: 실패하는 테스트 수정 * chore: sonarqube projectKey 변경 * chore: 불필요한 어노테이션 제거 * style: Query 대소문자 스타일 통일 * [BE] timezone 문제 해결 (#456) * [FE] 내 정보 페이지 디자인 변경 (#457) * style: 상세 페이지 일정 애니메이션 수정 * fix: 상세 페이지 versions 업로드 - 깃 이슈 때문에 대소문자를 구별하지 못함 * style: 내 정보 페이지에 모바일 대응 추가 - 회원 탈퇴 버튼 스타일 변경 * refactor: Versions 폴더 삭제 * style: 상세 페이지 모바일 헤더 스타일 수정 * style: 상세 페이지 설명 부분 스타일 수정 * refactor: > 제거 * [BE] 모임 참여 취소시 DB에 데이터가 삭제되지 않는 오류 (#459) * fix: 참여 취소시 데이터가 삭제되지 않는 문제 해결 * …
sinb57
added a commit
that referenced
this pull request
Oct 18, 2022
* chore: 스프링 프로젝트 초기 환경구축 * [FE] 프론트엔드 환경 구축 (#8) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * [FE] 프로젝트 환경 세팅 보강 (#12) * chore: React + Typescript 초기 환경설정 * chore: storybook, emotion 설치 * chore: 이미지 웹팩 설정 - file-loader, @svgr/webpack 설치 및 적용 * chore: recoil 설치 * chore: react-query 설치 * chore: msw 설치 Co-authored-by: Usage <[email protected]> * [BE] 모임 도메인 설계 (#16) * feat: 모임 도메인 구조 설계 * feat: 모임 도메인의 기간 정보 원시값 포장 * chore: JPA 의존성 추가 및 환경 설정 * feat: 모임 도메인 JPA 적용 * refactor: 모임 도메인 패키지 분리 * feat: 모임 도메인 Repository 기능 구현 * feat: 누락된 nullable 제약조건 추가 * refactor: Schedules 일급 컬렉션 생성에 따른 로직 변경 * [FE] 메인 페이지 화면 마크업 (#17) * chore: 마크업에 필요한 모듈 설치 - @emotion/styled, emotion-reset * chore: 타입 선언 세분화 - declare.d.ts → global.d.ts로 변경 - image.d.ts 생성 * chore: 웹팩 설정 추가 - historyApiFallback 추가 - 절대경로 추가 * style: globalStyle, theme 생성 * style: 헤더 달린 페이지 레이아웃 생성 * style: 메인 페이지 UI 생성 * style: 헤더 UI 생성 - 푸터 삭제 Co-authored-by: Usage <[email protected]> * [FE] 모임 상세 페이지 화면 마크업 (#18) * chore: 필요한 svg 생성 * style: 모임 상세 페이지 UI 생성 Co-authored-by: Usage <[email protected]> * fix: 모임 도메인 누락된 필드 추가 (#21) * [BE] 모임 API 기능 구현 (#25) * feat: 카테고리 Service 목록 조회 기능 구현 * chore: RestAssured 의존성 추가 * feat: 카테고리 목록 조회 API 구현 * test: Category 인수테스트 리팩토링 * feat: 모임 생성 및 단일 조회 API 구현 * feat: 모임 목록 조회 API 구현 * feat: 모임 변경 API 구현 * feat: 모임 삭제 API 구현 * [BE] 코드 컨벤션 작성 및 imports문 정렬 (#30) * chore: 코드 컨벤션 파일 작성 * style: Optimize imports * [BE] 모임 API 기능 - 일부 인수테스트가 통과하지 않는 이슈 (#32) * chore: 불필요한 설정 제거 * chore: init.sql 파일의 DB 초기화 방식 변경 * [BE] 모임 API 기능 및 테스트 리팩터링 (#33) * refactor: Member와 Group 패키지 분리 * feat: Day에서 발생할 수 있는 예외 처리 로직 작성 * test: 누락된 Day 테스트 추가 * refactor: Category의 상속 클래스 변경 - JpaRepository -> Repository * refactor: Duration에서 발생할 수 있는 예외 처리 로직 작성 * feat: Schedule 레포지토리 생성 * test: 모임 관련 CRUD 테스트 수정 * refactor: TimeRequest 정보를 ScheduleRequest에서 갖도록 수정 * feat: 존재하지 않는 카테고리로 모임 생성시 발생하는 예외 처리 추가 * feat: 모임 조회시 발생할 수 있는 예외 처리 추가 * test: 모임 조회 테스트 추가 * test: 모임 삭제 테스트 코드 추가 - Repository의 deleteById를 통해 schedule도 삭제가 되는지 확인 - Service의 delete 로직 테스트 추가 * refactor: Schedule 내부 값을 요일에서 일자로 변경 * test: API 스펙 변경에 따른 테스트 초기 데이터 수정 * refactor: Group의 regular필드 제거 * refactor: 불필요한 예외 클래스 제거 * test: LocalDate 생성 방식 수정 as-is: LocalDate.parse(start, DateTimeFormatter.ISO_LOCAL_DATE); to-be: LocalDate.of(2020, 5, 8); * style: 코드 컨벤션에 맞게 재정렬 * refactor: 패키지 구조 변경 (#36) * chore: 스프링부트 버전 다운그레이드 및 DB설정 * [FE] 모임 생성 페이지 화면 마크업 (#40) * chore: eslint import order 패턴 추가 * feat: 헤더에 Link 추가 - Link의 기능 수행을 위해 App의 PageLayout을 Router 안으로 이동 * feat: 메인, 모임 상세 화면의 일부 컴포넌트에 데이터를 props로 내려줄 수 있도록 변경 - 데이터 타입 정의 * feat: path 변경 시 스크롤 위치 최상단으로 이동하도록 구현 * style: 모임 생성 페이지에서 각 단계별 마크업 UI 생성 * style: navigator 구성 컴포넌트 UI 생성 * style: 모임 생성 페이지 UI 생성 * style: 전역 스타일 추가 - input 스타일 추가 - 페이지 레이아웃 스타일 추가 Co-authored-by: Usage <[email protected]> * [BE] 회원 기능 구현 (#42) * feat: 멤버 도메인 필드 추가 * chore: validation 의존성 추가 * feat: 회원가입 서비스 로직 구현 * feat: 회원가입 API 구현 * feat: JWT 의존성 추가 및 유틸 클래스 추가 * feat: 로그인 기능 구현 * feat: 로그인 API 구현 * refactor: 로그인 메서드명 수정 - signIn -> login * feat: 회원 정보 조회 기능 구현 * feat: 인증 기능 및 정보조회 API 구현 - 인터셉터와 리졸버 구현 * test: 회원 관련 Controller test 추가 * test: 테스트 격리 * feat: 패스워드 암호화 기능 구현 * feat: 회원 탈퇴 API 구현 * style: 코드 컨벤션 통일 - 불필요한 import 제거 * feat: 패스워드 패턴 검사 추가 * refactor: 잘못된 예외 클래스 변경 * refactor: 로그인 API 반환값 수정 - Location 값 반환 삭제 * test: 회원 삭제 repository 테스트 추가 * refactor: JwtTokenProvider 중복 로직 제거 * refactor: login 메서드명 통일 * style: 불필요한 개행 제거 * test: 비밀번호 암호화 테스트 코드 추가 * refactor: 회원가입 API 명세 변경에 따른 수정 - 회원가입 기능을 auth 패키지로 이동 * test: displayName 형식 통일화 * test: 로그인 성공 테스트 수정 * refactor: sha256encoder messagedigest 상수화 * refactor: 비밀번호 패턴 에러 메시지 수정 * [BE] 회원 정보 수정 기능 구현 (#46) Co-authored-by: Seongwon97 <[email protected]> * [BE] 모임 API 기능 및 테스트 리팩터링 (#41) * test: 통과하지 않는 인수테스트 해결 * refactor: Category Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Request Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Member Response Assembler 를 통한 DTO 매핑 로직 분리 * chore: data.sql 생성을 통한 카테고리 초기값 저장 * refactor: Schedules 제거 * refactor: Group Builder 패턴 적용 * refactor: 카테고리 "전체" 항목 제거 * refactor: Duration 정적 팩토리 메서드 생성 * refactor: Schedule 정적 팩토리 메서드 생성 * refactor: Category enum 으로 대체 및 테스트 리팩토링 * refactor: ScheduleRepository 제거 * refactor: Group 과 Schedule 의 양방향 연관관계를 단방향으로 수정 * style: Cleanup Code * test: Group Repository 테스트 코드 수정 * test: Category Service 테스트 코드 수정 * feat: Duration 도메인 날짜 형식 검증 추가 * feat: Schedule 도메인 날짜 및 시간 형식 검증 추가 * test: 테스트 독립성 보장 - Group 인수테스트에서 저장된 데이터가 DB에 남아있어, 다른 테스트에 영향을 주는 문제 발생 - Group 인수테스트에 truncate 로직을 AFTER_EACH_METHOD로 지정하여 해결 * feat: Schedule 시간값 검증 로직 추가 * test: Category 인수테스트 수정 * refactor: RestAssuredConvenienceMethod 클래스 이름 변경 * refactor: Category getAll() 메서드 제거 * refactor: 정적 팩토리 메서드 및 시간 형식 검증 제거 * refactor: Schedule 정적 팩토리 메서드 제거 * refactor: Schedule 날짜 및 시간 형식 검증 로직 제거 * refactor: Duration 정적 팩토리 메서드 제거 * refactor: Duration 날짜 및 시간 형식 검증 로직 제거 * test: Duration, Schedule 픽스처 분리 * refactor: DTO 응답 객체에서 @NoArgsConstructor 제거 * refactor: 엔티티 Constructor 어노테이션 수정 * style: 불필요한 import 제거 * test: 매직넘버 제거 * test: GroupRepositoryTest 영속성 컨텍스트 DB 동기화 * refactor: merge conflict 해결 Co-authored-by: sinb57 <[email protected]> Co-authored-by: Seongwon97 <[email protected]> * [FE] 카테고리 API 연결 (#50) * chore: 절대경로 추가 - store * feat: 카테고리 axios 요청 추가 * feat: 카테고리 API mocking * feat: 카테고리 커스텀훅 구현 - useRecoilQuery, useCategory * feat: 데이터 타입 추가 * feat: 컴포넌트에서 카테고리 요청 부분 추가 * feat: recoil 카테고리 상태 추가 Co-authored-by: Usage <[email protected]> * [FE] 모임 생성 페이지 기능 구현 (#52) * feat: 모임 생성 페이지 커스텀훅 구현 - useCreateState * style: 모임 생성 페이지에서 공용으로 사용하는 스타일 추가 * chore: 모임 생성 규칙, 에러 메시지 상수화 * feat: 모임 생성 페이지에서 사용된 함수 utils로 분리 - isEqualObject - date utils - PageError 클래스 → ✨ OUR CUSTOM ERROR ✨ * feat: 모임 생성 Step1 * feat: 모임 생성 Step3 * feat: 모임 생성 Step4 * feat: 모임 생성 Step5 * feat: 모임 생성 Step6 * feat: 모임 생성 Step7 * style: svg 리소스 추가 * style: Dot 컴포넌트 props 수정 - color → isFocused, theme * feat: Navigator 컴포넌트 생성 * feat: 모임 생성 입력 데이터에 대한 유효성 검사 * feat: 모임 생성 페이지 기능 연결 * feat: 모임 기능 API mocking * feat: 모임 생성 요청 시 보낼 데이터 추가 * style: complete svg에서 사용하지 않는 스타일링 삭제 * style: Navigator의 사이드 버튼 스타일링 추가 - complete 시 크기 차이로 인해 navigator가 움직이던 부분 해결 Co-authored-by: Usage <[email protected]> * [BE] 인증 RestDocs 적용 (#56) * chore: restdocs 의존성 추가 * feat: AuthControllerTest restdocs 적용 및 관련 gradle 수정 * [ALL] .gitignore 설정 추가 (#59) * chore: .gitignore 설정 추가 * chore: .gitignore EOF 추가 * [FE] 메인 페이지 기능 구현 (#62) * chore: 카테고리 이미지 업로드 * feat: 카테고리에 맞게 이미지를 가져오는 함수 생성 * feat: 마감 기간까지의 시간 추출 함수 생성 * feat: 메인 페이지의 모임 카드 스타일 변경 - 카테고리 이미지로 변경 - 마감 기간 변경 * style: 메인 페이지의 카테고리 스타일 변경 * style: 헤더 스타일 변경 * style: 메인 페이지의 검색 섹션 스타일 변경 - 배경 이미지 삭제 - 검색 버튼 텍스트 변경 * feat: MSW를 사용한 모임 API mocking * refactor: 모임 생성 시 보내는 데이터 타입 선언 * feat: 메인 페이지 모임 목록 조회 API 연결 Co-authored-by: Usage <[email protected]> * [BE] Annotation 기반의 Interceptor를 통한 API 인증 처리 (#61) * feat: Annotation 기반의 인증 인터셉터 구현 * feat: 인증이 필요한 API 에 @Authenticated 어노테이션 설정 * [BE] 누락된 Controller 테스트 작성 (#65) * feat: CategoryController 테스트 작성 * feat: GroupController 테스트 작성 * feat: MemberController 테스트 작성 * [BE] 실패 테스트 코드 수정 (#67) * [FE] 모임 상세 페이지 기능 구현 (#69) * feat: 모임 상세 정보 요청 함수 생성 - 모임 생성 요청 함수에 리턴 값 추가 * chore: 지도 이미지 업로드 * style: theme에 filter prop 추가 - Theme 내부에 Record 적용 * refactor: mock data 수정 * fix: category의 id 타입 변경 * style: 모임 상세 페이지 이미지 추가 - 이미지에 필터 적용 * style: 모임 상세 페이지 스타일 변경 - 마감 기간 문구 수정 - 지도 이미지 추가 * feat: 카테고리명을 props로 전달하도록 변경 * feat: 모임 상세 페이지에 모임 상세정보 조회 API 적용 Co-authored-by: Usage <[email protected]> * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * [FE] 환경설정 추가 (#75) * chore: webpack 설정 추가 - output에 publicPath 추가 * chore: MSW warning option off * style: Global style 추가 - useTheme 사용 - textarea global style 추가 Co-authored-by: Usage <[email protected]> * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * [FE] 모임 삭제 기능 구현 (#79) * feat: 모임 삭제 API 구현 * style: 모임 삭제 버튼 스타일 변경 * feat: 모임 삭제 관련 메시지 생성 Co-authored-by: Usage <[email protected]> * [BE] RestDocs 적용하기 (#70) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * refactor: 카테고리 목록 조회 테스트명 수정 * refactor: index.adoc 오타 및 깨진 글자 수정 Co-authored-by: yukong <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> * [BE] 조회 로직 리팩토링 (#82) * [FE] 모달 구현 (#84) * feat: 모달 상태 Recoil에 저장 - 모달 상태 타입 정의 * feat: 클릭 이벤트 시 발생하는 버블링 막는 유틸 함수 구현 * feat: 모달 레이아웃 구현 - 포탈 사용 * feat: 로그인, 회원가입 모달 구현 - 헤더에 바인딩 Co-authored-by: Usage <[email protected]> * [BE] CI Github Action 오류 수정 (#86) * [BE] CORS 설정 변경 및 preflight 처리 (#90) * feat: CORS 설정 추가 * feat: interceptor preflight 설정 추가 * refactor: 불필요한 interceptor checking 제거 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] CORS 및 RestDocs 경로 패턴 설정 수정 (#93) * refactor: CORS 설정을 전역 Configuration 으로 클래스 분리 * refactor: RestDocs 설정 URL 패턴 적용 수정 * refactor: CORS 허용 메서드 지정 * refactor: WebConfig 클래스명 수정 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [FE] 회원가입 기능 구현 (#95) * chore: 로그인, 회원가입 모달 컴포넌트 삭제 * feat: 로그인, 회원가입 API 요청 함수 생성 * style: 모달에 그림자 추가 * chore: 로그인, 회원가입에 사용하는 상수 선언 - API 경로 → path - 메시지 * feat: useInput 커스텀훅 생성 * feat: User 타입 정의 * feat: 회원가입 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 로그인 기능 구현 (#97) * feat: access token 관리처 구현 - recoil selector 사용 - session storage에서 관리하도록 구현 * feat: 로그인 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원정보가 필요한 API 변경 (#101) * feat: 모임 생성, 삭제 요청 API 헤더에 accessToken 저장 * feat: 로그아웃 기능 구현 - 로그인 상태를 recoil에 저장 Co-authored-by: Usage <[email protected]> * [BE] JSON DateTime 형식 불일치로 인한 에러 발생 * [BE] 더미 데이터 작성 (#102) * chore: jpa 데이터 initialization 세팅 * feat: 더미데이터 추가 * feat: Category 문화생활 추가 * test: category 개수 수정에 따른 테스트 변경 * test: test yml 수정 및 repository 테스트 에러 해결 * [BE] 모임 목록 조회 API 형식 불일치 에러 발생 (#104) * feat: 모임 목록 조회를 위한 DTO 생성 * refactor: 모임 상세 조회 DTO 클래스명 변경 * style: Optimize Imports * [FE] 모임 참여자 목록 조회 기능 구현 (#106) * feat: 상수화 - 키, path * feat: 타입 선언 - UserProfile, GroupParticipants * feat: 참여자 목록 조회 API 생성 * feat: 참여자 목록 조회 기능 구현 Co-authored-by: Usage <[email protected]> * [BE] 인수테스트 리팩토링 (#109) * test: RestHandler 메서드명 통일 * test: RestHandler 사용하지 않는 메서드 제거 * test: AuthRestHandler, User 를 통한 인수테스트 리팩터링 * test: 인수테스트 DisplayName 수정 * test: Category 인수테스트 리팩토링 * test: Member 인수테스트 DisplayName 수정 * test: 모임 인수테스트 및 참여 인수테스트 리팩토링 * test: RestHandler 를 상속받은 각 도메인별 유틸성 클래스 생성 * test: GroupFixture 생성을 통한 모임 인수테스트 리팩토링 * test: 모임 CRUD 기능에 따라 인수테스트 클래스 분리 * test: MemberFixture 생성을 통한 인증/회원 인수테스트 리팩토링 * test: 테스트픽스처 클래스를 Enum 으로 변경 및 픽스처 패키지 분리 * test: truncate.sql 파일에 momo_participant 테이블 추가 * chore: init.sql, build.gradle 수정 * test: 불필요한 요소(제네릭) 제거 및 컨벤션 정리 * chore: api 명세 html 파일 빌드 생성 * chore: application.yml 불필요한 설정 제거 * style: application.yml 컨벤션 정리 * refactor: GroupResponse DTO 클래스명 변경 * test: API RestHandler 메서드명 통일 (~한다) * refactor: Optimize Annotation 및 사용하지 않는 클래스 제거 * test: DurationFixture 인스턴스 관리 방식 변경 * test: 테스트 픽스처 인스턴스 생성 방식 리팩토링 * [BE] 모임 참여 신청 시 주최자일 경우 예외 처리 추가 (#113) * refactor: 인수테스트 리팩토링 코드 추가 * refactor: 모임 참여 검증 로직 분리 * refactor: 리팩토링에 맞춰 참여자 인수테스트 추가 및 수정 * [FE] 달력 컴포넌트 구현 (#117) * feat: 달력 컴포넌트 생성 - 전달된 연도와 월을 바탕으로 해당 월의 달력만 보여주는 방식 * feat: 달력 커스텀훅 생성 - 전달된 연도와 월을 바탕으로 해당 월에서 보여질 일 수(지난달, 이번달, 다음달)를 계산하여 반환 * feat: 이전, 다음 월로 넘어가는 기능 추가 - props로 해당 함수를 전달받도록 구현 * feat: 달력 사이즈 추가 - medium, large * feat: 달력에 오늘 날짜를 표시하는 부분 추가 * style: 달력에 토, 일요일 구분 색깔 추가 * style: 각 일에 padding 추가 * refactor: dayLength → totalOfDay로 변수 네이밍 변경 * refactor: useCalendar 변수명 변경 - https://github.com/woowacourse-teams/2022-momo/pull/117#discussion_r930740289 * [FE] Suspense, ErrorBoundary 구현 (#118) * feat: ErrorBoundary 컴포넌트 구현 * refactor: 메인 페이지 section 분리 - 추천 모임 리스트 분리 * feat: ErrorBoundary 적용 * chore: lottie 설치 - react-lottie - @types/react-lottie * feat: Spinner 컴포넌트 구현 * feat: Loading 컴포넌트 구현 * feat: useRecoilQuery에 suspense옵션 추가 * feat: suspense 적용 * chore: 코드 리뷰 반영 - 스피너 애니메이션 색 변경 - css 스타일 컨벤션에 맞게 수정 - 절대경로 import 사용 * [FE] 모임 생성 페이지에 최대 인원 입력 추가 (#122) * feat: 모임 생성 Step3 컴포넌트 생성 - Step3가 추가됨에 따라 기존의 Step3~7을 Step4~8로 변경 * feat: 모임 생성 인원 관련 규칙 추가 * feat: 모임 생성 상태에 최대 인원 추가 * feat: 최대 인원 입력 기능 구현 * fix: 제거하지 않은 defaultValue 제거 * feat: Step3에 props 넘기는 부분 추가 * feat: 최대 인원 유효성 검사 추가 - 기존에 있던 ValidatorProps를 CreateGroupData로 대체 * feat: 모임 데이터 타입에 최대 인원 추가 * feat: 모임 생성 요청에 최대 인원 추가 - 입력되지 않았을 경우, 현재 최대 인원 입력의 최대값인 99로 요청이 가도록 구현 * feat: Step3 컴포넌트에 memo 추가 * refactor: Step4~8 컴포넌트 이름 변경 - https://github.com/woowacourse-teams/2022-momo/pull/122#discussion_r931838328 * [FE] 404 페이지 구현 (#126) * feat: NotFound 애니메이션 컴포넌트 구현 * feat: NotFound 페이지 구현 * feat: 404 Page 라우팅 적용 * refactor: Page 프리픽스 제거 * [FE] lottie-react 버젼 충돌 이슈 해결 (#128) * chore: lottie 라이브러리 교체 - react-lottie 제거 - lottie-react 설치 * refactor: lottie 라이브러리 변경 적용 * [BE] 모임 인원 제한 추가 (#125) * feat: 모임 최대 인원 정보 추가 * feat: 모임 정원 초과시 참여 제한 로직 추가 * refactor: 모임 객체가 hostId가 아닌 Member객체를 갖도록 수정 * feat: 모임 생성시 Host가 참가자로 저장되도록 로직 추가 - 기존에는 모임 생성시 Host가 참가자로 등록되지 않았는데 해당 로직을 추가하며 문제를 해결하였다. * refactor: 참가 검증 로직을 도메인으로 이동 - 호스트가 참가자인지 체크하는 테스트 제거 * refactor: 참가 최대 인원 변수명 수정 - maxOfParticipants -> capacity * refactor: 축약 가능한 람다 표현식 축약 * style: 정렬되지 않은 쿼리문 정렬 * refactor: 메서드 네이밍 수정 * refactor: GroupResponseAssembler의 불필요한 메서드 매개변수 제거 * refactor: host필드의 불필요한 JoinColumn 설정 제거 * refactor: requestDTO의 capacity를 Wrapper클래스로 변경 * feat: 모임 정원 값에 대한 유효성 검사 추가 * test: 모임 정원 초과 테스트 로직 수정 * feat: API 변경에 따른 모임 정원 필드 추가 * refactor: Response DTO의 ID값을 Wrapper class로 통일 * refactor: 재참여 검증 메서드명 수정 - validateReParticipant -> validateReParticipate * refactor: 모임 정원 상수 로직 분리 * test: 모임 정원 유효성 테스트 추가 * [BE] 패치지 계층 수정 및 코드 컨벤션 수정 (#134) * refactor: 패키지 계층 통일 - DTO 패키지를 Serive내로 이동 * style: 코드 컨벤션 수정 * [FE] 모달 애니메이션 추가 (#131) * style: 모달 애니메이션 추가 - 열고 닫는 애니메이션을 0.3초씩 재생하도록 추가 * refactor: 모달 애니메이션 재생 시간 상수화 - 스타일링 컴포넌트에서 props로 받도록 변경 * [BE] 모임 전체 조회 반환값에 현재 참여자 수 추가 (#140) * feat: 모임 전체 조회 API 반환값에 참가자 수 추가 * refactor: 불필요한 메서드 분리 제거 * [BE] 회원 필드 변경 (#138) * refactor: 회원의 email 필드를 userId 필드로 변경 * refactor: 학습 테스트 목적의 로직 제거 * style: optimize spaces * refactor: 아이디 형식 검증 로직 추가 * [FE] 메인, 모임 상세 페이지에 해당 모임의 최대 인원 및 현재 모인 인원 수 추가 (#139) * feat: 메인 페이지에 모임 인원 수 추가 - 현재 모임에 모인 사람의 수는 아직 모임 전체 목록 조회 API에 추가되지 않았으므로, 임시로 모임 참여자 목록 API를 사용하도록 대체 * feat: 모임 상세 페이지에 모임 인원 수 추가 * fix: API 변경에 따라 메인 페이지에서 현재 모임의 참여 인원 수를 가져오는 방식 변경 * fix: 모임 상세 페이지에서 참여자 수에 1을 더하는 부분 삭제 * [FE] 회원 정보 수정 기능 구현 (#141) * chore: info 페이지의 asset 추가 * feat: useInput 훅에 setValue output 추가 * feat: UserInfo type, query key 설정 * feat: 회원 정보 수정 기능 구현 * chore: 피드백 반영 * [FE] 모임 참여 기능 구현 (#144) * feat: 모임 참여, 취소 요청 API 생성 * style: 색상 추가 * feat: 모임 참여 신청, 취소 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원 탈퇴 기능 구현 (#143) * refactor: api 명세 수정에 따른 변경 적용 - email -> userId 로 변경 * feat: 회원 탈퇴 기능 구현 * feat: 회원 탈퇴 기능 적용 * refactor: 피드백 반영 * [FE] 모임 참여 시 header가 제대로 보내지지 않는 오류 해결 (#147) * fix: post 요청 시 header를 제대로 보내도록 수정 Co-authored-by: Usage <[email protected]> * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [FE] 모임 생성, 상세 페이지에 달력 추가 (#156) * style: 달력 스타일 변경 - 레이아웃이 깨지는 부분 변경 * feat: useDate 커스텀훅 생성 - 달력을 보여줄 때 사용할 상태와 함수 반환 * feat: 모임 생성 페이지에 달력 삽입 - large 사이즈 * style: 달력 컴포넌트 스타일 변경 - transform-origin 추가 - medium 사이즈일 때 scale을 0.5 → 0.7로 변경 * style: 모임 생성 페이지 달력에 max-width 부여 * feat: 모임 상세 페이지에 달력 추가 * style: 모임 생성 페이지 달력 너비 변경 * style: aspect-ratio 축약 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * [FE] 회원가입, 로그인 시 유효성 검사 및 에러 메시지 세분화 (#161) * feat: 로그인, 회원가입 에러 컨트롤러 구현 * feat: 회원가입 유효성 검증 함수 구현 * feat: 회원가입 실시간 유효성 검증 UI 구현 * feat: 로그인 에러 세분화 및 리팩토링 - 에러 컨트롤러 적용 - 비제어 컴포넌트로 변경 * refactor: 코드 리뷰 반영 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * [FE] 바뀐 모임 목록 API에 맞게 변경 (#166) * refactor: DetailData → GroupDetailData로 네이밍 변경 * refactor: Group → GroupSummary로 네이밍 변경 * feat: 모임 목록 API에 맞게 변경 Co-authored-by: Usage <[email protected]> * [BE] 로그 기능 추가 (#155) * chore: AOP 의존성 추가 * feat: console 창에 로그 남기는 기능 구현 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * chore: JPA SQL 로깅 기능 비활성화 * fix: 삭제한 메서드 테스트 제거 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * refactor: 파일에 로그가 적히는 시간 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * chore: AOP 의존성 추가 * refactor: 이전 PR 내용 적용 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * fix: 삭제한 메서드 테스트 제거 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * refactor: 파일에 로그가 적히는 시간 추가 * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * refactor: 사용자 픽스쳐 수정 Co-authored-by: Byunghoon <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: pageNumber 필드 추가 (#169) * [BE] 모임 수정 로직 추가 및 회원정보 조회 API 반환값 수정 (#168) * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * refactor: pageNumber 필드 추가 (#169) * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 Co-authored-by: Byunghoon <[email protected]> * [FE] 무한 스크롤 구현 (#170) * feat: GroupList 타입에 pageNumber 추가 * feat: 모임 목록 API 요청 함수 변경 - 요청 링크 변경 * feat: 모임 목록 무한스크롤 구현 Co-authored-by: Usage <[email protected]> * [FE] 전체적인 UI 개선 (#172) * refactor: react query에서 isError 제거 - 에러 컨트롤을 에러 바운더리로 대체 * feat: 회원가입 UI 수정 - 회원가입 성공 시, 로그인 모달로 이동 & input 초기화 * chore: package-lock.json 업로드 * refactor: 로그아웃 컨펌 메시지 분리 * feat: 로그인 상태에 따른 헤더 메뉴 변경 * refactor: API 요청 함수 반환 타입 명시 * refactor: 기존 타입을 사용하도록 변경 * style: css 수정 Co-authored-by: Usage <[email protected]> * [FE] 에러 바운더리 fallback 컴포넌트 수정 (#174) * chore: fallback 애니메이션 추가 * feat: 에러 바운더리 컴포넌트를 유연하게 변경 - fallback UI props 추가 * feat: 카테고리 fallback UI 구현 * chore: 기본 fallback UI style 변경 - border-radius 적용 * [BE] 사용자가 참여한 그룹 목록 조회 api 구현 (#176) * feat: 본인이 참여하는 모임 조회 기능 구현 * test: 본인이 참여하는 모임 조회 기능 테스트 작성 * refactor: 본인이 참여하는 모임 조회 adoc 파일에 추가 * refactor: 본인이 참여하는 모임 테스트 변경 * refactor: 불필요한 import문 제거 * [BE] 서브모듈 도입 (#175) * chore: git submodule 을 통한 중요파일 분리 * chore: workflow 파일 수정 * [FE] 달력에 선택된 날짜를 보여줄 수 있는 기능 추가 (#178) * feat: 시간 정제 함수 생성 - 00:00:00 형태로 들어오는 시간을 **시 **분으로 정제하여 반환 * feat: 모임 생성 시의 입력 상태에 schedules 추가 * style: 달력 css 수정 - transform-origin 제거 * feat: 스케줄로 선택된 날짜와 아닌 날짜 분기 처리 * feat: 선택된 날짜 컴포넌트 생성 - 색상 변경 - 호버링 시 조그맣게 시간 모달 * refactor: isHovering → isHover로 변경 * [FE] 모임 모집 마감 기능 구현 (#181) * feat: 모임 모집 마감 관련 상수화 * feat: 모임 모집 마감 요청 API 함수 생성 * feat: 모임 모집 마감 기능 구현 * [FE] utils 함수 테스트 코드 작성 (#183) * chore: jest 설치 및 명령어 설정 * refactor: 시간 단위 상수화 * test: date 함수 단위 테스트 작성 * [FE] 해당 모임에 대한 사용자의 역할 판단 로직 추가 (#185) * fix: 로그인 요청 시 받아오는 데이터의 타입 변경 * feat: 로그인 시 리코일에 저장하는 기능 추가 * feat: 내 정보 페이지에서 로그인한 사용자의 정보를 가져오는 방법 수정 - 기존에 API 요청을 통해 가져왔다면, 저장된 리코일의 정보를 가져오도록 수정 * feat: 현재 로그인한 사용자가 호스트인지 판단하는 로직 추가 * feat: 현재 로그인한 사용자가 모임의 참여자인지 판단하는 로직 추가 * fix: 참여자 목록에서 호스트를 제외한 사람만 구분하여 보여줄 수 있도록 변경 * [BE] 배포서버 데이터베이스 변경 (to Mysql) (#188) * chore: application.yml 계층 단순화 및 mysql 연동 * chore: data.sql 파일 제거 * [FE] 로그인 시 회원정보를 제대로 가져오지 못하는 오류 해결 (#190) * fix: access token 저장 후 사용자 정보를 요청하도록 순서 변경 * chore: package-lock 업로드 * feat: 모임 참여 신청, 취소, 모집 마감 시에 데이터 최신화 기능 추가 (#191) * chore: API 주소 업데이트 (#194) Co-authored-by: Usage <[email protected]> * [BE] 배포 서버 재시작 시 DB 초기화되는 현상 발생 (#199) * chore: submodule 업데이트 * chore: 쿼리 로깅 기능 비활성화 * [FE] 모임 생성 시 상세 일정 입력 기능 추가 (#200) * style: input disabled 스타일 추가 * feat: 생성 페이지에서 duration 구성하여 전달하도록 추가 * style: 달력에 스타일 추가 - 애니메이션 - disabled date * feat: 달력 기능 추가 구현 - duration이 있을 경우, duration이 아닌 날짜는 disabled 처리 - 날짜를 선택하는 기능 - 선택된 날짜를 보여주는 기능 * feat: 세부 일정 입력 기능 구현 - 달력의 날짜를 선택하여 일정 입력 - api에 일정 추가 Co-authored-by: Usage <[email protected]> * [FE] 마감된 모임에 대해 상태 반영 (#192) * feat: 모임 상세 데이터에 finish 타입 추가 * feat: 모집 종료 버튼 구현 * chore: 코드 리뷰 반영 * feat: 설명이 없는 모임은 description 영역 제거 * feat: 모집 마감시 DetailContent에 표시 * feat: 마감된 모임은 메인 화면에서 마감 표시 * [FE] 달력 일정 호버 시 모달에 겹치면 모달이 계속 여닫히는 오류 해결 (#202) * feat: 시간 모달에 호버 시 모달이 꺼지지 않는 기능 추가 * refactor: 함수 네이밍 변경 - toggleHovering → changeHoverState * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * fix: 무한 스크롤 시 마지막 페이지의 데이터를 보여주도록 추가 (#208) * [BE] 에러코드 추가 (#204) * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * refactor: 리뷰 반영 Co-authored-by: yukong <[email protected]> * fix: 오늘 날짜 하이라이팅 우선순위 변경 (#215) - 선택할 경우 > 오늘일 경우 * fix: getNewDateString에 한국 시간대 적용 (#217) * [BE] Google Oauth2 연동 (#213) * feat: Google Oauth 요청을 책임지는 Support 클래스 구현 * feat: Google Oauth 로그인 기능 구현 * test: Google Oauth 테스트코드 작성 * chore: application.yml 관심사 분리 및 profile 간의 중복 제거 * chore: rest docs api 문서화 생성 * chore: security 서브모듈 업데이트 * chore: security 서브모듈 업데이트 * feat: GoogleProvider 필드 불변성 보장 * refactor: OauthService 필드명 변경 * refactor: OauthService 필드명 변경 * refactor: 사용하지 않는 클래스 제거 * refactor: MemberResponse 빈생성자 어노테이션 추가 * refactor: MemberRepository#findByUserId 반환타입을 Optional로 변환 * style: 변수명 오타 수정 * refactor: MemberResponse 빈생성자의 접근제어자 private으로 지정 * refactor: OauthController#access api의 반환값을 dto로 매핑 * refactor: Oauth에 대한 에러코드 작성 및 예외처리 * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#225) * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#227) * [BE] 모임 수정, 모임 삭제 기능을 참여자가 없을 경우에만 가능하도록 변경 (#222) * refactor: 모임 삭제 시 주최자 외 참여자가 있을 경우 삭제 불가능 * refactor: 모임 수정 시 주최자 외 참여자가 있을 경우 수정 불가능 * refactor: 모임 수정 시 이름도 수정 가능하게 변경 * refactor: 메서드명 수정 * refactor: 공통 로직 메서드로 분리 * test: 검증 라이브러리를 JUnit 에서 AssertJ 로 변경 * refactor: 처리하지 못한 예외에 한해 로그 작성 * [FE] 메인 페이지 UI 개선 (#229) * style: 메인 페이지 카테고리 UI 변경 * style: 모임이 없을 경우의 UI 추가 * feat: MSW 전체 모임 목록 코드 업데이트 * feat: 다음 페이지가 없을 때는 요청을 보내지 않도록 추가 - 페이지 번호와 모임 목록 데이터를 업데이트하는 부분 분리 * feat: 모임 목록 데이터를 가져오는 중이라면 로딩 바를 보여주도록 추가 - 이를 위해 isLoading → isFetching을 사용하도록 변경 * style: 카드 이미지를 img 태그에서 background로 변경 * style: 마감 완료된 모임에 대해 회색 필터링 적용 * style: 페이지 레이아웃 너비 변경 - 100vw로 설정 시 가로 스크롤이 생기므로 100%로 변경 * style: 모임 목록 컨테이너 스타일링 추가 * style: 메인 페이지 사용하지 않는 스타일링 제거 * style: 카드 호버 시 살짝 커지도록 추가 * fix: 모임이 없을 경우의 UI 가운데 정렬 * fix: Wrapper → Container로 변경 * [FE] TOP 버튼 구현 feat: TOP 버튼 구현 (#231) - 메인 페이지에 추가 * [FE] 모임 생성에서 모임 시작 기간이 끝 기간을 넘어가면 끝 기간을 맞춰서 연장하도록 수정 (#233) * fix: 시작 날짜 선택 함수 변경 - 시작 날짜가 종료 날짜보다 작으면 종료 날짜를 변경하도록 수정 * refactor: 필요없는 코드 제거 * [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 (#235) * refactor: Oauth Redirect URI 생성방식 개선 * style: 오타 수정 * refactor: 관심사에 따른 Configuration 분리 * refactor: 구글 Oauth AccessToken 요청에 사용되는 redirect_url 형성 방식 개선 * chore: submodule update * [FE] 환경변수 설정 (#237) * chore: webpack-merge dotenv 설치 - npm scripts 변경 * chore: gitignore에 env 추가 * chore: webpack 모드 설정 - common, development, production * refactor: base url 환경변수로 이전 Co-authored-by: Usage <[email protected]> * [BE] 리프레시 토큰 구현 (#238) * feat: 리프레시 토큰 발급 로직 구현 * feat: 리프레시 토큰을 담을 Entity와 Repository 구현 * rebase develop-be - [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 * feat: 리프레시토큰에 누락된 Payload값 추가 * style: RefreshToken 클래스명을 Token으로 변경 * feat: 엑세스 토큰 재발급 로직 구현 * feat: 리프레시 토큰을 검증하는 인터셉터 구현 * feat: 로그인시 리프레시토큰 값을 DB에 저장하는 로직 추가 * feat: 엑세스 토큰을 재발급받는 API 구현 * test: 리프레시 토큰을 통한 엑세스 토큰 발급 인수 테스트 추가 * refactor: DB 값을 업데이트하는 로그인 로직에 누락된 트랜잭션 어노테이션 추가 * refactor: DB에 저장된 리프레시토큰 값과 다를 경우 예외가 발생하도록 로직 수정 * refactor: 토큰의 유효기간을 서브모듈에서 읽어오도록 변수 수정 * chore: 서브모듈 버전 업데이트 * feat: token객체가 Member 객체를 갖도록 수정 * refactor: 리프레시토큰 값 동기화 메서드 분리 * test: 잘못된 테스트 코드 수정 * refactor: Optional의 기본 기능을 사용하도록 수정 * feat: 로그아웃시 API 구현 * style: 메서드명 오타 수정 * test: 컨트롤러 테스트의 responseField제거 * test: 인수 테스트의 static 메서드의 prefix제거 * refactor: 리프레시토큰 api 수정 * [BE] 모임 탈퇴 기능 구현 (#240) * feat: 모임 탈퇴 기능 구현 * feat: 주최자는 모임 탈퇴 불가능 * feat: 모임에 참여자가 아닐 경우 모임 탈퇴 불가능 * feat: 모집이 마감된 모임의 탈퇴 불가능 * feat: 조기 종료된 모임에 탈퇴 불가능 * refactor: 메서드 변경 및 메서드 추출 * refactor: import 형식 변경 * [FE] 환경 변수 서브 모듈화 (#243) * chore: 서브모듈 등록 * fix: 환경 변수 파일 경로 수정 * [BE] Oauth 인증 - Redirect Uri 전달받도록 변경 (#241) * refactor: Oauth Redirect Uri, 파싱하지 않고 전달받는 방식으로 변경 * chore: index.html 업데이트 * chore: submodule 업데이트 * chore: index.html 업데이트 * [FE] 모임 생성 페이지에서 각 스텝에 대해 모달로 띄워주는 호버 이벤트 추가 (#244) feat: 모임 생성 페이지에서 각 스텝별 모달 추가 * [BE] 로그인기능 실패 오류 수정 (#248) * fix: 로그인시 DB에 접근이 되지 않던 오류 수정 * test: 테스트의 sql쿼리문에 token 테이블 정보 추가 * docs: restDocs에 리프레시 토큰관련 API 추가 * fix: production mode env 파일 경로 수정 (#252) * [BE] OAuth 로그인기능 실패 오류 수정 (#254) * [FE] 헤더에 로그인 정보 Dropdown 추가 (#253) * refactor: assets 폴더 정리 * style: TOP 버튼 내용을 svg로 변경 * feat: useClosingState 커스텀훅 생성 - 닫는 애니메이션을 보여주기 위해 닫는 과정을 지연시키는 커스텀훅 - 기존에 사용하던 모달 컴포넌트에서 커스텀훅으로 분리 * feat: 헤더에 현재 로그인한 사용자 메뉴를 드롭다운으로 추가 * fix: 헤더 고정을 sticky → fixed로 변경 - 헤더 영역 확보를 위해 헤더 밑 내용에도 padding 적용 * [FE] Google OAuth 로그인 구현 (#255) * chore: google login svg 추가 * feat: google 로그인 api 구현 * feat: 구글 로그인 UI 구현 * feat: 구글 로그인 리다이렉션 페이지 구현 * feat: 회원가입 바로가기 링크 추가 * refactor: 피드백 반영 * [BE] 이미지 업로드 기능 구현 (#246) * feat: file upload/save 컨트롤러 작성 * feat: file upload/save 서비스 기능구현 * feat: 파일 업로드 테스트 작성 * refactor: displayname 추가 * refactor: test restdocs 추가 * refactor: test restdocs 누락된 어노테이션과 adoc 추가 * refactor: api 네이밍 변경 * feat: 이미지 확장자 검증 추가 * refactor: 리뷰 반영 * refactor: MomoException으로 변환 * refactor: 불필요 주석 제거 * refactor: 컨벤션 맞추어서 코드 수정 * [BE] SonarQube 서버 구축 및 Github Actions PR 연동 * [FE] 스낵바 구현 (#264) * feat: 포탈에 스낵바 추가 * feat: 리코일에 스낵바 상태 추가 - isShowing, message * feat: useSnackbar 커스텀훅 생성 - setMessage, resetSnackbar 함수 존재 * refactor: useClosingState 타입 변경 - Function → () => void로 명시 * feat: 스낵바 컴포넌트 생성 - 페이지 레이아웃에 스낵바 추가 * feat: 성공 alert을 스낵바로 교체 - 모임 참여, 취소, 삭제, 마감 - 로그인, 회원가입, 회원정보 수정 * [FE] 내 모임 페이지 구현 (#265) * feat: 내가 참여한 모임 api 구현 * refactor: Search 컴포넌트의 검색창 영역 분리 * refactor: NoResultContainer를 별도의 컴포넌트로 분리 * feat: 내가 참여한 모임 컴포넌트 구현 * feat: 내 모임 페이지 구현 - 헤더에서 내 모임 페이지 링크 연결 * chore: 코드 리뷰 반영 * [FE] 로그아웃 요청 추가 (#267) * feat: 로그아웃 요청 함수 생성 * feat: 로그아웃 시 서버에 요청하는 기능 추가 * feat: 액세스 토큰 만료 시 자동 로그아웃 기능 추가 * [BE] Code Smell 제거 (#263) * refactor: Optimize imports * test: 테스트 클래스 접근제어자 수정 * refactor: 빈 생성자 추가 및 필드 선언 변경 * style: 불필요한 개행 제거 * refactor: global 패키지 구성 * refactor: 잘못 사용된 연산자 수정 * style: 변수 오타 수정 * refactor: inverted 하게 사용되는 메서드 리팩터링 * refactor: 메서드 분리 * refactor: 파일 생성 검증 순서 변경 * refactor: 업로드 파일 검증 로직 리팩터링 * [BE] 모임 수정 API Docs 활성화 (#272) * [BE] 회원 탈퇴 기능 구현 (#269) * refactor: 사용자 테이블에 deleted 필드 추가 * refactor: 회원 탈퇴 시 deleted 필드 변경 * refactor: 회원 탈퇴 시 개인정보 변경 * refactor: develop-be 이력 적용 * refactor: 회원 탈퇴 시 주최한 모임 중 진행중인 모임이 있다면 탈퇴 불가능 * test: 자신이 참여한 모임 목록 조회 테스트 추가 * test: 탈퇴한 사용자가 속한 모임의 참여자 목록 조회 테스트 추가 * style: 올바른 import 경로로 수정 * refactor: 인스턴스 변수 호출 시 this 삭제 * refactor: '탈퇴하다' 의 용어를 leave 로 변경 * refactor: 탈퇴한 사용자의 기능 제한 * test: 비어있는 값에 대한 테스트 검증 방식 변경 * refactor: lombok 에서 제공하는 메서드 사용 * refactor: 탈퇴한 사용자는 모든 기능에 접근할 수 없도록 변경 * test: 미리 구현되어 있는 메서드 사용 * refactor: 회원 탈퇴 시 모임 탈퇴 로직 변경 * refactor: 회원 탈퇴 관련 에러 코드명 변경 * fix: redirectUrl을 href에서 origin으로 수정 (#276) * [BE] 테이블 컬럼 타입과 엔티티 필드 타입의 불일치 발생 (#280) * [FE] 내 정보 페이지 UI 개선 (#278) * refactor: 내 정보 네이밍 통일 * refactor: Routes 분리 * feat: 로고 svg로 컴포넌트로 생성 * style: 페이지에 높이 적용 * feat: 피그마에 맞게 내 정보 페이지 UI 변경 - 기존에 있던 닉네임, 비밀번호 관련 함수 병합 * refactor: 공용으로 사용하는 컴포넌트 components/@shared 폴더로 정리 * refactor: 내 정보 페이지 컴포넌트 분리 - 내 정보와 회원 탈퇴 섹션 분리 * refactor: 모달 플래그 네이밍 통일 * style: 페이지 내용 전역에 높이를 지정함에 따라 다른 페이지들의 높이 스타일링변경 - calc(100% - 4rem) → 100%로 변경 * feat: 비밀번호 확인 모달 생성 * feat: 비밀번호 확인 요청 API 생성 * feat: 내 정보 수정 시 비밀번호 확인 과정을 거쳐 수정하도록 추가 * feat: 모달 상태에 비밀번호 확인 상태 추가 * feat: useModal 커스텀훅 생성 * feat: 내 정보 수정 후 새롭게 수정된 정보를 받아와 저장하는 부분 추가 * feat: 로그인 정보에 로그인 타입 추가 - 현재는 basic & oauth * feat: basic과 oauth 내 정보 화면 분리 - basic에서는 닉네임, 비밀번호를 모두 변경하고 비밀번호 확인을 할 수 있음 - oauth에서는 닉네임 변경만 가능하며 비밀번호 확인이 존재하지 않음 * refactor: '/'를 BROWSER_PATH.BASE로 변경 * refactor: 내 정보를 수정하는 함수를 내 정보 페이지로 이동 - 기존에는 비밀번호 확인 컴포넌트에 있었으나, 해당 컴포넌트의 역할과는 맞지 않다고 판단하여 이동 * [FE] 모임 마감날짜 유효성 검증 오류 수정 (#282) * feat: 날짜 유효성 검증 로직 수정 - 한국 시간 변환 함수 추가 -가장 빠른 스케쥴과 비교하는 로직 추가 * test: 함수 변동사항 적용 * chore: 주석 삭제 * [BE] 검색 기능 구현 (#277) * refactor: 모임 조회를 역순으로 하도록 수정 * feat: 카테고리별 그룹 조회 로직 추가 * refactor: 카테고리 정보를 찾지 못할 때 발생하는 예외를 다른 예외 형식과 통일 * refactor: 사용하지 않는 메서드 제거 * feat: 카테고리별 모임 조회 API 구현 * test: 제거된 API에 대한 테스트 제거 * test: 카테고리별 모임 조회 인수 테스트 추가 * test: 모임 생성 메서드 하나로 통일 * feat: 모임 키워드 검색 기능 구현 * feat: 모임 키워드 검색 API 구현 * feat: 모임 필터링 Specification 구현 * feat: 카테고리, 참여한 모임, 생성한 모임을 조회하는 Specification 구현 * feat: 카테고리, 검색 조회 API에 Specification을 통해 동작하도록 적용 * feat: 참여한 모임 조회 API 로직 수정 * feat: 주최한 모임 조회 API 구현 * refactor: 모임 필터링 Specification 체이닝으로 변경 * test: 모임 필터링 테스트 추가 * style: 모임 단일 조회 메서드명 수정 * test: 모임 조회 로직 컨트롤러 인수 테스트 추가 * refactor: rebase 충돌 해결 * style: import문 재정렬 * refactor: code smell 제거 * refactor: GroupSpecification에서 MemberId가 아닌 객체를 받도록 수정 * refactor: GroupSpecification의 반환값을 null이 아닌 predicate객체로 변환 * style: GroupFindService 메서드명 수정 * style: GroupSpecification 메서드명 수정 * refactor: GroupSpecification 빈 등록 * [FE] 새로고침 시 자동 로그아웃되는 오류 해결 (#284) * feat: access token이 유효할 시 자동 로그인이 되도록 추가 * fix: 내 정보 페이지 input에 type 부여 * refactor: 로그인 상태를 비우는 부분을 reset을 사용하여 하도록 변경 * fix: 내 정보 페이지에서 로그아웃 시 uncontrolled 경고가 뜨는 오류 해결 * style: 비밀번호 input에 placeholder 추가 * [FE] 변경된 회원정보 수정 API에 맞게 요청 형식 변경 (#289) * feat: 새로고침 시 로그인 타입을 판단하는 기능 추가 * style: 비밀번호 변경 시에만 비밀번호 확인 모달이 뜨도록 변경 * fix: 비밀번호 확인 API 요청 함수 삭제 및 비밀번호 수정 API 요청 변경 * [BE] 비밀번호 확인 API 구현 (#285) * refactor: 패스워드 전송 DTO 네이밍 수정 * feat: 비밀번호 확인 로직 구현 * feat: 비밀번호 확인 API 구현 * test: 비밀번호 확인 인수테스트 추가 * test: DisplayName명 수정 * refactor: 회원 비밀번호 수정+비밀번호 검증 통일하도록 수정 * refactor: 비밀번호 확인 메서드명 수정 * [FE] Private Route 구현 (#292) feat: Private Routes 구현 * [FE] 리프레시 토큰 적용 (#295) * feat: access token provider 생성 및 적용 * feat: 리프레시 토큰 selector 정의 * feat: refresh token provider 생성 * feat: Token 타입 정의 * feat: 리프레시 토큰을 사용하여 액세스 토큰을 요청하는 함수 생성 * feat: 헤더에서 토큰 유효성을 판단하여 재발급 또는 로그아웃 시키는 로직 구현 - 액세스 토큰이 유효하지 않음 → 리프레시 토큰으로 액세스 토큰 발급 - 리프레시 토큰이 유효하지 않음 → 로그아웃 * feat: 로그인 시 리프레시 토큰을 저장하는 부분 추가 * feat: 로그아웃, 회원 탈퇴 시 리프레시 토큰을 삭제하는 부분 추가 * [FE] 모임 검색 및 필터링 기능 구현 (#297) * feat: useInfiniteScroll 커스텀훅 생성 * fix: API 링크 수정 * feat: 내가 참여한 모임 목록에 무한 스크롤 적용 * feat: 체크박스 컴포넌트 생성 * feat: 전달된 쿼리 바탕으로 URL을 만들어주는 함수 생성 * feat: 마감된 모임 포함/제외 필터링 기능 구현 * feat: 키워드 검색 기능 구현 * feat: 카테고리 필터링 기능 구현 * feat: 내 모임 필터링 기능 구현 - 내가 참여한 모임, 내가 주최한 모임, 내가 찜한 모임 * feat: 내 모임 페이지에 TOP 버튼 추가 - 무한 스크롤이 적용된 페이지이므로 추가 * refactor: SearchForm 폴더화 * refactor: 유효하지 않은 카테고리 ID 상수화 * [FE] 모임 검색 시 엔터를 입력해도 검색되도록 추가 (#301) * feat: 엔터 입력 시에도 검색이 가능하도록 변경 - 검색 input을 폼으로 바꾸고 검색 이벤트를 submit으로 이전 * refactor: onClick 이벤트 삭제 * [FE] 모임 수정 기능 구현 (#299) * chore: calendar svg 추가 * refactor: useCreateState 리팩토링 - useState를 useInput으로 변경 * feat: 달력에서 일정 삭제 기능 추가 후 컴포넌트 분리 * refactor: useCreateState 리팩토링 변경점 적용 * refactor: useInput에 initialState 타입 추가 * fix: 날짜 비교 버그 수정 * feat: 모임 정보 수정 모달 생성 * feat: 모임 정보 수정 api 추가 * feat: 모임 수정 기능 구현 * fix: groupDetail이 갱신되지 않던 버그 수정 * refactor: 피드백 반영 * [FE] 내 모임 페이지에서 찜한 목록은 준비 중 페이지로 변경 (#303) * style: 내가 찜한 모임 섹션은 준비 중 페이지로 대체 * style: favicon 추가 * style: 내 정보 페이지의 로고 변경 - favicon 이미지를 svg화 시켜 애니메이션 적용 * [FE] groupDetail 정보 로드 오류 해결 (#305) * fix: devServer 경로 수정 * fix: group data early return 조건 변경 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * [BE] 누락된 테스트 추가 작업 (#298) * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * refactor: 중복 메소드 제거 Co-authored-by: yukong <[email protected]> * [FE] 메인 페이지에서 모임이 없을 시 마감된 모임 제외 체크박스가 보이지 않는 오류 해결 (#309) * feat: 메인 화면 모임 목록의 헤더가 모임 유무와 관계 없이 항상 보이도록 변경 - 모임이 없을 경우에는 문구가 나오지 않고 체크박스만 보임 - 카테고리 선택 시 `{카테고리이름} 모임을 찾아봤어요 🚀` 문구가 나오도록 추가 * style: favicon 파일 형식을 jpeg → ico로 변경 * [FE] 배포 모드에서 favicon이 보이지 않는 오류 해결 (#312) chore: 웹팩 설정에 favicon 추가 * [BE] 개발 서버 구축 및 실행환경 분리 (#311) * chore: profile별 DB환경 분리 * chore: profile 설정 오류 수정 * chore: 테스트 환경 파일 yml 수정 * [FE] 마감 모임 제외 기능 disabled 처리 (#314) * fix: 오류 부분 비활성화 * [BE] 도메인 값 객체 분리 (#316) * [BE] Calendar 도메인 패키지 리팩터링 (#319) * test: calendar 및 datetime 픽스처 패키지 분리 * test: datetime 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: datetime 관련 테스트픽스처 메서드명 변경 * test: calendar 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: calendar 관련 테스트픽스처 메서드명 변경 * test: DeadlineFixture 테스트픽스처 생성 * test: DurationFixture 테스트픽스처 상수 이름 변경 * refactor: calendar 패키지 도메인 리팩토링 및 테스트 보충 * test: calendar 패키지 테스트픽스처 메서드명 변경 * refactor: Schedule 메서드 분리 롤백 * style: Duration 메서드 메서드명 변경 * refactor: ScheduleFixture 메서드 접근제어자 수정 * [BE] 조회 클래스 리팩토링 (#322) * refactor: GroupSpecification 패키지 이동 * fix: 종료여부 확인과정에서 잘못된 쿼리생성 수정 * refactor: 매직넘버 제거 * refactor: 패키지 분리 * style: enum 상수 선언 스타일 수정 * style: 무의미한 빈줄 제거 * [FE] 프로젝트 리팩토링 (#325) * refactor: 라이브러리 수정 - 스토리북 제거 - esbuild loader 추가 * feat: react devtools가 배포 모드에서는 동작하지 않도록 추가 * refactor: API 요청 함수 네이밍 통일 * refactor: 페이지 종속 컴포넌트는 페이지 폴더 하위로 이동 * refactor: 컴포넌트 리팩토링 * refactor: 기타 파일 리팩토링 Co-authored-by: Usage <[email protected]> * [FE] 메인, 상세, 수정 페이지 리팩토링 (#329) * refactor: 메인 페이지 리팩토링 * refactor: 모임 상세 페이지 리팩토링 * style: 모임 상세 페이지 사이드바 스타일링 수정 * style: global input style에 border-box 추가 * refactor: useCreateState 반환값 타입 추가 - 해당 함수의 반환 타입을 재활용할 일이 생겨 타입 추가 * refactor: 모임 수정 모달 리팩토링 및 일부 스타일링 수정 * [FE] OAuth, 생성, 내 모임, 내 정보 페이지 리팩토링 (#330) * refactor: Auth 페이지 리팩토링 * refactor: Create 페이지 리팩토링 * refactor: 추가된 setCapacity 메서드 반영 * fix: 모임 수정시 같은 스케쥴이 중복해서 추가되던 버그 수정 * refactor: 내 모임 페이지 리팩토링 * refactor: 내 정보 페이지 리팩토링 * chore: 코드 리뷰 반영 * [BE] 모임 패키지 리팩터링 및 병합 (#323) * refactor: Group 패키지에 Participant 패키지 통합 * refactor: Calendar 사용하지 않는 레거시 메서드 제거 * refactor: Group#Builder 제거 * refactor: request dto 계층 분리 * refactor: 관심사에 따른 Group Controller 분리 * refactor: 관심사에 따른 Group Service 분리 * refactor: 서비스 계층의 비즈니스 로직을 도메인 계층으로 옮김 * refactor: 사용하지 않는 Group 메서드 제거 * refactor: GroupManageService#update 메서드 개선 * refactor: 사용하지 않는 클래스 제거 * refactor: toString 추가 * refactor: GroupSpecification 리팩터링 * style: Group 메서드 배치 변경 * refactor: GroupFindRequest Boolean 필드타입을 원시타입으로 변경 * refactor: Participants orphanRemoval 설정 * feat: exception 클래스 및 code,message Enum 생성 * feat: Group 도메인 exception 클래스 및 code,message Enum 생성 * test: 인수테스트 예외코드 검증 추가 * test: ParticipantServiceTest 리팩토링 * test: GroupSearchServiceTest 리팩토링 * test: GroupFixture builder 메서드 축약 * test: GroupManageServiceTest 리팩토링 * test: GroupFindServiceTest 리팩토링 * style: 코드 컨벤션 정리 * refactor: Group ErrorCode 세분화 작업 * refactor: Group 도메인 예외처리 세부화 및 ErrorCode 관심사 분리 * style: GroupFindAcceptanceTest 메서드 오타 수정 * test: RestAssured Logging 기능 Profile 설정가능하도록 수정 * style: EOF 추가 * style: static import 처리 * refactor: GroupManageService 템플릿콜백패턴 적용 * refactor: 예외메시지 관리 방식 변경 * ExceptionCode / ExceptionMessage 제거 * GroupErrorCode 활용 * 행위 기반에서 원인 기반으로 예외 메시지 내용 변경 * refactor: Group 검증 예외처리 리팩터링 * refactor: Participants 검증 예외처리 리팩터링 * refactor: OneToMany Fetch.Lazy 제거 (default이므로) * refactor: @EqualsAndHashCode @ToString 설정 * refactor: Group Controller 리팩토링 * refactor: Capacity 내부로 CapacityRange 통합 * refactor: host 칼럼명 명시 * refactor: GroupIdResponse 빈생성자 제거 * refactor: 사용하지 않는 클래스 제거 * test: 인수테스트 @SuppressWarnings("NonAsciiCharacters") 선언 * test: RestHandler 함수형인터페이스 제거 * test: GroupFixture#setDeadlinePast 리팩토링 * refactor: Capacity#isSmallThan 메서드명 변경 * refactor: GroupFindRequest Getter 수정 * refactor: CascadeType.REMOVE 제거 * refactor: Controller 계층 DTO 네이밍 수정 * refactor: Group Controller/Service 네이밍 수정 * refactor: Group#leave 메소드명 수정 * refactor: GroupFindRequest 어노테이션 배치 변경 * test: 무의미한 throws 예외전파 제거 * test: TestConstructor 어노테이션 지정 * style: optimize imports * style: GroupFindService 상수 개행 * [BE] 개발서버 배포가 실패하는 이슈 (#333) * chore: 개발 서버 api 주소 변경 (#334) Co-authored-by: Usage <[email protected]> * [FE] 번들 크기 최적화 (#337) * chore: 필요한 모듈 설치 * chore: copy-webpack-plugin 적용 - 폰트 형식 지원하도록 추가 * feat: 폰트 최적화 * feat: 페이지 지연 로딩 * chore: js 파일명 해시 적용 * chore: 웹팩 정리 Co-authored-by: Usage <[email protected]> * [FE] 렌더링 최적화 (#340) * feat: 모임 카드에 memo 적용 * feat: layout shift 최적화 * refactor: 모임 생성 관련 타입 정리 * chore: 개발 / 배포 모드 빌드 스크립트 작성 * feat: top 버튼 연속 클릭 방지 * style: 스크롤바 커스텀 * feat: 마이페이지 리렌더링 최적화 Co-authored-by: Usage <[email protected]> * fix: webpack-bundle-analayzer 비활성화 (#342) - 우선 임시로 주석 처리 - 빌드가 무한로딩되는 문제가 발생하여 비활성화 * [FE] MSW 비활성화 (#343) fix: MSW 비활성화 Co-authored-by: Usage <[email protected]> * [BE] 조회로직 Specification(Criteria) -> QueryDsl 변경 (#339) * chore: queryDsl 환경설정 Co-authored-by: sinb57 <[email protected]> * chore: build.gradle 문단 구분 Co-authored-by: sinb57 <[email protected]> * refactor: 기본 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 주최한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 참여한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: GroupSearchService에 연동된 GroupRepository를 Criteria에서 QueryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: Specification(Criteria) 제거 Co-authored-by: sinb57 <[email protected]> * style: 잘못된 컨벤션 수정 Co-authored-by: sinb57 <[email protected]> * refactor: 가독성 향상을 위한 변수 추출 Co-authored-by: sinb57 <[email protected]> * refactor: 템플릿 콜백 패턴 적용 Co-authored-by: sinb57 <[email protected]> * style: 개행 컨벤션 통일 Co-authored-by: sinb57 <[email protected]> * refactor: 상수 제거 및 메서드 배치 순서 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition 생성 Co-authored-by: sinb57 <[email protected]> * refactor: 동적 쿼리 생성 방식을 BooleanBuilder 사용으로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition#Getter Optional 적용 Co-authored-by: sinb57 <[email protected]> * refactor: ConditionFilter 클래스 분리 Co-authored-by: sinb57 <[email protected]> * refactor: FinCondition#Getter Optional 제거 Co-authored-by: sinb57 <[email protected]> * refactor: 참여 인원수에 대한 매직넘버에 의미 부여 Co-authored-by: sinb57 <[email protected]> * refactor: 인터페이스 제거 및 클래스명 변경, 패키지 분리 Co-authored-by: sinb57 <[email protected]> * refactor: CQRS 패턴으로 GroupRepository CRUD 분리 Co-authored-by: sinb57 <[email protected]> * refactor: 패키지 구조 및 조회 관련 도메인 이름 수정 Co-authored-by: sinb57 <[email protected]> * refactor: supplier 파라미터명 수정 Co-authored-by: sinb57 <[email protected]> * refactor: GroupManage~ 클래스를 Modify로 변경 Co-authored-by: sinb57 <[email protected]> Co-authored-by: sinb57 <[email protected]> * [FE] 이미지 파일 최적화 feat: 카테고리 이미지 jpg → webp 변환 Co-authored-by: Usage <[email protected]> * [FE] gzip 최적화 (#350) feat: gzip 압축 설정 Co-authored-by: AhhyunLee <[email protected]> * [BE] 구글 OAuth 버그 해결 (#348) * fix: 구글 로그인 요청 시 잘못된 정적 팩토리 메서드 수정 * refactor: 사용하지 않는 메서드 제거 * [BE] 개발서버의 DB 실행 환경 분리 (#355) * [BE] 인덱스 설정을 통한 DB 조회 성능 개선 (#356) * refactor: ConditionFilter#filterByCondition 성능을 고려하여 where절 순서 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 생성 Co-authored-by: nbalance97 <[email protected]> * chore: docker 가이드라인 작성 Co-authored-by: nbalance97 <[email protected]> * chore: .gitignore 업데이트 Co-authored-by: nbalance97 <[email protected]> * chore: local-datasource.yml DB 전환(h2 -> mysql) Co-authored-by: nbalance97 <[email protected]> * chore: docker mysql 접속 자동화 스크립트 Co-authored-by: nbalance97 <[email protected]> * chore: docker README 업데이트 Co-authored-by: nbalance97 <[email protected]> * style: docker sh EOF 추가 Co-authored-by: nbalance97 <[email protected]> * chore: docker container name 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 접속 데이터베이스 지정 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 분리 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 디렉터리 분리 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 수정 Co-authored-by: nbalance97 <[email protected]> * feat: Group 인덱스(deadline) 설정 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 파일명 수정 Co-authored-by: nbalance97 <[email protected]> * chore: docker init.sql 제거 및 local-datasource.yml ddl-auto 수정 Co-authored-by: nbalance97 <[email protected]> * style: .gitignore EOF 추가 Co-authored-by: nbalance97 <[email protected]> Co-authored-by: nbalance97 <[email protected]> * [BE] Group 도메인 N+1 문제 해결 (#358) * refactor: Group-Participants Fetch전략 Eager로 변경 * refactor: Group 도메인 QueryDsl fetchJoin 적용 * chore: index.html 제거 * [BE] 지도 도입에 따른 API, 로직 수정 (#360) * feat: Group도메인의 String 타입의 Location을 값 객체로 변경 * test: Group도메인의 String 타입의 Location을 값 객체로 변경 * feat: 그룹 수정정보에 Location 정보 제거 * feat: 모임 장소 수정 API생성 * test: 모임 장소 수정 기능 테스트 추가 * docs: 모임 장소 수정 restdocs추가 * refactor: location의 detail column name 값 수정 * test: init.sql의 detail column name 값 수정 * [FE] 지도 API 연결 (#362) * chore: 서브모듈 업데이트 * chore: react-daum-postcode 설치 * chore: 카카오맵 설정 추가 * chore: 웹팩에 카카오맵 키 추가 * style: disabled input 글로벌 스타일 추가 - 커서 스타일 추가 * style: 스낵바 z-index 추가 * feat: DaumPostCode 모달 생성 * fix: location 타입 수정 * chore: 카카오맵 타입 추가 * fix: 모임 수정에서 장소 수정 제거 * feat: 모임 생성 시 Postcode 모달을 사용하여 주소를 입력하도록 추가 * feat: 모임 상세 페이지에 카카오맵 추가 * [FE] 찜 기능 구현 (#364) * feat: 메인 페이지 모임 목록에 찜 여부 표시 * feat: 찜하기 / 찜 취소하기 api 추가 * feat: 모임 상세 페이지에 찜하기 플로팅 버튼 구현 - useThrottle 구현 - Top 플로팅 버튼에 useThrottle 적용 * feat: 내 모임의 내가 찜한 모임 탭에 찜한 모임들을 표시 * feat: api 변경 사항 적용 & 상태 변경과 동시에 적용되도록 수정 * fix: 버그 및 css 수정 - dimmer, snackbar z-index 수정 - 2022-08-19 hotfix 내용 복구 * [BE] Oauth2 로그인 실패 해결 (#367) fix: oauth2 로그인 실패 이슈 해결 (임시비밀번호 형식) * [FE] 릴리즈 이전 수정사항 반영 (#369) chore: 수정사항 반영 * [BE] 찜 기능 구현 (#363) * feat: 찜 도메인 구현 Co-authored-by: sinb57 <[email protected]> * feat: 찜하기, 찜 취소 API 구현 * feat: 찜한 모임 조회 API구현 * feat: Authorization 필더를 선택적으로 받도록 하는 어노테이션 생성 * feat: 모임 조회 반환값에 찜 여부 추가 * docs: 모임 찜하기 api추가 Co-authored-by: sinb57 <[email protected]> * [BE] 모임 참여인원이 실제와 다르게 출력되는 현상 해결 (#376) * refactor: findGroups fetchJoin 제거 * refactor: findGroups distinct 추가 * fix: 누락된 from 추가 * [BE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#384) * refactor: Token과 Member연관관계의 JoinColumn 컬럼명 명시 * test: TokenService 메서드 테스트 추가 * test: 토큰 만료시 발생하는 예외 테스트 추가 * refactor: 같은 토큰인지 검증하는 메서드의 반환값 반대로 수정 * [BE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#378) * refactor: 마감여부 인원수로 체크하지 않도록 로직 변경 * refactor: 미사용 메서드 제거 * refactor: 메서드 단일화 * [BE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#379) * refactor: 탈퇴한 회원의 정보 수정 로직 변경 * refactor: 탈퇴한 회원의 이름을 빈값으로 반환 * refactor: GhostMember 클래스명 변경 * refactor: 보여지는 탈퇴한 사용자의 이름 상수화 * [FE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#390) * chore: 사용하지 않는 모듈 삭제 * feat: 토큰 저장소를 세션 → 로컬로 변경 * fix: 리프레시 토큰 오류 해결 * [BE] 모집이 마감된 모임에 대하여 찜하기/찜취소 기능 에러가 발생하는 현상 (#386) * test: GroupSearchRepositoryTest 위치 변경 * test: Favorite, Favorites 도메인 테스트 추가 * fix: 마감된 모임을 찜하지 못하던 오류 수정 * fix: 마감된 모임을 찜 취소하지 못하던 오류 수정 * test: 마감된 모임에 대한 찜하기 기능 테스트 추가 * [BE] QueryDSL 이용하여 pagination 할 때 limit 이 설정되지 않는 현상 (#389) * fix: 찜 모임 조회시 Full Scan을 한 후 JVM내에서 페이지내에션을 하던 오류 수정 * refactor: 사용하지 않는 메서드 제거 * [FE] 일정값이 없을때 모임이 생성되지 않는 에러 해결 (#393) * fix: 일정값이 없어도 모임이 생성되도록 수정 * feat: copyObject 메서드 유틸에 추가 - compare -> object 파일 이름 변경 * chore: 테스트 라이브러리 설치 및 업데이트 - jest 버전 업데이트 28.1.3 -> 29.1.1 - @type/jest 버전 업데이트 28.1.6 -> 29.1.0 - ts-jest 설치 * test: 모임 생성 유효성 검증 테스트 추가 * chore: 경고창에 error.message를 보여주는 것으로 변경 * [FE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#394) * chore: 모듈 재설치 * feat: 모임 인원이 가득 찰 경우의 버튼 추가 * [BE] 모집 마감 시간이 지난 모임이 마감되지 않았다고 나타나는 현상 * [FE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#398) * fix: 바뀐 API 명세에 맞게 빈 문자열의 참여자는 탈퇴한 사용자라고 판단하여 표시 * feat: 탈퇴한 회원임을 알리는 가이드 메시지 추가 * feat: 호스트가 탈퇴했을 경우에도 탈퇴한 사용자임을 알리는 부분 추가 * feat: 누락된 탈퇴한 주최자 부분 추가 * refactor: 피드백 반영 * [FE] 마감된 모임에도 수정 버튼이 보이는 오류 해결 (#403) * fix: 마감된 모임에는 수정 버튼이 보이지 않도록 추가 * fix: useEffect dependency 오류 주석 추가 - 추후 해결 방법 강구 * [BE] 페이지네이션 과정에서 Page의 hasNext()가 잘못 나오는 오류 + 찜 조회 기능 오류 (#400) * fix: 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 좋아요한 그룹의 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 찜한 모임에서 중복된 데이터가 조회되는 오류 수정 * fix: 찜한 모임 조회에서 distinct를 거는 위치 수정 * test: 잘못된 테스트 코드 수정 * fix: 찜한 모임 조회에 중복된 모임이 나오는 에러 해결 * fix: 찜한 모임 조회에 중복된 모임 id를 조회하는 오류 수정 * refactor: 불필요한 leftjoin삭제 * test: 찜한 모임 목록 조회 테스트 추가 * refactor: 찜한 목록 id조회 메서드이 접근 제어자 수정 * 조기마감된 모임에 대한 에러코드가 마감기한이 지나도 동일한 이슈 (#404) refactor: 모임진행 유효성 검증 절차 순서 변경 * [BE] 에러 메시지 축약 (#399) * refactor: MemberErrorCode, MemberException 추가 * refactor: MemberException 에러 해결 * refactor: 회원가입 api 변경 및 Category 에러코드 추가 * refactor: 이외의 에러코드 핸들링 * refactor: 코드 컨벤션 수정 * refactor: 코드 컨벤션 수정 * refactor: 상수명 리셋 * [FE] 메인 페이지에서 검색 시 새롭게 들어온 모임 목록이 기존 모임 목록에 추가되는 오류 해결 (#407) fix: 새로운 모임 검색 시 기존 모임에 덮어씌우는 코드 추가 * [FE] 에러 세분화 적용 (#405) * feat: 에러 처리를 위한 useHandleError 구현 * chore: 에러 메시지 추가 * chore: 기존 api 연결에 에러 핸들러 추가 * chore: 코드 리뷰 반영 * [BE] 도메인(Member, Group) 필드 제약조건 변경 및 검증로직 수정 (#385) * refactor: GroupName 길이 정책 수정 * refactor: Description 길이 정책 적용 * refactor: UserId UserName Password 삭제정책 수정 * refactor: 사용자 아이디 길이 정책 반영 * test: 사용자 아이디 길이 정책 변경에 의한 기존 테스트 픽스처 수정 * refactor: 사용자 닉네임 길이 정책 반영 * refactor: 유효성 메서드명 및 검증 순서 변경 * style: optimize imports * refactor: UserId UserName Password 삭제 로직 수정 * test: MemberTest 추가 * style: EOF 추가 * refactor: 칼럼 길이 제약조건 변경 * refactor: Password Blank 유효성 검증 제거 * refactor: 유효성 검증 순서 변경 * [FE] signup URL을 members로 변경 fix: 회원가입 요청 url 변경 (#411) * [BE] 모임의 일정이 설정한 날짜보다 하루 전날로 저장되는 현상 해결 (#416) * refactor: TimeZone 설정 파트 추가 * refactor: Config 분리 * [FE] 입력값 제약 조건 추가 (#418) * fix: 변경된 서버 에러 코드에 맞춰 수정 * feat: 수정된 멤버 값 제약 조건 추가 * test: 회원가입 입력 값 검증 테스트 추가 * [BE] 지원하지 않은 API 요청에 대해 404 반환 (#419) * feat: 지원하지 않는 API 요청 처리 * refactor: ControllerAdvice 중복 로직 메서드 추출 * feat: restdocs 정적자원 접근 지정 * [FE] 랜딩 페이지 (#420) * feat: 랜딩 페이지에 사용할 이미지와 svg 업로드 * feat: throttle이 쓰로틀링이 적용된 함수를 반환하도록 수정 * feat: 랜딩 페이지 구현 * feat: 메인 페이지에 랜딩 페이지 접근 방식 추가 - 메인 페이지 접근 시 이미 방문했는지 여부를 판단하여 랜딩 페이지 또는 메인 페이지를 보여주도록 추가 * refactor: 피드백 반영 * [FE] 모임 목록 마감된 모임 필터링 기본값 변경 (#423) chore: 모임 목록 필터링 기본값 변경 - 마감된 모임 제외 : false -> true * [FE] 구글 로그인 시 이전 페이지로 보내주는 기능 (#428) * refactor: 구글 oauth 토큰 리다이렉트 url 파싱 부분 제거 * feat: Private Route에 replace 옵션 추가 * feat: 구글 로그인 시 이전 히스토리를 기억해 로그인 후 해당 url로 이동하도록 구현 * fix: 참여 신청 시 로그인이 되어있지 않으면 스낵바를 보여주도록 수정 - 기존에는 alert과 함께 로그인 모달을 띄워주었으나, 찜 버튼과의 통일성으로 인해 스낵바로 수정 * feat: 스낵바에 유지 시간 추가 - 스낵바 배경 색상 변경 * refactor: TimeZone 컴파일시 지정하도록 변경 (#424) * [FE] 메인 페이지 디자인 변경 (#432) * chore: svg 추가 * feat: search section 디자인 변경 * feat: Card 컴포넌트 디자인 변경 * feat: Category 컴포넌트 디자인 변경 * feat: 메인 페이지 디자인 변경 * feat: 미사용 부분 변경 및 제거 - Header 투명도 제거 - 현재 Category 설명 제거 * feat: 마감시간 표시 방식 변경으로 인한 수정 * feat: 카테고리 에러 바운더리 수정 * [BE] 모임 참여 요청이 동시에 왔을 때 참여 인원을 초과하는 문제 (#431) * refactor: 모임 참여 기준에 대한 검증 기준 수정 * fix: 참여하기 로직에 대한 동시성 처리 추가 * refactor: isOutOfRange의 불필요한 괄호 제거 * [BE] Group엔티티와 Favorite엔티티의 연관관계를 단방향으로 의존성 방향 수정 (#427) * rebase branch develop-be * refactor: like관련 네이밍을 favorite으로 변경 * refactor: favorite에서 갖는 Group필드를 id로 변경 * refactor: favorite에서 갖는 Member필드를 id로 변경 * feat: 모임 찜하기시 존재하지 않는 회원, 멤버에 대한 검증 추가 * feat: 모임, 회원 삭제시 찜하기 정보 삭제로직 추가 * refactor: 회원, 모임 삭제시 찜한 목록을 삭제하는 방식을 Event방식으로 변경 * refactor: 회원, 모임 id의 유효성 검증 로직을 validateService로 분리 * feat: authenticate을 통을 통해 모임목록 조회시 유효한 회원인지에 대한 검증 로직 추가 * refactor: ValidateService 네이밍을 Validator로 수정 * feat: id를 통한 회원 존재 유무 로직 수정 * test: Validator에 대한 검증 로직 추가 * refactor: FavoriteRepository의 상위 클래스를 JpaRepository에서 Repository로 변경 * test: FavoriteRepository의 테스트 코드 추가 * refactor: Favorite관련 Listener를 하나로 통합 * fix: 모임 또는 회원 삭제시 관련된 favorite 데이터 삭제로직에 N+1 문제 해결 * refactor: DeleteEvent 클래스에 ApplicationEvent 상속 제거 * refactor: Favorite group, member 아이디에 nullable 속성 추가 * test: Autowired가 아닌 생성자 주입을 통해 의존성이 주입되도록 수정 * refactor: 회원 존재 여부 검증에 대한 로직 관심사 분리 * refactor: 데이터 존재 여부에 대한 검증 결과 필드를 isExist로 변경 * refactor: FavoriteService#cancel Optional 처리 로직 변경 * [BE] JPA 지연 로딩 적용 (#436) * refactor: fetch 타입 지연로딩으로 전환 * refactor: 공백 제거 * [BE] 동일한 사용자 이름으로 회원가입하는 경우에 대한 유효성 검증 (#437) * refactor: MemberService#signUp 이름중복 유효성 검증 추가 * test: 이름중복 유효성 검증 추가에 따른 테스트 수정 * refactor: 사용하지 않는 ErrorCode 제거 * refactor: signUp 의존성 정리 * test: SignUpRequest 생성 메서드 매개변수 변경 * style: MemberService 메서드명 오타 수정 * [FE] 모임 상세 페이지 디자인 변경 (#443) * feat: svg 업데이트 * refactor: 사용하지 않는 코드 제거 * feat: 일정 보여주는 유틸 함수 생성 * refactor: 파일 위치 변경 * feat: 찜 버튼의 refetch를 props에서 캐시 무효화로 변경 * style: 컨트롤 버튼 스타일링 변경 * style: 공통 스타일링 생성 * feat: 일정을 달력형과 리스트형으로 볼 수 있도록 구현 * style: 참여자 스타일링 변경 * style: 사이드바 재구성 * style: 모임 상세 내용 재구성 * style: 모임 상세 페이지 재구성 * feat: 상세 페이지 공통 컴포넌트 생성 * feat: 데스크톱 버전 상세 페이지 구현 * feat: 모바일 버전 상세 페이지 구현 * feat: 태블릿 이상 크기는 데스크톱, 이하 크기는 모바일 버전으로 보여주도록 구현 * refactor: svg 크기 상수화 * refactor: 변수 네이밍 변경 - initParticipants → previewingParticipants * refactor: 변수 네이밍 변경 - unit → cutLine * refactor: 변수 네이밍 변경 - unit → cutLine - initSchedules → previewingSchedules * style: min-width 기준에 +1 추가 * refactor: 사용하지 않는 스타일 컴포넌트 삭제 * refactor: break point 상수를 사용하도록 변경 * [FE] 내 모임 페이지 디자인 변경 (#445) * feat: 내 모임에 카테고리 필터링 요청 추가 * chore: 로티 애니메이션 컴포넌트 스타일 수정 * chore: 카드 컴포넌트 ui 수정 * chore: 검색, 카테고리 컴포넌트 스타일 수정 * feat: 내 모임 페이지 새 디자인 적용 * chore: 코드 리뷰 반영 * feat: 검색 키워드 추천을 placeholder로 표시 * fix: 모임 장소 수정 시 장소세부설명이 잘못 업데이트되는 이슈 해결 (#448) fix: 모임 장소 수정 시 장소세부설명이 잘못 업데이트되는 이슈 해결 * [BE] 백엔드 모임 조회 쿼리 성능개선 (#441) * refactor: fetch 타입 지연로딩으로 전환 * test: 모임 Fixture에 여러 일정이 있는 데이터 추가 * refactor: 모임 단건 조회 쿼리 개선 * test: 누락된 GroupSearchService 테스트 추가 * refactor: 모임 조회로직 쿼리 개선 * style: 잘못된 공백 라인 제거 * refactor: 메직넘버를 변수로 추출 Co-authored-by: nbalance97 <[email protected]> * [BE] 모임 수정 API와 모임 장소 수정 API 통합 (#450) * refactor: 모임 수정 API와 모임 장소 수정 API 통합 * style: Optimize imports * [FE] 모임 수정 디자인 변경 (#452) * feat: CalendarEditor에 편집 반응형 추가 * refactor: 기존의 모임 수정 모달 삭제 * fix: 모임 장소 수정 조건 수정 * feat: 데스크톱 버전에 모임 수정 기능 추가 * fix: 폴더명 수정 * feat: 모바일 버전에 모임 수정 기능 추가 * fix: 타입 수정 * chore: 개발, 배포 모드에 모두 esbuild-loader 적용 - 타입 체크는 fork-ts-checker-webpack-plugin를 사용 - 기존의 ts-loader는 삭제 * style: 모임 상세 설명에 스크롤 지정 * refactor: 피드백 반영 * [BE] 백엔드 모임 CUD 쿼리 성능개선 (#446) * refactor: Group과 Schedule의 관계를 양방향 관계로 수정 * test: 도메인 로직 위치 수정에 따른 테스트 코드 수정 * refactor: 모임 삭제 쿼리 개선 - OrphanRemoval을 통해 Schedule, Participant의 데이터를 삭제하던 로직을 repository를 통해 삭제하도록 변경 * refactor: Member 삭제에 대한 로직 보완을 위한 Participant의 orphanremoval옵션 추가 - Member삭제와 관련하여 Participants데이터 관리에 대한 성능 개선이 필요 * refactor: 모임 수정에 대한 Schedule관련 쿼리 개선 * refactor: 모임 일정 수정 관련 로직 수정 * feat: 모임 기간은 일정 내의 기간으로만 업데이트 할 수 있는 검증 로직 추가 * refacor: rebase를 통한 코드 불일치 수정 * refactor: 회원 삭제시 참여자 삭제에 대한 쿼리 개선 * refactor: JPQL문에 alias 추가 * fix: memberId를 통해 Token을 삭제할 때 이상한 쿼리가 나가는 오류 수정 * refactor: 인터페이스 구현 메서드에 Override 어노테이션 추가 * fix: 마감된 모집에 대해서 Participant정보를 삭제하는 정책 불일치의 오류 해결 * [BE] 모임 조회 로직 리팩토링 (#454) * refactor: AuthenticatedOptional 제거 및 RequestMapping 헤더 지정 * refactor: GroupSearchRepository#findParticipatedGroups 메서드 이동 및 Query 정의 * refactor: GroupSearchRepositoryCustom 조회 인터페이스 매개변수 타입 변경 * refactor: GroupSearchService 템플릿 콜백 패턴 적용 * refactor: GroupSearchService 메서드 중복 제거 및 스타일 변경 * test: 실패하는 테스트 수정 * chore: sonarqube projectKey 변경 * chore: 불필요한 어노테이션 제거 * style: Query 대소문자 스타일 통일 * [BE] timezone 문제 해결 (#456) * [FE] 내 정보 페이지 디자인 변경 (#457) * style: 상세 페이지 일정 애니메이션 수정 * fix: 상세 페이지 versions 업로드 - 깃 이슈 때문에 대소문자를 구별하지 못함 * style: 내 정보 페이지에 모바일 대응 추가 - 회원 탈퇴 버튼 스타일 변경 * refactor: Versions 폴더 삭제 * style: 상세 페이지 모바일 헤더 스타일 수정 * style: 상세 페이지 설명 부분 스타일 수정 * refactor: > 제거 * [BE] 모임 참여 취소시 DB에 데이터가 삭제되지 않는 오류 (#459) * fix: 참여 취소시 데이터가 삭제되지 않는 문제 해결 *…
sinb57
added a commit
that referenced
this pull request
Oct 21, 2022
* chore: 스프링부트 버전 다운그레이드 및 DB설정 * [FE] 모임 생성 페이지 화면 마크업 (#40) * chore: eslint import order 패턴 추가 * feat: 헤더에 Link 추가 - Link의 기능 수행을 위해 App의 PageLayout을 Router 안으로 이동 * feat: 메인, 모임 상세 화면의 일부 컴포넌트에 데이터를 props로 내려줄 수 있도록 변경 - 데이터 타입 정의 * feat: path 변경 시 스크롤 위치 최상단으로 이동하도록 구현 * style: 모임 생성 페이지에서 각 단계별 마크업 UI 생성 * style: navigator 구성 컴포넌트 UI 생성 * style: 모임 생성 페이지 UI 생성 * style: 전역 스타일 추가 - input 스타일 추가 - 페이지 레이아웃 스타일 추가 Co-authored-by: Usage <[email protected]> * [BE] 회원 기능 구현 (#42) * feat: 멤버 도메인 필드 추가 * chore: validation 의존성 추가 * feat: 회원가입 서비스 로직 구현 * feat: 회원가입 API 구현 * feat: JWT 의존성 추가 및 유틸 클래스 추가 * feat: 로그인 기능 구현 * feat: 로그인 API 구현 * refactor: 로그인 메서드명 수정 - signIn -> login * feat: 회원 정보 조회 기능 구현 * feat: 인증 기능 및 정보조회 API 구현 - 인터셉터와 리졸버 구현 * test: 회원 관련 Controller test 추가 * test: 테스트 격리 * feat: 패스워드 암호화 기능 구현 * feat: 회원 탈퇴 API 구현 * style: 코드 컨벤션 통일 - 불필요한 import 제거 * feat: 패스워드 패턴 검사 추가 * refactor: 잘못된 예외 클래스 변경 * refactor: 로그인 API 반환값 수정 - Location 값 반환 삭제 * test: 회원 삭제 repository 테스트 추가 * refactor: JwtTokenProvider 중복 로직 제거 * refactor: login 메서드명 통일 * style: 불필요한 개행 제거 * test: 비밀번호 암호화 테스트 코드 추가 * refactor: 회원가입 API 명세 변경에 따른 수정 - 회원가입 기능을 auth 패키지로 이동 * test: displayName 형식 통일화 * test: 로그인 성공 테스트 수정 * refactor: sha256encoder messagedigest 상수화 * refactor: 비밀번호 패턴 에러 메시지 수정 * [BE] 회원 정보 수정 기능 구현 (#46) Co-authored-by: Seongwon97 <[email protected]> * [BE] 모임 API 기능 및 테스트 리팩터링 (#41) * test: 통과하지 않는 인수테스트 해결 * refactor: Category Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Request Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Group Response Assembler 를 통한 DTO 매핑 로직 분리 * refactor: Member Response Assembler 를 통한 DTO 매핑 로직 분리 * chore: data.sql 생성을 통한 카테고리 초기값 저장 * refactor: Schedules 제거 * refactor: Group Builder 패턴 적용 * refactor: 카테고리 "전체" 항목 제거 * refactor: Duration 정적 팩토리 메서드 생성 * refactor: Schedule 정적 팩토리 메서드 생성 * refactor: Category enum 으로 대체 및 테스트 리팩토링 * refactor: ScheduleRepository 제거 * refactor: Group 과 Schedule 의 양방향 연관관계를 단방향으로 수정 * style: Cleanup Code * test: Group Repository 테스트 코드 수정 * test: Category Service 테스트 코드 수정 * feat: Duration 도메인 날짜 형식 검증 추가 * feat: Schedule 도메인 날짜 및 시간 형식 검증 추가 * test: 테스트 독립성 보장 - Group 인수테스트에서 저장된 데이터가 DB에 남아있어, 다른 테스트에 영향을 주는 문제 발생 - Group 인수테스트에 truncate 로직을 AFTER_EACH_METHOD로 지정하여 해결 * feat: Schedule 시간값 검증 로직 추가 * test: Category 인수테스트 수정 * refactor: RestAssuredConvenienceMethod 클래스 이름 변경 * refactor: Category getAll() 메서드 제거 * refactor: 정적 팩토리 메서드 및 시간 형식 검증 제거 * refactor: Schedule 정적 팩토리 메서드 제거 * refactor: Schedule 날짜 및 시간 형식 검증 로직 제거 * refactor: Duration 정적 팩토리 메서드 제거 * refactor: Duration 날짜 및 시간 형식 검증 로직 제거 * test: Duration, Schedule 픽스처 분리 * refactor: DTO 응답 객체에서 @NoArgsConstructor 제거 * refactor: 엔티티 Constructor 어노테이션 수정 * style: 불필요한 import 제거 * test: 매직넘버 제거 * test: GroupRepositoryTest 영속성 컨텍스트 DB 동기화 * refactor: merge conflict 해결 Co-authored-by: sinb57 <[email protected]> Co-authored-by: Seongwon97 <[email protected]> * [FE] 카테고리 API 연결 (#50) * chore: 절대경로 추가 - store * feat: 카테고리 axios 요청 추가 * feat: 카테고리 API mocking * feat: 카테고리 커스텀훅 구현 - useRecoilQuery, useCategory * feat: 데이터 타입 추가 * feat: 컴포넌트에서 카테고리 요청 부분 추가 * feat: recoil 카테고리 상태 추가 Co-authored-by: Usage <[email protected]> * [FE] 모임 생성 페이지 기능 구현 (#52) * feat: 모임 생성 페이지 커스텀훅 구현 - useCreateState * style: 모임 생성 페이지에서 공용으로 사용하는 스타일 추가 * chore: 모임 생성 규칙, 에러 메시지 상수화 * feat: 모임 생성 페이지에서 사용된 함수 utils로 분리 - isEqualObject - date utils - PageError 클래스 → ✨ OUR CUSTOM ERROR ✨ * feat: 모임 생성 Step1 * feat: 모임 생성 Step3 * feat: 모임 생성 Step4 * feat: 모임 생성 Step5 * feat: 모임 생성 Step6 * feat: 모임 생성 Step7 * style: svg 리소스 추가 * style: Dot 컴포넌트 props 수정 - color → isFocused, theme * feat: Navigator 컴포넌트 생성 * feat: 모임 생성 입력 데이터에 대한 유효성 검사 * feat: 모임 생성 페이지 기능 연결 * feat: 모임 기능 API mocking * feat: 모임 생성 요청 시 보낼 데이터 추가 * style: complete svg에서 사용하지 않는 스타일링 삭제 * style: Navigator의 사이드 버튼 스타일링 추가 - complete 시 크기 차이로 인해 navigator가 움직이던 부분 해결 Co-authored-by: Usage <[email protected]> * [BE] 인증 RestDocs 적용 (#56) * chore: restdocs 의존성 추가 * feat: AuthControllerTest restdocs 적용 및 관련 gradle 수정 * [ALL] .gitignore 설정 추가 (#59) * chore: .gitignore 설정 추가 * chore: .gitignore EOF 추가 * [FE] 메인 페이지 기능 구현 (#62) * chore: 카테고리 이미지 업로드 * feat: 카테고리에 맞게 이미지를 가져오는 함수 생성 * feat: 마감 기간까지의 시간 추출 함수 생성 * feat: 메인 페이지의 모임 카드 스타일 변경 - 카테고리 이미지로 변경 - 마감 기간 변경 * style: 메인 페이지의 카테고리 스타일 변경 * style: 헤더 스타일 변경 * style: 메인 페이지의 검색 섹션 스타일 변경 - 배경 이미지 삭제 - 검색 버튼 텍스트 변경 * feat: MSW를 사용한 모임 API mocking * refactor: 모임 생성 시 보내는 데이터 타입 선언 * feat: 메인 페이지 모임 목록 조회 API 연결 Co-authored-by: Usage <[email protected]> * [BE] Annotation 기반의 Interceptor를 통한 API 인증 처리 (#61) * feat: Annotation 기반의 인증 인터셉터 구현 * feat: 인증이 필요한 API 에 @Authenticated 어노테이션 설정 * [BE] 누락된 Controller 테스트 작성 (#65) * feat: CategoryController 테스트 작성 * feat: GroupController 테스트 작성 * feat: MemberController 테스트 작성 * [BE] 실패 테스트 코드 수정 (#67) * [FE] 모임 상세 페이지 기능 구현 (#69) * feat: 모임 상세 정보 요청 함수 생성 - 모임 생성 요청 함수에 리턴 값 추가 * chore: 지도 이미지 업로드 * style: theme에 filter prop 추가 - Theme 내부에 Record 적용 * refactor: mock data 수정 * fix: category의 id 타입 변경 * style: 모임 상세 페이지 이미지 추가 - 이미지에 필터 적용 * style: 모임 상세 페이지 스타일 변경 - 마감 기간 문구 수정 - 지도 이미지 추가 * feat: 카테고리명을 props로 전달하도록 변경 * feat: 모임 상세 페이지에 모임 상세정보 조회 API 적용 Co-authored-by: Usage <[email protected]> * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * [FE] 환경설정 추가 (#75) * chore: webpack 설정 추가 - output에 publicPath 추가 * chore: MSW warning option off * style: Global style 추가 - useTheme 사용 - textarea global style 추가 Co-authored-by: Usage <[email protected]> * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * [FE] 모임 삭제 기능 구현 (#79) * feat: 모임 삭제 API 구현 * style: 모임 삭제 버튼 스타일 변경 * feat: 모임 삭제 관련 메시지 생성 Co-authored-by: Usage <[email protected]> * [BE] RestDocs 적용하기 (#70) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * [BE] 모임 참여 기능 구현 (#64) * feat: 모임 참여 기능 구현 * refactor: 모임 생성 API body 에 모임 아이디 추가 * feat: 처리되지 않는 예외 발생 시 400 에러 발생 * refactor: 예외 응답 객체 생성하여 예외 메시지 로직 분리 * refactor: 모임 참여 테이블의 엔티티 별도 생성 * refactor: 불필요한 테스트 파일 삭제 - 모임 참여 관련 테스트는 GroupRepositoryTest 에서 실행 * feat: 모임 참여 관련 Service 기능 구현 * refactor: 모임 참여 관련 Service 에 @Transactional 추가 * feat: 모임 참여 관련 Controller 및 인수테스트 추가 * style: 불필요한 import 삭제 * style: 불필요한 import 삭제 * refactor: 사용하지 않는 Repository 삭제 * refactor: Group 에 속해있는 Participant 를 별도의 패키지로 분리 * refactor: GroupParticipant 를 Participant 로 이름 변경 * [BE] CI Github Action 추가 (#73) * test: 실패 테스트 코드 수정 (#71) * [BE] CORS 접근 허용 (#78) * feat: controller 테스트에 document 메서드 추가 * feat: adoc 설정 및 interceptor 수정 * refactor: 카테고리 목록 조회 테스트명 수정 * refactor: index.adoc 오타 및 깨진 글자 수정 Co-authored-by: yukong <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> * [BE] 조회 로직 리팩토링 (#82) * [FE] 모달 구현 (#84) * feat: 모달 상태 Recoil에 저장 - 모달 상태 타입 정의 * feat: 클릭 이벤트 시 발생하는 버블링 막는 유틸 함수 구현 * feat: 모달 레이아웃 구현 - 포탈 사용 * feat: 로그인, 회원가입 모달 구현 - 헤더에 바인딩 Co-authored-by: Usage <[email protected]> * [BE] CI Github Action 오류 수정 (#86) * [BE] CORS 설정 변경 및 preflight 처리 (#90) * feat: CORS 설정 추가 * feat: interceptor preflight 설정 추가 * refactor: 불필요한 interceptor checking 제거 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [BE] CORS 및 RestDocs 경로 패턴 설정 수정 (#93) * refactor: CORS 설정을 전역 Configuration 으로 클래스 분리 * refactor: RestDocs 설정 URL 패턴 적용 수정 * refactor: CORS 허용 메서드 지정 * refactor: WebConfig 클래스명 수정 * [BE] 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 (#88) * fix: 타회원이 주최한 모임의 정보를 수정 및 삭제할 수 있는 이슈 해결 * refactor: Group#equalsHost 메서드명 변경 * [FE] 회원가입 기능 구현 (#95) * chore: 로그인, 회원가입 모달 컴포넌트 삭제 * feat: 로그인, 회원가입 API 요청 함수 생성 * style: 모달에 그림자 추가 * chore: 로그인, 회원가입에 사용하는 상수 선언 - API 경로 → path - 메시지 * feat: useInput 커스텀훅 생성 * feat: User 타입 정의 * feat: 회원가입 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 로그인 기능 구현 (#97) * feat: access token 관리처 구현 - recoil selector 사용 - session storage에서 관리하도록 구현 * feat: 로그인 화면 및 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원정보가 필요한 API 변경 (#101) * feat: 모임 생성, 삭제 요청 API 헤더에 accessToken 저장 * feat: 로그아웃 기능 구현 - 로그인 상태를 recoil에 저장 Co-authored-by: Usage <[email protected]> * [BE] JSON DateTime 형식 불일치로 인한 에러 발생 * [BE] 더미 데이터 작성 (#102) * chore: jpa 데이터 initialization 세팅 * feat: 더미데이터 추가 * feat: Category 문화생활 추가 * test: category 개수 수정에 따른 테스트 변경 * test: test yml 수정 및 repository 테스트 에러 해결 * [BE] 모임 목록 조회 API 형식 불일치 에러 발생 (#104) * feat: 모임 목록 조회를 위한 DTO 생성 * refactor: 모임 상세 조회 DTO 클래스명 변경 * style: Optimize Imports * [FE] 모임 참여자 목록 조회 기능 구현 (#106) * feat: 상수화 - 키, path * feat: 타입 선언 - UserProfile, GroupParticipants * feat: 참여자 목록 조회 API 생성 * feat: 참여자 목록 조회 기능 구현 Co-authored-by: Usage <[email protected]> * [BE] 인수테스트 리팩토링 (#109) * test: RestHandler 메서드명 통일 * test: RestHandler 사용하지 않는 메서드 제거 * test: AuthRestHandler, User 를 통한 인수테스트 리팩터링 * test: 인수테스트 DisplayName 수정 * test: Category 인수테스트 리팩토링 * test: Member 인수테스트 DisplayName 수정 * test: 모임 인수테스트 및 참여 인수테스트 리팩토링 * test: RestHandler 를 상속받은 각 도메인별 유틸성 클래스 생성 * test: GroupFixture 생성을 통한 모임 인수테스트 리팩토링 * test: 모임 CRUD 기능에 따라 인수테스트 클래스 분리 * test: MemberFixture 생성을 통한 인증/회원 인수테스트 리팩토링 * test: 테스트픽스처 클래스를 Enum 으로 변경 및 픽스처 패키지 분리 * test: truncate.sql 파일에 momo_participant 테이블 추가 * chore: init.sql, build.gradle 수정 * test: 불필요한 요소(제네릭) 제거 및 컨벤션 정리 * chore: api 명세 html 파일 빌드 생성 * chore: application.yml 불필요한 설정 제거 * style: application.yml 컨벤션 정리 * refactor: GroupResponse DTO 클래스명 변경 * test: API RestHandler 메서드명 통일 (~한다) * refactor: Optimize Annotation 및 사용하지 않는 클래스 제거 * test: DurationFixture 인스턴스 관리 방식 변경 * test: 테스트 픽스처 인스턴스 생성 방식 리팩토링 * [BE] 모임 참여 신청 시 주최자일 경우 예외 처리 추가 (#113) * refactor: 인수테스트 리팩토링 코드 추가 * refactor: 모임 참여 검증 로직 분리 * refactor: 리팩토링에 맞춰 참여자 인수테스트 추가 및 수정 * [FE] 달력 컴포넌트 구현 (#117) * feat: 달력 컴포넌트 생성 - 전달된 연도와 월을 바탕으로 해당 월의 달력만 보여주는 방식 * feat: 달력 커스텀훅 생성 - 전달된 연도와 월을 바탕으로 해당 월에서 보여질 일 수(지난달, 이번달, 다음달)를 계산하여 반환 * feat: 이전, 다음 월로 넘어가는 기능 추가 - props로 해당 함수를 전달받도록 구현 * feat: 달력 사이즈 추가 - medium, large * feat: 달력에 오늘 날짜를 표시하는 부분 추가 * style: 달력에 토, 일요일 구분 색깔 추가 * style: 각 일에 padding 추가 * refactor: dayLength → totalOfDay로 변수 네이밍 변경 * refactor: useCalendar 변수명 변경 - https://github.com/woowacourse-teams/2022-momo/pull/117#discussion_r930740289 * [FE] Suspense, ErrorBoundary 구현 (#118) * feat: ErrorBoundary 컴포넌트 구현 * refactor: 메인 페이지 section 분리 - 추천 모임 리스트 분리 * feat: ErrorBoundary 적용 * chore: lottie 설치 - react-lottie - @types/react-lottie * feat: Spinner 컴포넌트 구현 * feat: Loading 컴포넌트 구현 * feat: useRecoilQuery에 suspense옵션 추가 * feat: suspense 적용 * chore: 코드 리뷰 반영 - 스피너 애니메이션 색 변경 - css 스타일 컨벤션에 맞게 수정 - 절대경로 import 사용 * [FE] 모임 생성 페이지에 최대 인원 입력 추가 (#122) * feat: 모임 생성 Step3 컴포넌트 생성 - Step3가 추가됨에 따라 기존의 Step3~7을 Step4~8로 변경 * feat: 모임 생성 인원 관련 규칙 추가 * feat: 모임 생성 상태에 최대 인원 추가 * feat: 최대 인원 입력 기능 구현 * fix: 제거하지 않은 defaultValue 제거 * feat: Step3에 props 넘기는 부분 추가 * feat: 최대 인원 유효성 검사 추가 - 기존에 있던 ValidatorProps를 CreateGroupData로 대체 * feat: 모임 데이터 타입에 최대 인원 추가 * feat: 모임 생성 요청에 최대 인원 추가 - 입력되지 않았을 경우, 현재 최대 인원 입력의 최대값인 99로 요청이 가도록 구현 * feat: Step3 컴포넌트에 memo 추가 * refactor: Step4~8 컴포넌트 이름 변경 - https://github.com/woowacourse-teams/2022-momo/pull/122#discussion_r931838328 * [FE] 404 페이지 구현 (#126) * feat: NotFound 애니메이션 컴포넌트 구현 * feat: NotFound 페이지 구현 * feat: 404 Page 라우팅 적용 * refactor: Page 프리픽스 제거 * [FE] lottie-react 버젼 충돌 이슈 해결 (#128) * chore: lottie 라이브러리 교체 - react-lottie 제거 - lottie-react 설치 * refactor: lottie 라이브러리 변경 적용 * [BE] 모임 인원 제한 추가 (#125) * feat: 모임 최대 인원 정보 추가 * feat: 모임 정원 초과시 참여 제한 로직 추가 * refactor: 모임 객체가 hostId가 아닌 Member객체를 갖도록 수정 * feat: 모임 생성시 Host가 참가자로 저장되도록 로직 추가 - 기존에는 모임 생성시 Host가 참가자로 등록되지 않았는데 해당 로직을 추가하며 문제를 해결하였다. * refactor: 참가 검증 로직을 도메인으로 이동 - 호스트가 참가자인지 체크하는 테스트 제거 * refactor: 참가 최대 인원 변수명 수정 - maxOfParticipants -> capacity * refactor: 축약 가능한 람다 표현식 축약 * style: 정렬되지 않은 쿼리문 정렬 * refactor: 메서드 네이밍 수정 * refactor: GroupResponseAssembler의 불필요한 메서드 매개변수 제거 * refactor: host필드의 불필요한 JoinColumn 설정 제거 * refactor: requestDTO의 capacity를 Wrapper클래스로 변경 * feat: 모임 정원 값에 대한 유효성 검사 추가 * test: 모임 정원 초과 테스트 로직 수정 * feat: API 변경에 따른 모임 정원 필드 추가 * refactor: Response DTO의 ID값을 Wrapper class로 통일 * refactor: 재참여 검증 메서드명 수정 - validateReParticipant -> validateReParticipate * refactor: 모임 정원 상수 로직 분리 * test: 모임 정원 유효성 테스트 추가 * [BE] 패치지 계층 수정 및 코드 컨벤션 수정 (#134) * refactor: 패키지 계층 통일 - DTO 패키지를 Serive내로 이동 * style: 코드 컨벤션 수정 * [FE] 모달 애니메이션 추가 (#131) * style: 모달 애니메이션 추가 - 열고 닫는 애니메이션을 0.3초씩 재생하도록 추가 * refactor: 모달 애니메이션 재생 시간 상수화 - 스타일링 컴포넌트에서 props로 받도록 변경 * [BE] 모임 전체 조회 반환값에 현재 참여자 수 추가 (#140) * feat: 모임 전체 조회 API 반환값에 참가자 수 추가 * refactor: 불필요한 메서드 분리 제거 * [BE] 회원 필드 변경 (#138) * refactor: 회원의 email 필드를 userId 필드로 변경 * refactor: 학습 테스트 목적의 로직 제거 * style: optimize spaces * refactor: 아이디 형식 검증 로직 추가 * [FE] 메인, 모임 상세 페이지에 해당 모임의 최대 인원 및 현재 모인 인원 수 추가 (#139) * feat: 메인 페이지에 모임 인원 수 추가 - 현재 모임에 모인 사람의 수는 아직 모임 전체 목록 조회 API에 추가되지 않았으므로, 임시로 모임 참여자 목록 API를 사용하도록 대체 * feat: 모임 상세 페이지에 모임 인원 수 추가 * fix: API 변경에 따라 메인 페이지에서 현재 모임의 참여 인원 수를 가져오는 방식 변경 * fix: 모임 상세 페이지에서 참여자 수에 1을 더하는 부분 삭제 * [FE] 회원 정보 수정 기능 구현 (#141) * chore: info 페이지의 asset 추가 * feat: useInput 훅에 setValue output 추가 * feat: UserInfo type, query key 설정 * feat: 회원 정보 수정 기능 구현 * chore: 피드백 반영 * [FE] 모임 참여 기능 구현 (#144) * feat: 모임 참여, 취소 요청 API 생성 * style: 색상 추가 * feat: 모임 참여 신청, 취소 기능 구현 Co-authored-by: Usage <[email protected]> * [FE] 회원 탈퇴 기능 구현 (#143) * refactor: api 명세 수정에 따른 변경 적용 - email -> userId 로 변경 * feat: 회원 탈퇴 기능 구현 * feat: 회원 탈퇴 기능 적용 * refactor: 피드백 반영 * [FE] 모임 참여 시 header가 제대로 보내지지 않는 오류 해결 (#147) * fix: post 요청 시 header를 제대로 보내도록 수정 Co-authored-by: Usage <[email protected]> * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [FE] 모임 생성, 상세 페이지에 달력 추가 (#156) * style: 달력 스타일 변경 - 레이아웃이 깨지는 부분 변경 * feat: useDate 커스텀훅 생성 - 달력을 보여줄 때 사용할 상태와 함수 반환 * feat: 모임 생성 페이지에 달력 삽입 - large 사이즈 * style: 달력 컴포넌트 스타일 변경 - transform-origin 추가 - medium 사이즈일 때 scale을 0.5 → 0.7로 변경 * style: 모임 생성 페이지 달력에 max-width 부여 * feat: 모임 상세 페이지에 달력 추가 * style: 모임 생성 페이지 달력 너비 변경 * style: aspect-ratio 축약 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * [FE] 회원가입, 로그인 시 유효성 검사 및 에러 메시지 세분화 (#161) * feat: 로그인, 회원가입 에러 컨트롤러 구현 * feat: 회원가입 유효성 검증 함수 구현 * feat: 회원가입 실시간 유효성 검증 UI 구현 * feat: 로그인 에러 세분화 및 리팩토링 - 에러 컨트롤러 적용 - 비제어 컴포넌트로 변경 * refactor: 코드 리뷰 반영 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * [FE] 바뀐 모임 목록 API에 맞게 변경 (#166) * refactor: DetailData → GroupDetailData로 네이밍 변경 * refactor: Group → GroupSummary로 네이밍 변경 * feat: 모임 목록 API에 맞게 변경 Co-authored-by: Usage <[email protected]> * [BE] 로그 기능 추가 (#155) * chore: AOP 의존성 추가 * feat: console 창에 로그 남기는 기능 구현 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * chore: JPA SQL 로깅 기능 비활성화 * fix: 삭제한 메서드 테스트 제거 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * refactor: 파일에 로그가 적히는 시간 추가 * [BE] 서브모듈 도입을 위한 Github Action 수정 (#163) chore: github action 파일 수정 * [BE] 페이지네이션 구현 (#152) * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * test: 페이지네이션 테스트 추가 * feat: 페이지네이션 로직 추가 * test: 페이지네이션 테스트 추가 * chore: build 폴더로 옮기도록 gradle 설정 (#154) * [BE] 프로퍼티 파일 중복 제거 및 파일 분리 (#151) * chore: application 프로퍼티 파일 분리 * style: application.yml 줄맞춤 * [BE] 모임 모집 마감 로직 및 검증 로직 추가 (#145) * feat: 모임 모집 마감여부 판단 로직 추가 * test: Fixture를 현재 시간 기준으로 생성하도록 변경 * feat: 과거의 기간으로 모임 생성, 업데이트시 발생하는 예외 로직 추가 * feat: 과거의 마감시간으로 모임 생성시 발생하는 예외 로직 추가 * feat: 마감 기한이 모임 기간 시작일 이후면 발생하는 예외 로직 추가 * feat: 모집 마감시 참여 신청을 못하도록 로직 수정 * feat: 모집 마감시 모임 삭제를 할 수 없도록 로직 수정 * feat: API 명세에 따라 모임 조회 반환값에 finished 필드 추가 * style: 불필요한 import 제거 * refactor: Duration 정적 팩터리 메서드 제거 * refactor: 정원 초과 판단 메서드명 수정 * test: Test Fixture 이름 수정 * refactor: 불필요한 클래스 사용 제거 - Duration에서 ChronoLocalDate 클래스 사용 제거 * feat: 모임 조기 모집 마감 여부 컬럼 추가 * feat: 모임 마감시 모임 수정할 수 없도록 로직 추가 * feat: 모임 조기 마감 서비스 로직 추가 * feat: 모임 조기마감 API 구현 * refactor: 조기마감을 의미하는 변수명 수정 * refactor: 모임 조기 마감 API 수정 * test: 모임 조기 마감 컨트롤러 테스트 추가 * feat: grouprepository pageable 추가 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: api 변경에 따른 테스트 수정 * feat: api pageable 추가 및 dto에 다음 페이지 여부 추가 * test: 페이지네이션 테스트 추가 * test: 페이지네이션 테스트 추가 * refactor: displayname 수정 * refactor: pagesize 지정 service에서 하도록 변경 * refactor: 충돌 해결 * fix: 에러사항 해결 * refactor: 중복 로직 메서드 분리 Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * chore: AOP 의존성 추가 * refactor: 이전 PR 내용 적용 * feat: 예외 발생 시 예외 메시지 로그 남기는 기능 구현 * refactor: 모든 API 요청에 대한 로그 삭제 - 불필요한 로그라고 판단하여 삭제하였음 * fix: 삭제한 메서드에 대한 테스트 제거 * refactor: 예외 발생 시 로그에 stacktrace 출력 * feat: 로그 파일 생성 * refactor: 로그 파일 생성 시 오늘 날짜로 생성 * feat: 로그 작성 시 발생하는 예외 처리 추가 * refactor: MomoLogFile 을 LogFileManager 로 이름 변경 * refactor: 출력값 색상 변경하는 메서드를 객체로 분리 * refactor: 로그 레벨에 따라 출력 색상 변경 * refactor: 예외 로그 출력 시 예외 발생 전에 실행된 메서드 출력 * refactor: 날짜별로 로그 폴더 분리 * refactor: ApiLogging 을 ExceptionLogging 으로 변경 - 예외 발생 시에만 로그를 남기므로 ExceptionLogging 으로 수정 * fix: 삭제한 메서드 테스트 제거 * refactor: @EnableAspectJAutoProxy 설정 객체 분리 * refactor: AopConfiguration 를 AspectConfiguration 로 이름 변경 * refactor: 파일에 로그가 적히는 시간 추가 * refactor: 어노테이션에 사용하는 문자열 상수 분리 제거 * refactor: 사용하지 않는 메서드 제거 * refactor: 사용자 픽스쳐 수정 Co-authored-by: Byunghoon <[email protected]> Co-authored-by: 이프(sinb57) <[email protected]> Co-authored-by: SeongWon Oh <[email protected]> * refactor: pageNumber 필드 추가 (#169) * [BE] 모임 수정 로직 추가 및 회원정보 조회 API 반환값 수정 (#168) * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * refactor: pageNumber 필드 추가 (#169) * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 * refactor: 회원정보 조회 API 반환값에 id 추가 * refactor: 모임 수정에서 이름 항목 제거 * test: 사용자 조회 Controller 테스트 수정 * test: 사용자 조회 테스트 시 값을 직접 비교하는 방식으로 수정 Co-authored-by: Byunghoon <[email protected]> * [FE] 무한 스크롤 구현 (#170) * feat: GroupList 타입에 pageNumber 추가 * feat: 모임 목록 API 요청 함수 변경 - 요청 링크 변경 * feat: 모임 목록 무한스크롤 구현 Co-authored-by: Usage <[email protected]> * [FE] 전체적인 UI 개선 (#172) * refactor: react query에서 isError 제거 - 에러 컨트롤을 에러 바운더리로 대체 * feat: 회원가입 UI 수정 - 회원가입 성공 시, 로그인 모달로 이동 & input 초기화 * chore: package-lock.json 업로드 * refactor: 로그아웃 컨펌 메시지 분리 * feat: 로그인 상태에 따른 헤더 메뉴 변경 * refactor: API 요청 함수 반환 타입 명시 * refactor: 기존 타입을 사용하도록 변경 * style: css 수정 Co-authored-by: Usage <[email protected]> * [FE] 에러 바운더리 fallback 컴포넌트 수정 (#174) * chore: fallback 애니메이션 추가 * feat: 에러 바운더리 컴포넌트를 유연하게 변경 - fallback UI props 추가 * feat: 카테고리 fallback UI 구현 * chore: 기본 fallback UI style 변경 - border-radius 적용 * [BE] 사용자가 참여한 그룹 목록 조회 api 구현 (#176) * feat: 본인이 참여하는 모임 조회 기능 구현 * test: 본인이 참여하는 모임 조회 기능 테스트 작성 * refactor: 본인이 참여하는 모임 조회 adoc 파일에 추가 * refactor: 본인이 참여하는 모임 테스트 변경 * refactor: 불필요한 import문 제거 * [BE] 서브모듈 도입 (#175) * chore: git submodule 을 통한 중요파일 분리 * chore: workflow 파일 수정 * [FE] 달력에 선택된 날짜를 보여줄 수 있는 기능 추가 (#178) * feat: 시간 정제 함수 생성 - 00:00:00 형태로 들어오는 시간을 **시 **분으로 정제하여 반환 * feat: 모임 생성 시의 입력 상태에 schedules 추가 * style: 달력 css 수정 - transform-origin 제거 * feat: 스케줄로 선택된 날짜와 아닌 날짜 분기 처리 * feat: 선택된 날짜 컴포넌트 생성 - 색상 변경 - 호버링 시 조그맣게 시간 모달 * refactor: isHovering → isHover로 변경 * [FE] 모임 모집 마감 기능 구현 (#181) * feat: 모임 모집 마감 관련 상수화 * feat: 모임 모집 마감 요청 API 함수 생성 * feat: 모임 모집 마감 기능 구현 * [FE] utils 함수 테스트 코드 작성 (#183) * chore: jest 설치 및 명령어 설정 * refactor: 시간 단위 상수화 * test: date 함수 단위 테스트 작성 * [FE] 해당 모임에 대한 사용자의 역할 판단 로직 추가 (#185) * fix: 로그인 요청 시 받아오는 데이터의 타입 변경 * feat: 로그인 시 리코일에 저장하는 기능 추가 * feat: 내 정보 페이지에서 로그인한 사용자의 정보를 가져오는 방법 수정 - 기존에 API 요청을 통해 가져왔다면, 저장된 리코일의 정보를 가져오도록 수정 * feat: 현재 로그인한 사용자가 호스트인지 판단하는 로직 추가 * feat: 현재 로그인한 사용자가 모임의 참여자인지 판단하는 로직 추가 * fix: 참여자 목록에서 호스트를 제외한 사람만 구분하여 보여줄 수 있도록 변경 * [BE] 배포서버 데이터베이스 변경 (to Mysql) (#188) * chore: application.yml 계층 단순화 및 mysql 연동 * chore: data.sql 파일 제거 * [FE] 로그인 시 회원정보를 제대로 가져오지 못하는 오류 해결 (#190) * fix: access token 저장 후 사용자 정보를 요청하도록 순서 변경 * chore: package-lock 업로드 * feat: 모임 참여 신청, 취소, 모집 마감 시에 데이터 최신화 기능 추가 (#191) * chore: API 주소 업데이트 (#194) Co-authored-by: Usage <[email protected]> * [BE] 배포 서버 재시작 시 DB 초기화되는 현상 발생 (#199) * chore: submodule 업데이트 * chore: 쿼리 로깅 기능 비활성화 * [FE] 모임 생성 시 상세 일정 입력 기능 추가 (#200) * style: input disabled 스타일 추가 * feat: 생성 페이지에서 duration 구성하여 전달하도록 추가 * style: 달력에 스타일 추가 - 애니메이션 - disabled date * feat: 달력 기능 추가 구현 - duration이 있을 경우, duration이 아닌 날짜는 disabled 처리 - 날짜를 선택하는 기능 - 선택된 날짜를 보여주는 기능 * feat: 세부 일정 입력 기능 구현 - 달력의 날짜를 선택하여 일정 입력 - api에 일정 추가 Co-authored-by: Usage <[email protected]> * [FE] 마감된 모임에 대해 상태 반영 (#192) * feat: 모임 상세 데이터에 finish 타입 추가 * feat: 모집 종료 버튼 구현 * chore: 코드 리뷰 반영 * feat: 설명이 없는 모임은 description 영역 제거 * feat: 모집 마감시 DetailContent에 표시 * feat: 마감된 모임은 메인 화면에서 마감 표시 * [FE] 달력 일정 호버 시 모달에 겹치면 모달이 계속 여닫히는 오류 해결 (#202) * feat: 시간 모달에 호버 시 모달이 꺼지지 않는 기능 추가 * refactor: 함수 네이밍 변경 - toggleHovering → changeHoverState * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * fix: 무한 스크롤 시 마지막 페이지의 데이터를 보여주도록 추가 (#208) * [BE] 에러코드 추가 (#204) * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * [BE] RestDocs 목차 추가 (#206) * feat: restdocs 목차 추가 * feat: adoc 누락 항목 추가 * [BE] 로그 파일의 경로 수정 (#203) * refactor: 로그 파일 저장 경로 수정 * refactor: 로그 파일 저장 경로를 yml 파일로 관리 * refactor: 조건에 따라 로깅 빈 객체를 등록 * refactor: 모모 어플리케이션에서 사용하는 설정값 이름 수정 * refactor: 중복적인 설정 제거 * refactor: 메서드명 수정 * feat: 로그인/회원가입 예외처리 추가 * feat: 모임 조회/생성/삭제 예외처리 추가 * feat: 나머지 에러코드 추가 및 관련 테스트 코드 변경 * refactor: ErrorCode 클래스 분리 및 MomoException에서 해당 클래스 사용하도록 변경 * test: 변경에 따른 테스트 수정 * refactor: 리뷰 반영 Co-authored-by: yukong <[email protected]> * fix: 오늘 날짜 하이라이팅 우선순위 변경 (#215) - 선택할 경우 > 오늘일 경우 * fix: getNewDateString에 한국 시간대 적용 (#217) * [BE] Google Oauth2 연동 (#213) * feat: Google Oauth 요청을 책임지는 Support 클래스 구현 * feat: Google Oauth 로그인 기능 구현 * test: Google Oauth 테스트코드 작성 * chore: application.yml 관심사 분리 및 profile 간의 중복 제거 * chore: rest docs api 문서화 생성 * chore: security 서브모듈 업데이트 * chore: security 서브모듈 업데이트 * feat: GoogleProvider 필드 불변성 보장 * refactor: OauthService 필드명 변경 * refactor: OauthService 필드명 변경 * refactor: 사용하지 않는 클래스 제거 * refactor: MemberResponse 빈생성자 어노테이션 추가 * refactor: MemberRepository#findByUserId 반환타입을 Optional로 변환 * style: 변수명 오타 수정 * refactor: MemberResponse 빈생성자의 접근제어자 private으로 지정 * refactor: OauthController#access api의 반환값을 dto로 매핑 * refactor: Oauth에 대한 에러코드 작성 및 예외처리 * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#225) * [BE] Oauth 기능에 대한 Jenkins 빌드 테스트 오류 해결 (#227) * [BE] 모임 수정, 모임 삭제 기능을 참여자가 없을 경우에만 가능하도록 변경 (#222) * refactor: 모임 삭제 시 주최자 외 참여자가 있을 경우 삭제 불가능 * refactor: 모임 수정 시 주최자 외 참여자가 있을 경우 수정 불가능 * refactor: 모임 수정 시 이름도 수정 가능하게 변경 * refactor: 메서드명 수정 * refactor: 공통 로직 메서드로 분리 * test: 검증 라이브러리를 JUnit 에서 AssertJ 로 변경 * refactor: 처리하지 못한 예외에 한해 로그 작성 * [FE] 메인 페이지 UI 개선 (#229) * style: 메인 페이지 카테고리 UI 변경 * style: 모임이 없을 경우의 UI 추가 * feat: MSW 전체 모임 목록 코드 업데이트 * feat: 다음 페이지가 없을 때는 요청을 보내지 않도록 추가 - 페이지 번호와 모임 목록 데이터를 업데이트하는 부분 분리 * feat: 모임 목록 데이터를 가져오는 중이라면 로딩 바를 보여주도록 추가 - 이를 위해 isLoading → isFetching을 사용하도록 변경 * style: 카드 이미지를 img 태그에서 background로 변경 * style: 마감 완료된 모임에 대해 회색 필터링 적용 * style: 페이지 레이아웃 너비 변경 - 100vw로 설정 시 가로 스크롤이 생기므로 100%로 변경 * style: 모임 목록 컨테이너 스타일링 추가 * style: 메인 페이지 사용하지 않는 스타일링 제거 * style: 카드 호버 시 살짝 커지도록 추가 * fix: 모임이 없을 경우의 UI 가운데 정렬 * fix: Wrapper → Container로 변경 * [FE] TOP 버튼 구현 feat: TOP 버튼 구현 (#231) - 메인 페이지에 추가 * [FE] 모임 생성에서 모임 시작 기간이 끝 기간을 넘어가면 끝 기간을 맞춰서 연장하도록 수정 (#233) * fix: 시작 날짜 선택 함수 변경 - 시작 날짜가 종료 날짜보다 작으면 종료 날짜를 변경하도록 수정 * refactor: 필요없는 코드 제거 * [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 (#235) * refactor: Oauth Redirect URI 생성방식 개선 * style: 오타 수정 * refactor: 관심사에 따른 Configuration 분리 * refactor: 구글 Oauth AccessToken 요청에 사용되는 redirect_url 형성 방식 개선 * chore: submodule update * [FE] 환경변수 설정 (#237) * chore: webpack-merge dotenv 설치 - npm scripts 변경 * chore: gitignore에 env 추가 * chore: webpack 모드 설정 - common, development, production * refactor: base url 환경변수로 이전 Co-authored-by: Usage <[email protected]> * [BE] 리프레시 토큰 구현 (#238) * feat: 리프레시 토큰 발급 로직 구현 * feat: 리프레시 토큰을 담을 Entity와 Repository 구현 * rebase develop-be - [BE] Oauth 인증 Redirect Uri 생성방식을 반응형으로 수정 * feat: 리프레시토큰에 누락된 Payload값 추가 * style: RefreshToken 클래스명을 Token으로 변경 * feat: 엑세스 토큰 재발급 로직 구현 * feat: 리프레시 토큰을 검증하는 인터셉터 구현 * feat: 로그인시 리프레시토큰 값을 DB에 저장하는 로직 추가 * feat: 엑세스 토큰을 재발급받는 API 구현 * test: 리프레시 토큰을 통한 엑세스 토큰 발급 인수 테스트 추가 * refactor: DB 값을 업데이트하는 로그인 로직에 누락된 트랜잭션 어노테이션 추가 * refactor: DB에 저장된 리프레시토큰 값과 다를 경우 예외가 발생하도록 로직 수정 * refactor: 토큰의 유효기간을 서브모듈에서 읽어오도록 변수 수정 * chore: 서브모듈 버전 업데이트 * feat: token객체가 Member 객체를 갖도록 수정 * refactor: 리프레시토큰 값 동기화 메서드 분리 * test: 잘못된 테스트 코드 수정 * refactor: Optional의 기본 기능을 사용하도록 수정 * feat: 로그아웃시 API 구현 * style: 메서드명 오타 수정 * test: 컨트롤러 테스트의 responseField제거 * test: 인수 테스트의 static 메서드의 prefix제거 * refactor: 리프레시토큰 api 수정 * [BE] 모임 탈퇴 기능 구현 (#240) * feat: 모임 탈퇴 기능 구현 * feat: 주최자는 모임 탈퇴 불가능 * feat: 모임에 참여자가 아닐 경우 모임 탈퇴 불가능 * feat: 모집이 마감된 모임의 탈퇴 불가능 * feat: 조기 종료된 모임에 탈퇴 불가능 * refactor: 메서드 변경 및 메서드 추출 * refactor: import 형식 변경 * [FE] 환경 변수 서브 모듈화 (#243) * chore: 서브모듈 등록 * fix: 환경 변수 파일 경로 수정 * [BE] Oauth 인증 - Redirect Uri 전달받도록 변경 (#241) * refactor: Oauth Redirect Uri, 파싱하지 않고 전달받는 방식으로 변경 * chore: index.html 업데이트 * chore: submodule 업데이트 * chore: index.html 업데이트 * [FE] 모임 생성 페이지에서 각 스텝에 대해 모달로 띄워주는 호버 이벤트 추가 (#244) feat: 모임 생성 페이지에서 각 스텝별 모달 추가 * [BE] 로그인기능 실패 오류 수정 (#248) * fix: 로그인시 DB에 접근이 되지 않던 오류 수정 * test: 테스트의 sql쿼리문에 token 테이블 정보 추가 * docs: restDocs에 리프레시 토큰관련 API 추가 * fix: production mode env 파일 경로 수정 (#252) * [BE] OAuth 로그인기능 실패 오류 수정 (#254) * [FE] 헤더에 로그인 정보 Dropdown 추가 (#253) * refactor: assets 폴더 정리 * style: TOP 버튼 내용을 svg로 변경 * feat: useClosingState 커스텀훅 생성 - 닫는 애니메이션을 보여주기 위해 닫는 과정을 지연시키는 커스텀훅 - 기존에 사용하던 모달 컴포넌트에서 커스텀훅으로 분리 * feat: 헤더에 현재 로그인한 사용자 메뉴를 드롭다운으로 추가 * fix: 헤더 고정을 sticky → fixed로 변경 - 헤더 영역 확보를 위해 헤더 밑 내용에도 padding 적용 * [FE] Google OAuth 로그인 구현 (#255) * chore: google login svg 추가 * feat: google 로그인 api 구현 * feat: 구글 로그인 UI 구현 * feat: 구글 로그인 리다이렉션 페이지 구현 * feat: 회원가입 바로가기 링크 추가 * refactor: 피드백 반영 * [BE] 이미지 업로드 기능 구현 (#246) * feat: file upload/save 컨트롤러 작성 * feat: file upload/save 서비스 기능구현 * feat: 파일 업로드 테스트 작성 * refactor: displayname 추가 * refactor: test restdocs 추가 * refactor: test restdocs 누락된 어노테이션과 adoc 추가 * refactor: api 네이밍 변경 * feat: 이미지 확장자 검증 추가 * refactor: 리뷰 반영 * refactor: MomoException으로 변환 * refactor: 불필요 주석 제거 * refactor: 컨벤션 맞추어서 코드 수정 * [BE] SonarQube 서버 구축 및 Github Actions PR 연동 * [FE] 스낵바 구현 (#264) * feat: 포탈에 스낵바 추가 * feat: 리코일에 스낵바 상태 추가 - isShowing, message * feat: useSnackbar 커스텀훅 생성 - setMessage, resetSnackbar 함수 존재 * refactor: useClosingState 타입 변경 - Function → () => void로 명시 * feat: 스낵바 컴포넌트 생성 - 페이지 레이아웃에 스낵바 추가 * feat: 성공 alert을 스낵바로 교체 - 모임 참여, 취소, 삭제, 마감 - 로그인, 회원가입, 회원정보 수정 * [FE] 내 모임 페이지 구현 (#265) * feat: 내가 참여한 모임 api 구현 * refactor: Search 컴포넌트의 검색창 영역 분리 * refactor: NoResultContainer를 별도의 컴포넌트로 분리 * feat: 내가 참여한 모임 컴포넌트 구현 * feat: 내 모임 페이지 구현 - 헤더에서 내 모임 페이지 링크 연결 * chore: 코드 리뷰 반영 * [FE] 로그아웃 요청 추가 (#267) * feat: 로그아웃 요청 함수 생성 * feat: 로그아웃 시 서버에 요청하는 기능 추가 * feat: 액세스 토큰 만료 시 자동 로그아웃 기능 추가 * [BE] Code Smell 제거 (#263) * refactor: Optimize imports * test: 테스트 클래스 접근제어자 수정 * refactor: 빈 생성자 추가 및 필드 선언 변경 * style: 불필요한 개행 제거 * refactor: global 패키지 구성 * refactor: 잘못 사용된 연산자 수정 * style: 변수 오타 수정 * refactor: inverted 하게 사용되는 메서드 리팩터링 * refactor: 메서드 분리 * refactor: 파일 생성 검증 순서 변경 * refactor: 업로드 파일 검증 로직 리팩터링 * [BE] 모임 수정 API Docs 활성화 (#272) * [BE] 회원 탈퇴 기능 구현 (#269) * refactor: 사용자 테이블에 deleted 필드 추가 * refactor: 회원 탈퇴 시 deleted 필드 변경 * refactor: 회원 탈퇴 시 개인정보 변경 * refactor: develop-be 이력 적용 * refactor: 회원 탈퇴 시 주최한 모임 중 진행중인 모임이 있다면 탈퇴 불가능 * test: 자신이 참여한 모임 목록 조회 테스트 추가 * test: 탈퇴한 사용자가 속한 모임의 참여자 목록 조회 테스트 추가 * style: 올바른 import 경로로 수정 * refactor: 인스턴스 변수 호출 시 this 삭제 * refactor: '탈퇴하다' 의 용어를 leave 로 변경 * refactor: 탈퇴한 사용자의 기능 제한 * test: 비어있는 값에 대한 테스트 검증 방식 변경 * refactor: lombok 에서 제공하는 메서드 사용 * refactor: 탈퇴한 사용자는 모든 기능에 접근할 수 없도록 변경 * test: 미리 구현되어 있는 메서드 사용 * refactor: 회원 탈퇴 시 모임 탈퇴 로직 변경 * refactor: 회원 탈퇴 관련 에러 코드명 변경 * fix: redirectUrl을 href에서 origin으로 수정 (#276) * [BE] 테이블 컬럼 타입과 엔티티 필드 타입의 불일치 발생 (#280) * [FE] 내 정보 페이지 UI 개선 (#278) * refactor: 내 정보 네이밍 통일 * refactor: Routes 분리 * feat: 로고 svg로 컴포넌트로 생성 * style: 페이지에 높이 적용 * feat: 피그마에 맞게 내 정보 페이지 UI 변경 - 기존에 있던 닉네임, 비밀번호 관련 함수 병합 * refactor: 공용으로 사용하는 컴포넌트 components/@shared 폴더로 정리 * refactor: 내 정보 페이지 컴포넌트 분리 - 내 정보와 회원 탈퇴 섹션 분리 * refactor: 모달 플래그 네이밍 통일 * style: 페이지 내용 전역에 높이를 지정함에 따라 다른 페이지들의 높이 스타일링변경 - calc(100% - 4rem) → 100%로 변경 * feat: 비밀번호 확인 모달 생성 * feat: 비밀번호 확인 요청 API 생성 * feat: 내 정보 수정 시 비밀번호 확인 과정을 거쳐 수정하도록 추가 * feat: 모달 상태에 비밀번호 확인 상태 추가 * feat: useModal 커스텀훅 생성 * feat: 내 정보 수정 후 새롭게 수정된 정보를 받아와 저장하는 부분 추가 * feat: 로그인 정보에 로그인 타입 추가 - 현재는 basic & oauth * feat: basic과 oauth 내 정보 화면 분리 - basic에서는 닉네임, 비밀번호를 모두 변경하고 비밀번호 확인을 할 수 있음 - oauth에서는 닉네임 변경만 가능하며 비밀번호 확인이 존재하지 않음 * refactor: '/'를 BROWSER_PATH.BASE로 변경 * refactor: 내 정보를 수정하는 함수를 내 정보 페이지로 이동 - 기존에는 비밀번호 확인 컴포넌트에 있었으나, 해당 컴포넌트의 역할과는 맞지 않다고 판단하여 이동 * [FE] 모임 마감날짜 유효성 검증 오류 수정 (#282) * feat: 날짜 유효성 검증 로직 수정 - 한국 시간 변환 함수 추가 -가장 빠른 스케쥴과 비교하는 로직 추가 * test: 함수 변동사항 적용 * chore: 주석 삭제 * [BE] 검색 기능 구현 (#277) * refactor: 모임 조회를 역순으로 하도록 수정 * feat: 카테고리별 그룹 조회 로직 추가 * refactor: 카테고리 정보를 찾지 못할 때 발생하는 예외를 다른 예외 형식과 통일 * refactor: 사용하지 않는 메서드 제거 * feat: 카테고리별 모임 조회 API 구현 * test: 제거된 API에 대한 테스트 제거 * test: 카테고리별 모임 조회 인수 테스트 추가 * test: 모임 생성 메서드 하나로 통일 * feat: 모임 키워드 검색 기능 구현 * feat: 모임 키워드 검색 API 구현 * feat: 모임 필터링 Specification 구현 * feat: 카테고리, 참여한 모임, 생성한 모임을 조회하는 Specification 구현 * feat: 카테고리, 검색 조회 API에 Specification을 통해 동작하도록 적용 * feat: 참여한 모임 조회 API 로직 수정 * feat: 주최한 모임 조회 API 구현 * refactor: 모임 필터링 Specification 체이닝으로 변경 * test: 모임 필터링 테스트 추가 * style: 모임 단일 조회 메서드명 수정 * test: 모임 조회 로직 컨트롤러 인수 테스트 추가 * refactor: rebase 충돌 해결 * style: import문 재정렬 * refactor: code smell 제거 * refactor: GroupSpecification에서 MemberId가 아닌 객체를 받도록 수정 * refactor: GroupSpecification의 반환값을 null이 아닌 predicate객체로 변환 * style: GroupFindService 메서드명 수정 * style: GroupSpecification 메서드명 수정 * refactor: GroupSpecification 빈 등록 * [FE] 새로고침 시 자동 로그아웃되는 오류 해결 (#284) * feat: access token이 유효할 시 자동 로그인이 되도록 추가 * fix: 내 정보 페이지 input에 type 부여 * refactor: 로그인 상태를 비우는 부분을 reset을 사용하여 하도록 변경 * fix: 내 정보 페이지에서 로그아웃 시 uncontrolled 경고가 뜨는 오류 해결 * style: 비밀번호 input에 placeholder 추가 * [FE] 변경된 회원정보 수정 API에 맞게 요청 형식 변경 (#289) * feat: 새로고침 시 로그인 타입을 판단하는 기능 추가 * style: 비밀번호 변경 시에만 비밀번호 확인 모달이 뜨도록 변경 * fix: 비밀번호 확인 API 요청 함수 삭제 및 비밀번호 수정 API 요청 변경 * [BE] 비밀번호 확인 API 구현 (#285) * refactor: 패스워드 전송 DTO 네이밍 수정 * feat: 비밀번호 확인 로직 구현 * feat: 비밀번호 확인 API 구현 * test: 비밀번호 확인 인수테스트 추가 * test: DisplayName명 수정 * refactor: 회원 비밀번호 수정+비밀번호 검증 통일하도록 수정 * refactor: 비밀번호 확인 메서드명 수정 * [FE] Private Route 구현 (#292) feat: Private Routes 구현 * [FE] 리프레시 토큰 적용 (#295) * feat: access token provider 생성 및 적용 * feat: 리프레시 토큰 selector 정의 * feat: refresh token provider 생성 * feat: Token 타입 정의 * feat: 리프레시 토큰을 사용하여 액세스 토큰을 요청하는 함수 생성 * feat: 헤더에서 토큰 유효성을 판단하여 재발급 또는 로그아웃 시키는 로직 구현 - 액세스 토큰이 유효하지 않음 → 리프레시 토큰으로 액세스 토큰 발급 - 리프레시 토큰이 유효하지 않음 → 로그아웃 * feat: 로그인 시 리프레시 토큰을 저장하는 부분 추가 * feat: 로그아웃, 회원 탈퇴 시 리프레시 토큰을 삭제하는 부분 추가 * [FE] 모임 검색 및 필터링 기능 구현 (#297) * feat: useInfiniteScroll 커스텀훅 생성 * fix: API 링크 수정 * feat: 내가 참여한 모임 목록에 무한 스크롤 적용 * feat: 체크박스 컴포넌트 생성 * feat: 전달된 쿼리 바탕으로 URL을 만들어주는 함수 생성 * feat: 마감된 모임 포함/제외 필터링 기능 구현 * feat: 키워드 검색 기능 구현 * feat: 카테고리 필터링 기능 구현 * feat: 내 모임 필터링 기능 구현 - 내가 참여한 모임, 내가 주최한 모임, 내가 찜한 모임 * feat: 내 모임 페이지에 TOP 버튼 추가 - 무한 스크롤이 적용된 페이지이므로 추가 * refactor: SearchForm 폴더화 * refactor: 유효하지 않은 카테고리 ID 상수화 * [FE] 모임 검색 시 엔터를 입력해도 검색되도록 추가 (#301) * feat: 엔터 입력 시에도 검색이 가능하도록 변경 - 검색 input을 폼으로 바꾸고 검색 이벤트를 submit으로 이전 * refactor: onClick 이벤트 삭제 * [FE] 모임 수정 기능 구현 (#299) * chore: calendar svg 추가 * refactor: useCreateState 리팩토링 - useState를 useInput으로 변경 * feat: 달력에서 일정 삭제 기능 추가 후 컴포넌트 분리 * refactor: useCreateState 리팩토링 변경점 적용 * refactor: useInput에 initialState 타입 추가 * fix: 날짜 비교 버그 수정 * feat: 모임 정보 수정 모달 생성 * feat: 모임 정보 수정 api 추가 * feat: 모임 수정 기능 구현 * fix: groupDetail이 갱신되지 않던 버그 수정 * refactor: 피드백 반영 * [FE] 내 모임 페이지에서 찜한 목록은 준비 중 페이지로 변경 (#303) * style: 내가 찜한 모임 섹션은 준비 중 페이지로 대체 * style: favicon 추가 * style: 내 정보 페이지의 로고 변경 - favicon 이미지를 svg화 시켜 애니메이션 적용 * [FE] groupDetail 정보 로드 오류 해결 (#305) * fix: devServer 경로 수정 * fix: group data early return 조건 변경 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * [BE] 누락된 테스트 추가 작업 (#298) * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * [BE] 회원 탈퇴 시 에러 발생 (#308) * refactor: 회원 탈퇴 시 토큰 삭제 * fix: 잘못된 메서드 매핑 수정 * fix: 참여자 삭제 controller 에서 @Authenticated 추가 * test: auth 관련 누락 테스트 추가 * test: group 관련 테스트 변경 및 추가 * test: member 관련 테스트 변경 및 추가 * refactor: 빈칸 수정 * refactor: 누락된 테스트 코드 추가 * refactor: 공백 제거 * refactor: 리뷰 반영 * refactor: 중복 메소드 제거 Co-authored-by: yukong <[email protected]> * [FE] 메인 페이지에서 모임이 없을 시 마감된 모임 제외 체크박스가 보이지 않는 오류 해결 (#309) * feat: 메인 화면 모임 목록의 헤더가 모임 유무와 관계 없이 항상 보이도록 변경 - 모임이 없을 경우에는 문구가 나오지 않고 체크박스만 보임 - 카테고리 선택 시 `{카테고리이름} 모임을 찾아봤어요 🚀` 문구가 나오도록 추가 * style: favicon 파일 형식을 jpeg → ico로 변경 * [FE] 배포 모드에서 favicon이 보이지 않는 오류 해결 (#312) chore: 웹팩 설정에 favicon 추가 * [BE] 개발 서버 구축 및 실행환경 분리 (#311) * chore: profile별 DB환경 분리 * chore: profile 설정 오류 수정 * chore: 테스트 환경 파일 yml 수정 * [FE] 마감 모임 제외 기능 disabled 처리 (#314) * fix: 오류 부분 비활성화 * [BE] 도메인 값 객체 분리 (#316) * [BE] Calendar 도메인 패키지 리팩터링 (#319) * test: calendar 및 datetime 픽스처 패키지 분리 * test: datetime 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: datetime 관련 테스트픽스처 메서드명 변경 * test: calendar 관련 테스트픽스처 인스턴스 생성 방식 수정 * test: calendar 관련 테스트픽스처 메서드명 변경 * test: DeadlineFixture 테스트픽스처 생성 * test: DurationFixture 테스트픽스처 상수 이름 변경 * refactor: calendar 패키지 도메인 리팩토링 및 테스트 보충 * test: calendar 패키지 테스트픽스처 메서드명 변경 * refactor: Schedule 메서드 분리 롤백 * style: Duration 메서드 메서드명 변경 * refactor: ScheduleFixture 메서드 접근제어자 수정 * [BE] 조회 클래스 리팩토링 (#322) * refactor: GroupSpecification 패키지 이동 * fix: 종료여부 확인과정에서 잘못된 쿼리생성 수정 * refactor: 매직넘버 제거 * refactor: 패키지 분리 * style: enum 상수 선언 스타일 수정 * style: 무의미한 빈줄 제거 * [FE] 프로젝트 리팩토링 (#325) * refactor: 라이브러리 수정 - 스토리북 제거 - esbuild loader 추가 * feat: react devtools가 배포 모드에서는 동작하지 않도록 추가 * refactor: API 요청 함수 네이밍 통일 * refactor: 페이지 종속 컴포넌트는 페이지 폴더 하위로 이동 * refactor: 컴포넌트 리팩토링 * refactor: 기타 파일 리팩토링 Co-authored-by: Usage <[email protected]> * [FE] 메인, 상세, 수정 페이지 리팩토링 (#329) * refactor: 메인 페이지 리팩토링 * refactor: 모임 상세 페이지 리팩토링 * style: 모임 상세 페이지 사이드바 스타일링 수정 * style: global input style에 border-box 추가 * refactor: useCreateState 반환값 타입 추가 - 해당 함수의 반환 타입을 재활용할 일이 생겨 타입 추가 * refactor: 모임 수정 모달 리팩토링 및 일부 스타일링 수정 * [FE] OAuth, 생성, 내 모임, 내 정보 페이지 리팩토링 (#330) * refactor: Auth 페이지 리팩토링 * refactor: Create 페이지 리팩토링 * refactor: 추가된 setCapacity 메서드 반영 * fix: 모임 수정시 같은 스케쥴이 중복해서 추가되던 버그 수정 * refactor: 내 모임 페이지 리팩토링 * refactor: 내 정보 페이지 리팩토링 * chore: 코드 리뷰 반영 * [BE] 모임 패키지 리팩터링 및 병합 (#323) * refactor: Group 패키지에 Participant 패키지 통합 * refactor: Calendar 사용하지 않는 레거시 메서드 제거 * refactor: Group#Builder 제거 * refactor: request dto 계층 분리 * refactor: 관심사에 따른 Group Controller 분리 * refactor: 관심사에 따른 Group Service 분리 * refactor: 서비스 계층의 비즈니스 로직을 도메인 계층으로 옮김 * refactor: 사용하지 않는 Group 메서드 제거 * refactor: GroupManageService#update 메서드 개선 * refactor: 사용하지 않는 클래스 제거 * refactor: toString 추가 * refactor: GroupSpecification 리팩터링 * style: Group 메서드 배치 변경 * refactor: GroupFindRequest Boolean 필드타입을 원시타입으로 변경 * refactor: Participants orphanRemoval 설정 * feat: exception 클래스 및 code,message Enum 생성 * feat: Group 도메인 exception 클래스 및 code,message Enum 생성 * test: 인수테스트 예외코드 검증 추가 * test: ParticipantServiceTest 리팩토링 * test: GroupSearchServiceTest 리팩토링 * test: GroupFixture builder 메서드 축약 * test: GroupManageServiceTest 리팩토링 * test: GroupFindServiceTest 리팩토링 * style: 코드 컨벤션 정리 * refactor: Group ErrorCode 세분화 작업 * refactor: Group 도메인 예외처리 세부화 및 ErrorCode 관심사 분리 * style: GroupFindAcceptanceTest 메서드 오타 수정 * test: RestAssured Logging 기능 Profile 설정가능하도록 수정 * style: EOF 추가 * style: static import 처리 * refactor: GroupManageService 템플릿콜백패턴 적용 * refactor: 예외메시지 관리 방식 변경 * ExceptionCode / ExceptionMessage 제거 * GroupErrorCode 활용 * 행위 기반에서 원인 기반으로 예외 메시지 내용 변경 * refactor: Group 검증 예외처리 리팩터링 * refactor: Participants 검증 예외처리 리팩터링 * refactor: OneToMany Fetch.Lazy 제거 (default이므로) * refactor: @EqualsAndHashCode @ToString 설정 * refactor: Group Controller 리팩토링 * refactor: Capacity 내부로 CapacityRange 통합 * refactor: host 칼럼명 명시 * refactor: GroupIdResponse 빈생성자 제거 * refactor: 사용하지 않는 클래스 제거 * test: 인수테스트 @SuppressWarnings("NonAsciiCharacters") 선언 * test: RestHandler 함수형인터페이스 제거 * test: GroupFixture#setDeadlinePast 리팩토링 * refactor: Capacity#isSmallThan 메서드명 변경 * refactor: GroupFindRequest Getter 수정 * refactor: CascadeType.REMOVE 제거 * refactor: Controller 계층 DTO 네이밍 수정 * refactor: Group Controller/Service 네이밍 수정 * refactor: Group#leave 메소드명 수정 * refactor: GroupFindRequest 어노테이션 배치 변경 * test: 무의미한 throws 예외전파 제거 * test: TestConstructor 어노테이션 지정 * style: optimize imports * style: GroupFindService 상수 개행 * [BE] 개발서버 배포가 실패하는 이슈 (#333) * chore: 개발 서버 api 주소 변경 (#334) Co-authored-by: Usage <[email protected]> * [FE] 번들 크기 최적화 (#337) * chore: 필요한 모듈 설치 * chore: copy-webpack-plugin 적용 - 폰트 형식 지원하도록 추가 * feat: 폰트 최적화 * feat: 페이지 지연 로딩 * chore: js 파일명 해시 적용 * chore: 웹팩 정리 Co-authored-by: Usage <[email protected]> * [FE] 렌더링 최적화 (#340) * feat: 모임 카드에 memo 적용 * feat: layout shift 최적화 * refactor: 모임 생성 관련 타입 정리 * chore: 개발 / 배포 모드 빌드 스크립트 작성 * feat: top 버튼 연속 클릭 방지 * style: 스크롤바 커스텀 * feat: 마이페이지 리렌더링 최적화 Co-authored-by: Usage <[email protected]> * fix: webpack-bundle-analayzer 비활성화 (#342) - 우선 임시로 주석 처리 - 빌드가 무한로딩되는 문제가 발생하여 비활성화 * [FE] MSW 비활성화 (#343) fix: MSW 비활성화 Co-authored-by: Usage <[email protected]> * [BE] 조회로직 Specification(Criteria) -> QueryDsl 변경 (#339) * chore: queryDsl 환경설정 Co-authored-by: sinb57 <[email protected]> * chore: build.gradle 문단 구분 Co-authored-by: sinb57 <[email protected]> * refactor: 기본 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 주최한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: 참여한 모임 조회의 동적 쿼리를 queryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: GroupSearchService에 연동된 GroupRepository를 Criteria에서 QueryDsl로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: Specification(Criteria) 제거 Co-authored-by: sinb57 <[email protected]> * style: 잘못된 컨벤션 수정 Co-authored-by: sinb57 <[email protected]> * refactor: 가독성 향상을 위한 변수 추출 Co-authored-by: sinb57 <[email protected]> * refactor: 템플릿 콜백 패턴 적용 Co-authored-by: sinb57 <[email protected]> * style: 개행 컨벤션 통일 Co-authored-by: sinb57 <[email protected]> * refactor: 상수 제거 및 메서드 배치 순서 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition 생성 Co-authored-by: sinb57 <[email protected]> * refactor: 동적 쿼리 생성 방식을 BooleanBuilder 사용으로 변경 Co-authored-by: sinb57 <[email protected]> * refactor: FindCondition#Getter Optional 적용 Co-authored-by: sinb57 <[email protected]> * refactor: ConditionFilter 클래스 분리 Co-authored-by: sinb57 <[email protected]> * refactor: FinCondition#Getter Optional 제거 Co-authored-by: sinb57 <[email protected]> * refactor: 참여 인원수에 대한 매직넘버에 의미 부여 Co-authored-by: sinb57 <[email protected]> * refactor: 인터페이스 제거 및 클래스명 변경, 패키지 분리 Co-authored-by: sinb57 <[email protected]> * refactor: CQRS 패턴으로 GroupRepository CRUD 분리 Co-authored-by: sinb57 <[email protected]> * refactor: 패키지 구조 및 조회 관련 도메인 이름 수정 Co-authored-by: sinb57 <[email protected]> * refactor: supplier 파라미터명 수정 Co-authored-by: sinb57 <[email protected]> * refactor: GroupManage~ 클래스를 Modify로 변경 Co-authored-by: sinb57 <[email protected]> Co-authored-by: sinb57 <[email protected]> * [FE] 이미지 파일 최적화 feat: 카테고리 이미지 jpg → webp 변환 Co-authored-by: Usage <[email protected]> * [FE] gzip 최적화 (#350) feat: gzip 압축 설정 Co-authored-by: AhhyunLee <[email protected]> * [BE] 구글 OAuth 버그 해결 (#348) * fix: 구글 로그인 요청 시 잘못된 정적 팩토리 메서드 수정 * refactor: 사용하지 않는 메서드 제거 * [BE] 개발서버의 DB 실행 환경 분리 (#355) * [BE] 인덱스 설정을 통한 DB 조회 성능 개선 (#356) * refactor: ConditionFilter#filterByCondition 성능을 고려하여 where절 순서 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 생성 Co-authored-by: nbalance97 <[email protected]> * chore: docker 가이드라인 작성 Co-authored-by: nbalance97 <[email protected]> * chore: .gitignore 업데이트 Co-authored-by: nbalance97 <[email protected]> * chore: local-datasource.yml DB 전환(h2 -> mysql) Co-authored-by: nbalance97 <[email protected]> * chore: docker mysql 접속 자동화 스크립트 Co-authored-by: nbalance97 <[email protected]> * chore: docker README 업데이트 Co-authored-by: nbalance97 <[email protected]> * style: docker sh EOF 추가 Co-authored-by: nbalance97 <[email protected]> * chore: docker container name 변경 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 접속 데이터베이스 지정 Co-authored-by: nbalance97 <[email protected]> * chore: docker connect.sh 분리 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 디렉터리 분리 Co-authored-by: nbalance97 <[email protected]> * chore: docker-compose.yml 수정 Co-authored-by: nbalance97 <[email protected]> * feat: Group 인덱스(deadline) 설정 Co-authored-by: nbalance97 <[email protected]> * style: docker 스크립트 파일명 수정 Co-authored-by: nbalance97 <[email protected]> * chore: docker init.sql 제거 및 local-datasource.yml ddl-auto 수정 Co-authored-by: nbalance97 <[email protected]> * style: .gitignore EOF 추가 Co-authored-by: nbalance97 <[email protected]> Co-authored-by: nbalance97 <[email protected]> * [BE] Group 도메인 N+1 문제 해결 (#358) * refactor: Group-Participants Fetch전략 Eager로 변경 * refactor: Group 도메인 QueryDsl fetchJoin 적용 * chore: index.html 제거 * [BE] 지도 도입에 따른 API, 로직 수정 (#360) * feat: Group도메인의 String 타입의 Location을 값 객체로 변경 * test: Group도메인의 String 타입의 Location을 값 객체로 변경 * feat: 그룹 수정정보에 Location 정보 제거 * feat: 모임 장소 수정 API생성 * test: 모임 장소 수정 기능 테스트 추가 * docs: 모임 장소 수정 restdocs추가 * refactor: location의 detail column name 값 수정 * test: init.sql의 detail column name 값 수정 * [FE] 지도 API 연결 (#362) * chore: 서브모듈 업데이트 * chore: react-daum-postcode 설치 * chore: 카카오맵 설정 추가 * chore: 웹팩에 카카오맵 키 추가 * style: disabled input 글로벌 스타일 추가 - 커서 스타일 추가 * style: 스낵바 z-index 추가 * feat: DaumPostCode 모달 생성 * fix: location 타입 수정 * chore: 카카오맵 타입 추가 * fix: 모임 수정에서 장소 수정 제거 * feat: 모임 생성 시 Postcode 모달을 사용하여 주소를 입력하도록 추가 * feat: 모임 상세 페이지에 카카오맵 추가 * [FE] 찜 기능 구현 (#364) * feat: 메인 페이지 모임 목록에 찜 여부 표시 * feat: 찜하기 / 찜 취소하기 api 추가 * feat: 모임 상세 페이지에 찜하기 플로팅 버튼 구현 - useThrottle 구현 - Top 플로팅 버튼에 useThrottle 적용 * feat: 내 모임의 내가 찜한 모임 탭에 찜한 모임들을 표시 * feat: api 변경 사항 적용 & 상태 변경과 동시에 적용되도록 수정 * fix: 버그 및 css 수정 - dimmer, snackbar z-index 수정 - 2022-08-19 hotfix 내용 복구 * [BE] Oauth2 로그인 실패 해결 (#367) fix: oauth2 로그인 실패 이슈 해결 (임시비밀번호 형식) * [FE] 릴리즈 이전 수정사항 반영 (#369) chore: 수정사항 반영 * [BE] 찜 기능 구현 (#363) * feat: 찜 도메인 구현 Co-authored-by: sinb57 <[email protected]> * feat: 찜하기, 찜 취소 API 구현 * feat: 찜한 모임 조회 API구현 * feat: Authorization 필더를 선택적으로 받도록 하는 어노테이션 생성 * feat: 모임 조회 반환값에 찜 여부 추가 * docs: 모임 찜하기 api추가 Co-authored-by: sinb57 <[email protected]> * [BE] 모임 참여인원이 실제와 다르게 출력되는 현상 해결 (#376) * refactor: findGroups fetchJoin 제거 * refactor: findGroups distinct 추가 * fix: 누락된 from 추가 * [BE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#384) * refactor: Token과 Member연관관계의 JoinColumn 컬럼명 명시 * test: TokenService 메서드 테스트 추가 * test: 토큰 만료시 발생하는 예외 테스트 추가 * refactor: 같은 토큰인지 검증하는 메서드의 반환값 반대로 수정 * [BE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#378) * refactor: 마감여부 인원수로 체크하지 않도록 로직 변경 * refactor: 미사용 메서드 제거 * refactor: 메서드 단일화 * [BE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#379) * refactor: 탈퇴한 회원의 정보 수정 로직 변경 * refactor: 탈퇴한 회원의 이름을 빈값으로 반환 * refactor: GhostMember 클래스명 변경 * refactor: 보여지는 탈퇴한 사용자의 이름 상수화 * [FE] Access Token만료 후, Refresh Token을 통한 재접근 불가 오류 (#390) * chore: 사용하지 않는 모듈 삭제 * feat: 토큰 저장소를 세션 → 로컬로 변경 * fix: 리프레시 토큰 오류 해결 * [BE] 모집이 마감된 모임에 대하여 찜하기/찜취소 기능 에러가 발생하는 현상 (#386) * test: GroupSearchRepositoryTest 위치 변경 * test: Favorite, Favorites 도메인 테스트 추가 * fix: 마감된 모임을 찜하지 못하던 오류 수정 * fix: 마감된 모임을 찜 취소하지 못하던 오류 수정 * test: 마감된 모임에 대한 찜하기 기능 테스트 추가 * [BE] QueryDSL 이용하여 pagination 할 때 limit 이 설정되지 않는 현상 (#389) * fix: 찜 모임 조회시 Full Scan을 한 후 JVM내에서 페이지내에션을 하던 오류 수정 * refactor: 사용하지 않는 메서드 제거 * [FE] 일정값이 없을때 모임이 생성되지 않는 에러 해결 (#393) * fix: 일정값이 없어도 모임이 생성되도록 수정 * feat: copyObject 메서드 유틸에 추가 - compare -> object 파일 이름 변경 * chore: 테스트 라이브러리 설치 및 업데이트 - jest 버전 업데이트 28.1.3 -> 29.1.1 - @type/jest 버전 업데이트 28.1.6 -> 29.1.0 - ts-jest 설치 * test: 모임 생성 유효성 검증 테스트 추가 * chore: 경고창에 error.message를 보여주는 것으로 변경 * [FE] 마감일이 지나지 않아도 참여자 정원이 가득차면 수정/삭제할 수 없는 현상 (#394) * chore: 모듈 재설치 * feat: 모임 인원이 가득 찰 경우의 버튼 추가 * [BE] 모집 마감 시간이 지난 모임이 마감되지 않았다고 나타나는 현상 * [FE] 탈퇴한 아이디로 다시 회원가입을 할 수 없는 현상 (#398) * fix: 바뀐 API 명세에 맞게 빈 문자열의 참여자는 탈퇴한 사용자라고 판단하여 표시 * feat: 탈퇴한 회원임을 알리는 가이드 메시지 추가 * feat: 호스트가 탈퇴했을 경우에도 탈퇴한 사용자임을 알리는 부분 추가 * feat: 누락된 탈퇴한 주최자 부분 추가 * refactor: 피드백 반영 * [FE] 마감된 모임에도 수정 버튼이 보이는 오류 해결 (#403) * fix: 마감된 모임에는 수정 버튼이 보이지 않도록 추가 * fix: useEffect dependency 오류 주석 추가 - 추후 해결 방법 강구 * [BE] 페이지네이션 과정에서 Page의 hasNext()가 잘못 나오는 오류 + 찜 조회 기능 오류 (#400) * fix: 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 좋아요한 그룹의 페이지네이션에서 잘못된 데이터 크기를 사용하는 오류 수정 * fix: 찜한 모임에서 중복된 데이터가 조회되는 오류 수정 * fix: 찜한 모임 조회에서 distinct를 거는 위치 수정 * test: 잘못된 테스트 코드 수정 * fix: 찜한 모임 조회에 중복된 모임이 나오는 에러 해결 * fix: 찜한 모임 조회에 중복된 모임 id를 조회하는 오류 수정 * refactor: 불필요한 leftjoin삭제 * test: 찜한 모임 목록 조회 테스트 추가 * refactor: 찜한 목록 id조회 메서드이 접근 제어자 수정 * 조기마감된 모임에 대한 에러코드가 마감기한이 지나도 동일한 이슈 (#404) refactor: 모임진행 유효성 검증 절차 순서 변경 * [BE] 에러 메시지 축약 (#399) * refactor: MemberErrorCode, MemberException 추가 * refactor: MemberException 에러 해결 * refactor: 회원가입 api 변경 및 Category 에러코드 추가 * refactor: 이외의 에러코드 핸들링 * refactor: 코드 컨벤션 수정 * refactor: 코드 컨벤션 수정 * refactor: 상수명 리셋 * [FE] 메인 페이지에서 검색 시 새롭게 들어온 모임 목록이 기존 모임 목록에 추가되는 오류 해결 (#407) fix: 새로운 모임 검색 시 기존 모임에 덮어씌우는 코드 추가 * [FE] 에러 세분화 적용 (#405) * feat: 에러 처리를 위한 useHandleError 구현 * chore: 에러 메시지 추가 * chore: 기존 api 연결에 에러 핸들러 추가 * chore: 코드 리뷰 반영 * [BE] 도메인(Member, Group) 필드 제약조건 변경 및 검증로직 수정 (#385) * refactor: GroupName 길이 정책 수정 * refactor: Description 길이 정책 적용 * refactor: UserId UserName Password 삭제정책 수정 * refactor: 사용자 아이디 길이 정책 반영 * test: 사용자 아이디 길이 정책 변경에 의한 기존 테스트 픽스처 수정 * refactor: 사용자 닉네임 길이 정책 반영 * refactor: 유효성 메서드명 및 검증 순서 변경 * style: optimize imports * refactor: UserId UserName Password 삭제 로직 수정 * test: MemberTest 추가 * style: EOF 추가 * refactor: 칼럼 길이 제약조건 변경 * refactor: Password Blank 유효성 검증 제거 * refactor: 유효성 검증 순서 변경 * [FE] signup URL을 members로 변경 fix: 회원가입 요청 url 변경 (#411) * [BE] 모임의 일정이 설정한 날짜보다 하루 전날로 저장되는 현상 해결 (#416) * refactor: TimeZone 설정 파트 추가 * refactor: Config 분리 * [FE] 입력값 제약 조건 추가 (#418) * fix: 변경된 서버 에러 코드에 맞춰 수정 * feat: 수정된 멤버 값 제약 조건 추가 * test: 회원가입 입력 값 검증 테스트 추가 * [BE] 지원하지 않은 API 요청에 대해 404 반환 (#419) * feat: 지원하지 않는 API 요청 처리 * refactor: ControllerAdvice 중복 로직 메서드 추출 * feat: restdocs 정적자원 접근 지정 * [FE] 랜딩 페이지 (#420) * feat: 랜딩 페이지에 사용할 이미지와 svg 업로드 * feat: throttle이 쓰로틀링이 적용된 함수를 반환하도록 수정 * feat: 랜딩 페이지 구현 * feat: 메인 페이지에 랜딩 페이지 접근 방식 추가 - 메인 페이지 접근 시 이미 방문했는지 여부를 판단하여 랜딩 페이지 또는 메인 페이지를 보여주도록 추가 * refactor: 피드백 반영 * [FE] 모임 목록 마감된 모임 필터링 기본값 변경 (#423) chore: 모임 목록 필터링 기본값 변경 - 마감된 모임 제외 : false -> true * [FE] 구글 로그인 시 이전 페이지로 보내주는 기능 (#428) * refactor: 구글 oauth 토큰 리다이렉트 url 파싱 부분 제거 * feat: Private Route에 replace 옵션 추가 * feat: 구글 로그인 시 이전 히스토리를 기억해 로그인 후 해당 url로 이동하도록 구현 * fix: 참여 신청 시 로그인이 되어있지 않으면 스낵바를 보여주도록 수정 - 기존에는 alert과 함께 로그인 모달을 띄워주었으나, 찜 버튼과의 통일성으로 인해 스낵바로 수정 * feat: 스낵바에 유지 시간 추가 - 스낵바 배경 색상 변경 * refactor: TimeZone 컴파일시 지정하도록 변경 (#424) * [FE] 메인 페이지 디자인 변경 (#432) * chore: svg 추가 * feat: search section 디자인 변경 * feat: Card 컴포넌트 디자인 변경 * feat: Category 컴포넌트 디자인 변경 * feat: 메인 페이지 디자인 변경 * feat: 미사용 부분 변경 및 제거 - Header 투명도 제거 - 현재 Category 설명 제거 * feat: 마감시간 표시 방식 변경으로 인한 수정 * feat: 카테고리 에러 바운더리 수정 * [BE] 모임 참여 요청이 동시에 왔을 때 참여 인원을 초과하는 문제 (#431) * refactor: 모임 참여 기준에 대한 검증 기준 수정 * fix: 참여하기 로직에 대한 동시성 처리 추가 * refactor: isOutOfRange의 불필요한 괄호 제거 * [BE] Group엔티티와 Favorite엔티티의 연관관계를 단방향으로 의존성 방향 수정 (#427) * rebase branch develop-be * refactor: like관련 네이밍을 favorite으로 변경 * refactor: favorite에서 갖는 Group필드를 id로 변경 * refactor: favorite에서 갖는 Member필드를 id로 변경 * feat: 모임 찜하기시 존재하지 않는 회원, 멤버에 대한 검증 추가 * feat: 모임, 회원 삭제시 찜하기 정보 삭제로직 추가 * refactor: 회원, 모임 삭제시 찜한 목록을 삭제하는 방식을 Event방식으로 변경 * refactor: 회원, 모임 id의 유효성 검증 로직을 validateService로 분리 * feat: authenticate을 통을 통해 모임목록 조회시 유효한 회원인지에 대한 검증 로직 추가 * refactor: ValidateService 네이밍을 Validator로 수정 * feat: id를 통한 회원 존재 유무 로직 수정 * test: Validator에 대한 검증 로직 추가 * refactor: FavoriteRepository의 상위 클래스를 JpaRepository에서 Repository로 변경 * test: FavoriteRepository의 테스트 코드 추가 * refactor: Favorite관련 Listener를 하나로 통합 * fix: 모임 또는 회원 삭제시 관련된 favorite 데이터 삭제로직에 N+1 문제 해결 * refactor: DeleteEvent 클래스에 ApplicationEvent 상속 제거 * refactor: Favorite group, member 아이디에 nullable 속성 추가 * test: Autowired가 아닌 생성자 주입을 통해 의존성이 주입되도록 수정 * refactor: 회원 존재 여부 검증에 대한 로직 관심사 분리 * refactor: 데이터 존재 여부에 대한 검증 결과 필드를 isExist로 변경 * refactor: FavoriteService#cancel Optional 처리 로직 변경 * [BE] JPA 지연 로딩 적용 (#436) * refactor: fetch 타입 지연로딩으로 전환 * refactor: 공백 제거 * [BE] 동일한 사용자 이름으로 회원가입하는 경우에 대한 유효성 검증 (#437) * refactor: MemberService#signUp 이름중복 유효성 검증 추가 * test: 이름중복 유효성 검증 추가에 따른 테스트 수정 * refactor: 사용하지 않는 ErrorCode 제거 * refactor: signUp 의존성 정리 * test: SignUpRequest 생성 메서드 매개변수 변경 * style: MemberService 메서드명 오타 수정 * [FE] 모임 상세 페이지 디자인 변경 (#443) * feat: svg 업데이트 * refactor: 사용하지 않는 코드 제거 * feat: 일정 보여주는 유틸 함수 생성 * refactor: 파일 위치 변경 * feat: 찜 버튼의 refetch를 props에서 캐시 무효화로 변경 * style: 컨트롤 버튼 스타일링 변경 * style: 공통 스타일링 생성 * feat: 일정을 달력형과 리스트형으로 볼 수 있도록 구현 * style: 참여자 스타일링 변경 * style: 사이드바 재구성 * style: 모임 상세 내용 재구성 * style: 모임 상세 페이지 재구성 * feat: 상세 페이지 공통 컴포넌트 생성 * feat: 데스크톱 버전 상세 페이지 구현 * feat: 모바일 버전 상세 페이지 구현 * feat: 태블릿 이상 크기는 데스크톱, 이하 크기는 모바일 버전으로 보여주도록 구현 * refactor: svg 크기 상수화 * refactor: 변수 네이밍 변경 - initParticipants → previewingParticipants * refactor: 변수 네이밍 변경 - unit → cutLine * refactor: 변수 네이밍 변경 - unit → cutLine - initSchedules → previewingSchedules * style: min-width 기준에 +1 추가 * refactor: 사용하지 않는 스타일 컴포넌트 삭제 * refactor: break point 상수를 사용하도록 변경 * [FE] 내 모임 페이지 디자인 변경 (#445) * feat: 내 모임에 카테고리 필터링 요청 추가 * chore: 로티 애니메이션 컴포넌트 스타일 수정 * chore: 카드 컴포넌트 ui 수정 * chore: 검색, 카테고리 컴포넌트 스타일 수정 * feat: 내 모임 페이지 새 디자인 적용 * chore: 코드 리뷰 반영 * feat: 검색 키워드 추천을 placeholder로 표시 * fix: 모임 장소 수정 시 장소세부설명이 잘못 업데이트되는 이슈 해결 (#448) fix: 모임 장소 수정 시 장소세부설명이 잘못 업데이트되는 이슈 해결 * [BE] 백엔드 모임 조회 쿼리 성능개선 (#441) * refactor: fetch 타입 지연로딩으로 전환 * test: 모임 Fixture에 여러 일정이 있는 데이터 추가 * refactor: 모임 단건 조회 쿼리 개선 * test: 누락된 GroupSearchService 테스트 추가 * refactor: 모임 조회로직 쿼리 개선 * style: 잘못된 공백 라인 제거 * refactor: 메직넘버를 변수로 추출 Co-authored-by: nbalance97 <[email protected]> * [BE] 모임 수정 API와 모임 장소 수정 API 통합 (#450) * refactor: 모임 수정 API와 모임 장소 수정 API 통합 * style: Optimize imports * [FE] 모임 수정 디자인 변경 (#452) * feat: CalendarEditor에 편집 반응형 추가 * refactor: 기존의 모임 수정 모달 삭제 * fix: 모임 장소 수정 조건 수정 * feat: 데스크톱 버전에 모임 수정 기능 추가 * fix: 폴더명 수정 * feat: 모바일 버전에 모임 수정 기능 추가 * fix: 타입 수정 * chore: 개발, 배포 모드에 모두 esbuild-loader 적용 - 타입 체크는 fork-ts-checker-webpack-plugin를 사용 - 기존의 ts-loader는 삭제 * style: 모임 상세 설명에 스크롤 지정 * refactor: 피드백 반영 * [BE] 백엔드 모임 CUD 쿼리 성능개선 (#446) * refactor: Group과 Schedule의 관계를 양방향 관계로 수정 * test: 도메인 로직 위치 수정에 따른 테스트 코드 수정 * refactor: 모임 삭제 쿼리 개선 - OrphanRemoval을 통해 Schedule, Participant의 데이터를 삭제하던 로직을 repository를 통해 삭제하도록 변경 * refactor: Member 삭제에 대한 로직 보완을 위한 Participant의 orphanremoval옵션 추가 - Member삭제와 관련하여 Participants데이터 관리에 대한 성능 개선이 필요 * refactor: 모임 수정에 대한 Schedule관련 쿼리 개선 * refactor: 모임 일정 수정 관련 로직 수정 * feat: 모임 기간은 일정 내의 기간으로만 업데이트 할 수 있는 검증 로직 추가 * refacor: rebase를 통한 코드 불일치 수정 * refactor: 회원 삭제시 참여자 삭제에 대한 쿼리 개선 * refactor: JPQL문에 alias 추가 * fix: memberId를 통해 Token을 삭제할 때 이상한 쿼리가 나가는 오류 수정 * refactor: 인터페이스 구현 메서드에 Override 어노테이션 추가 * fix: 마감된 모집에 대해서 Participant정보를 삭제하는 정책 불일치의 오류 해결 * [BE] 모임 조회 로직 리팩토링 (#454) * refactor: AuthenticatedOptional 제거 및 RequestMapping 헤더 지정 * refactor: GroupSearchRepository#findParticipatedGroups 메서드 이동 및 Query 정의 * refactor: GroupSearchRepositoryCustom 조회 인터페이스 매개변수 타입 변경 * refactor: GroupSearchService 템플릿 콜백 패턴 적용 * refactor: GroupSearchService 메서드 중복 제거 및 스타일 변경 * test: 실패하는 테스트 수정 * chore: sonarqube projectKey 변경 * chore: 불필요한 어노테이션 제거 * style: Query 대소문자 스타일 통일 * [BE] timezone 문제 해결 (#456) * [FE] 내 정보 페이지 디자인 변경 (#457) * style: 상세 페이지 일정 애니메이션 수정 * fix: 상세 페이지 versions 업로드 - 깃 이슈 때문에 대소문자를 구별하지 못함 * style: 내 정보 페이지에 모바일 대응 추가 - 회원 탈퇴 버튼 스타일 변경 * refactor: Versions 폴더 삭제 * style: 상세 페이지 모바일 헤더 스타일 수정 * style: 상세 페이지 설명 부분 스타일 수정 * refactor: > 제거 * [BE] 모임 참여 취소시 DB에 데이터가 삭제되지 않는 오류 (#459) * fix: 참여 취소시 데이터가 삭제되지 않는 문제 해결 * chore: sonar.projectKey 변경 Co-authored-by: sinb57 <[email protected]> * [FE] 헤더&푸터 구현 (#461) * chore: svg asset 추가 * feat: 반응형 footer 구현 * feat: 반응형 Header 구현 * feat: 모달 창 반응형 적용 * feat: 상세 페이지 footer 적용 * chore: 코드 리뷰 반영 * chore: header rem 단위 px로 변경 * chore: 레이아웃에 영향을 주는 가변 크기에 고정값 반영 * [FE] access token이 유효하지 않을 때 그대로 데이터 요청을 보내는 에러 해결 (#464) * fix: 변경된 사용자 이름 규칙 적용 * fix: 헤더에 location의 key에 따라 액세스 토큰을 요청하도록 디펜던시 추가 * feat: 포커스가 다시 잡힐 경우 react query에서 요청을 보내는 옵션 비활성화 * [FE] 전반적인 코드 리팩토링 (#466) * feat: API 요청 함수 리팩토링 - axios 인터셉터 적용 * refactor: 상수 변경 - 비밀번호에 대한 규칙 추가 - api path를 관련 있는 것끼리 병합 - 가이드, 에러 메시지 일부 수정 * refactor: 공용 컴포넌트 리팩토링 * feat: 비밀번호 수정 시 값 초기화 기능 추가 * fix: 오타 수정 * fix: private 페이지에서 새로고침 시 메인으로 연결되는 에러 해결 - privateRoute에 accessToken 검증 추가 * refactor: 메인 페이지 리팩토링 * refactor: NotFound 페이지 리팩토링 * refactor: 내 정보 페이지 리팩토링 * style: NotFound 로티 크기 수정 * style: 푸터 반응형 기준 수정 * refactor: 모임 상세 페이지 리팩토링 - 편집 모드에서 새로운 기간 선택 시 기존 선택 일정이 초기화되도록 추가 * refactor: 내 모임 페이지 리팩토링 * feat: confirm 메시지 추가 * refactor: hooks 리팩토링 * feat: useMount hook 생성 및 적용 * refactor: 피드백 반영 * [FE] 카카오맵 API 에러 처리 (#470) * feat: 카카오맵 요소에 에러 바운더리 적용 * style: 헤더 스타일 변경 * style: 푸터 스타일 변경 * style: 카드 스타일 변경 * style: 체크박스 스타일 변경 * style: 메인, 상세 페이지 일부 스타일 수정 * style: 스낵바 스타일 변경 - basic, error 타입 부여 - 길이 수정 * [FE] 생성 페이지 디자인 변경 (#471) * chore: svg asset 추가 * style: 색상 추가 및 전역 스타일 변경 - gray006 (#F6F6F6) 추가 * chore: 변경되는 디자인에 따라 카테고리 기본값(스터디) 적용 * chore: 생성 페이지 수 압축 * feat: 상단 페이지 네비게이션 드롭다운 메뉴 구현 * feat: 변경된 validate 적용 * style: 달력 요소 gap 추가 * chore: 달력의 반응형 적용으로 인한 create/edit 구분 제거 * feat: 생성 컴포넌트가 스크롤 대신 페이지에 따른 Step 컴포넌트를 출력하도록 변경 * chore: 코드 리뷰 반영 * [BE] RestDocs 파일 계층화 및 문서 표현 문자열 개선 (#475) * test: 만들어지는 AsciiDoc의 이름을 카멜케이스로 수정 * docs: restDocs문자열 및 순서 수정 * docs: RestDocs API 분류별 파일 분리 * docs: RestDocs API 분류별 링크를 타도록 수정 * docs: API주소를 기록한 Overview등록 * docs: 주소들 카테고리별로 분류 & 이미지 API 페이지 분리 * docs: index 제목 변경 * [BE] 이미지 기능 구현 (#462) * feat: 그룹 이미지 도메인 생성 * feat: 이미지 저장 기능 구현 * refactor: develop-be 코드 적용 * feat: 이미지 업로드 기능 구현 * refactor: develop-be 적용 * refactor: 테스트 이미지 폴더 삭제 * refactor: 그룹 이미지 예외 추가 * refactor: 그룹 이미지 테스트를 mock 방식으로 변경 * refactor: develop-be 적용 * refactor: develop-be 적용 * feat: 그룹 이미지 불러오기 기능 구현 Co-authored-by: nbalance97 <[email protected]> * feat: 그룹 이미지 저장하는 API 추가 Co-authored-by: nbalance97 <[email protected]> * feat: 이미지 서버에…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
⚙️ 작업 내용
처리하지 않은 예외 발생 시 콘솔창 및 파일에 로깅 처리
🛠 상세 작업
logging
패키지에 위치src/log/{year}/{month}/{로그 파일}.txt
에 위치