[merge] conflict 해결#596
Merged
Merged
Conversation
* feat: JWT 인증 필터에서 검증 토큰 처리 로직 개선 및 쿠키 삭제 기능 추가 * feat: JWT 인증 필터에서 검증 토큰 쿠키에 보안 속성 추가 * feat: JWT 인증 필터에서 검증 토큰 처리 로직 개선 * feat: JWT 인증 필터에서 검증 토큰 처리 로직 간소화 * feat: JWT 인증 필터에서 액세스 토큰 및 검증 토큰 처리 로직 개선 * feat: 관리자 로그인 및 서포터 토큰 발급 이벤트를 발행하도록 알림 시스템을 이벤트 기반으로 리팩토링 (#405) * feat: 미니 스터디 설명 필드 추가 (#408) * feat: MiniStudy 엔티티에 tag 필드 추가 * feat: MiniStudyResponse에 tag 필드 추가 * feat: MiniStudyQueryRepository에 tag 필드 추가 * test: MiniStudyQueryRepositoryTest에 tag 필드 관련 테스트 추가 * feat: mini_study 테이블에 tag 컬럼 추가 * feat: 관리자 지원서 조회 API에 기수 파라미터 추가 (#409) * feat: 임시 지원서 목록 조회 API에 semesterId 필터 추가 * feat: 제출된 지원서 조회 API에 semesterId 필터 추가 * feat: 제출된 지원서 조회 API에 semesterId 파라미터 추가 * feat: 임시 지원서 조회 API에 semesterId 파라미터 추가 * feat: 지원서 조회 쿼리에 semesterId 파라미터 추가 및 필터링 로직 구현 * test: 지원서 조회 테스트에 semesterId 필터링 테스트 추가 * feat: Jectalk 엔티티 스펙 변경 (#412) * feat: ContentType enum 추가하여 콘텐츠 유형 정의 * feat: Jectalk 엔티티 및 DTO 구조 변경 * feat: JectalkQueryRepository 반환 필드 수정 * test: JectalkQueryRepositoryTest 수정으로 반환 필드 검증 업데이트 * feat: Jectalk 테이블 구조 변경 및 데이터 마이그레이션으로 인한 Flyway migration 추 * feat: Jectalk 테이블 content_type 컬럼 기본값 추가 * feat: Category 필드 및 필터링 추가 * feat: n8n에 지원서 제출 이벤트 발행 기능 추가 (#415) * feat: 제출된 지원서 응답에 지역, 경력 사항, 경험 기간 및 관심 분야 추가 * feat: 지원서 응답에 관심 분야가 null일 경우 빈 리스트로 처리하도록 수정 * feat: 질문에 subtitle 컬럼 추가 및 초기화 쿼리 작성 (#421) * refactor: deprecated 처리된 temporary apply 관련 코드 삭제 (#429) * refactor: deprecated 처리된 temporary apply 관련 코드 삭제 * refactor: deprecated 처리된 temporary apply 관련 코드 삭제 * refactor: 사용하지 않는 review 코드 삭제 (#428) * chore: 마이그레이션 스크립트로 review 스키마 제거 * refactor: review 도메인 및 관련 코드 삭제 * refactor: n8n 관련 코드 및 이벤트 발행 로직 제거 (#433) * refactor: Redis 캐시 설정 및 연결 구성 수정 (#434) * feat: Redis 캐시 설정 및 연결 구성 추가 * refactor: 레디스 설정 파일 분리 파일 삭제 * feat: 인증번호 재설정 이메일 발송 시 전송 횟수 제한 기능 추가 (#430) * feat: 인증번호 재설정 이메일 발송 시 rate limiter 로직 추가 * test: 인증번호 재설정 이메일 발송 시 rate limiter 로직 테스트 케이스 추가 * refactor: EmailAuthService import문 정리 * chore: Dockerfile 베이스 이미지 JRE로 변경 및 메모리 설정 최적화 (#432) * fix: CI/Testcontainers 안정화 (#438) * test: main 메소드에 CI/CD 테스트 주석 추가 * chore: Dockerfile 빌드 설정 업데이트 * ci: Docker 환경 체크 스텝 추가 및 커버리지 임계값 조정 * fix: 빌드 테스트 * fix: 빌드 테스트, 로그 추가 * fix: docker api version up 1.44 * fix: Redis Testcontainers 이미지를 안정 버전(7.4-alpine)으로 변경 * fix: docker api fix 1.44 * fix: Diagnose Testcontainers Runtime 스텝 추가, Test with Gradle에 아래 강제 옵션 추가 * fix: CI 러너를 고정 * fix: Set up Docker Engine * fix: docker.api.version=1.44 강제 * fix: Testcontainers CI 연동 수정 및 JaCoCo 임계값 조정 * fix: CI 테스트 * fix: 1.43 다운그레이드 * fix: TestContainers 의존성 관리 및 Redis TestContainer 시작 로직을 안정화했습니다. * fix: Redis 시작 로그 추가 및 Gradle test 환경변수 설정 * fix: Redis WaitStrategy 변경(포트->로그) 및 타임아웃 120초로 증가 * fix: Redis WaitStrategy 롤백 및 타임아웃 180초로 연장 * chore: 테스트 로그 레벨 조정 (Testcontainers, Docker 관련 로그 WARN으로 변경) * fix: CI 로그 옵션 제거 및 Testcontainers 설정 수정 (Ryuk 비활성화) * CI Gradle 테스트에서 Testcontainers를 위한 Docker API 버전과 소켓 전략을 구성하고 디버그 정보를 추가했습니다. * build: Redis 테스트 컨테이너 이미지를 7.4-alpine에서 8.0-M03-alpine으로 업데이트합니다. * fix: CI 설정 파일 정리 (dev 브랜치 기준으로 불필요한 설정 제거) * refactor: Testcontainers 설정 리팩토링 (어노테이션 제거, Redis 7.4 변경, 중복 start 제거) * style: Unused import 및 어노테이션 정리 * style: MysqlTestContainersConfig Unused import 정리 * style: RedisTestContainersConfig 잔여 Unused import 정리 * feat: MySQL 및 Redis 테스트 컨테이너에 `@Testcontainers` 어노테이션과 `DisposableBean`을 구현하여 컨테이너 생명주기를 관리하도록 개선했습니다. * fix: CI Docker 환경 인식 오류 수정 (DOCKER_HOST 명시) * fix: ubuntu-22.04 고정, DOCKER_HOST 고정 테스트 * fix: ubuntu-22.04 고정, DOCKER_HOST 고정 테스트 * fix: 디버깅용 로그 제거, 테스트 로그 레벨 축소 info -> stacktrace --------- Co-authored-by: fad <ojy9406@naver.com> * feat: 다직군/다기수 지원을 위한 TeamMember 기반 리팩토링 (#439) * chore: CI 테스트 커버리지 최소 기준 복구 min-coverage-overall 및 min-coverage-changed-files 설정을 10에서 70으로 변경 * chore: SupportApplication 테스트 주석 제거 - CI/CD 파이프라인 동작 확인용 주석 삭제 * feat: TeamMember에 jobFamily 필드 추가 - TeamMember 엔티티에 jobFamily 필드 추가 (@Enumerated, @column) - 클래스 레벨에 @Getter 어노테이션 추가 * feat: team_member job_family 데이터 마이그레이션 - 기존 member.job_family 데이터를 team_member.job_family로 마이그레이션하는 SQL 스크립트 추가 * fix: 팀원 조회 시 TeamMember jobFamily 우선 적용 및 Fallback 로직 추가 - MemberQueryRepositoryImpl: 팀원 이름 조회 쿼리 수정 - TeamMember의 jobFamily가 존재하면 해당 값을 우선 사용하도록 변경 - null인 경우 Member의 jobFamily를 사용 (기존 데이터 호환성 유지) - MemberQueryRepositoryTest: 기수별 다른 직군 활동 및 Fallback 로직 검증 테스트 추가 * fix: 회원 정보 수정 시 TeamMember 직군(jobFamily) 동기화 - MemberManagementService: 회원 정보 수정 시 변경된 직군을 해당 회원의 모든 TeamMember 데이터에 동기화하는 로직 추가 - TeamMember: 직군 변경을 위한 updateJobFamily 메서드 추가 - TeamMemberRepository: findByMemberId 메서드 추가 - MemberManagementServiceTest: 직군 동기화 검증 테스트 추가 * chore: JaCoCo 라인 커버리지 최소 기준 상향 (0.1 → 0.7) - build.gradle: 테스트 커버리지(LINE) 최소 만족 비율을 10%에서 70%로 변경 * fix: MemberQueryRepositoryTest PM 조회 검증 값 수정 - 2기 팀 PM 조회 결과 검증 시 기대값을 "ject"에서 "김젝트"로 변경 * fix: MemberQueryRepositoryTest 테스트 검증 값 수정 * refactor: 사용되지 않는 DynamoDB 컴포넌트 제거 및 정리 (#444) * feat: AI 어시스턴트 GitHub 템플릿(Issue/PR) 설계 적용 (#450) (#451) * feat: apply github templates to ai assistant workflows and skills (#450) * fix: resolve CodeRabbit review comments on AI templates (#450) * fix: resolve second-round CodeRabbit review comments on manage-skills and PR workflows (#450) * fix: resolve third-round CodeRabbit review comments on manage-skills (#450) * fix: resolve fourth-round CodeRabbit review comments on manage-skills (#450) * fix: resolve fifth-round CodeRabbit review comments (#450) * feat: 지원상태 확인 API 수정 (#447) * [FUNC_APL_MGT_01] 제출 완료된 지원서 목록 조회하기 #449 (#452) * refactor: admin 패키지로 ApplyQueryRepository 이관 - ApplyQueryRepository, ApplyQueryRepositoryImpl를 admin/repository 패키지로 이관 - AdminApplyQueryRepository, AdminApplyQueryRepositoryImpl로 이름 변경 - ApplyRepository에서 ApplyQueryRepository extends 제거 - SubmittedApplyService, AdminTempApplyService가 AdminApplyQueryRepository를 직접 주입받도록 변경 - ApplyQueryRepositoryTest를 AdminApplyQueryRepositoryTest로 이관 * feat: 제출 완료된 지원서 목록 조회 기능 구현 (#449) - AdminApplyQueryRepositoryTest에 AdminApplyQueryRepositoryImpl @import 추가 - JobFamily, semesterId 필터링 및 createdAt 내림차순 정렬 지원 - 삭제된 회원의 지원서 제외 처리 - 페이지네이션 지원 (기본 size=15) * refactor: admin 패키지를 domain 레이어와 동일 레벨로 이관 - org.ject.support.domain.admin → org.ject.support.admin 으로 패키지 이동 - component, controller, dto, exception, repository, service 전체 이관 - 테스트 파일도 동일하게 이관 - 외부에서 참조하는 import도 일괄 수정 - 추후 admin 모듈 분리를 용이하게 하기 위한 패키지 구조 개선 * fix: 제출 지원서 목록 조회 페이지 크기 10, 등록일 내림차순 정렬 기본값 적용 - @PageableDefault size=15 → 10 (이슈 #449 요구사항: 한 페이지 10개) - sort="createdAt", direction=DESC 기본 정렬 추가 * feat: Recruit에 모집 단위(RecruitType) 추가 및 지원서 목록 조회 필터 반영 - RecruitType enum 추가 (REGULAR, REGULAR_ADDITIONAL, EXISTING_MEMBER, SEPARATE) - Recruit 엔티티에 recruitType 필드 추가 (nullable) - V20 Flyway 마이그레이션: recruit 테이블에 recruit_type 컬럼 추가 - AdminApplyQueryRepository.findAppliesByStatus()에 recruitType 필터 파라미터 추가 - SubmittedApplyService, AdminTempApplyService 및 컨트롤러·ApiSpec 전파 - 관련 테스트 파일 호출부 일괄 수정 * fix: RecruitType enum 값 명칭 변경 및 기존 데이터 REGULAR 초기화 - REGULAR_ADDITIONAL → REGULAR_WAITLIST - EXISTING_MEMBER → BACKFILL - SEPARATE → MANUAL - Recruit.recruitType 빌더 기본값 REGULAR 설정, nullable=false - V20 마이그레이션: 기존 레코드 REGULAR 초기화 후 NOT NULL 적용 * refactor: admin 패키지를 apply/member/auth 기능별 하위 구조로 분리 - admin/apply: 지원서 관리 (controller, dto, repository, service) - admin/member: 회원 관리 (component, controller, dto, service) - admin/auth: 인증 (controller, dto, service) - admin/exception: 공통 예외 (기존 유지) - 패키지 선언 및 import 일괄 수정 * refactor: SubmittedApplyApiSpec 제거 및 SubmittedApplyController로 통합 * refactor: MemberQueryRepository에서 admin DTO 의존성 제거 - 도메인 레이어 전용 MemberProjection DTO 생성 - MemberQueryRepository/Impl이 MemberProjection을 반환하도록 변경 - MemberResponse에 from(MemberProjection) 팩터리 메서드 추가 - MemberManagementService에서 MemberProjection → MemberResponse 변환 로직 적용 - 관련 테스트 MemberProjection 기반으로 수정 * feat: 제출 지원서 조회 응답에 요건에 맞게 필드 추가 - 지원자 신분(careerDetails), 모집 단위(recruitType) 응답에 추가 * test: RecruitType 필터링 지원 조회 테스트 추가 - AdminApplyQueryRepositoryTest 필터링 시나리오 보강 - AdminTempApplyServiceTest 임시저장 지원서 필터링 시나리오 보강 * refactor: 임시저장 지원서(Temp Apply) 관련 로직 초기 버전으로 롤백 * fix: 임시 저장된 지원서 목록 페이징 일관성 유지 (size=10, createdAt 역순) * test: MemberQueryRepositoryTest의 semesterName 검증식을 MemberProjection 반환 형식에 맞게 수정 (CI 실패 해결) * feat: 제출된 지원서 조회 응답 필드 수정 (기획 요구사항 반영) - 노출 항목 최적화 (이름, 연락처, 이메일, 포지션, 지원자 신분, 모집 단위, 활동 상태, 비고) - 상세 이력(ApplicationForm) 응답에서 제외 * feat: 지원서 비고(note) 필드 추가 및 응답 반영 - Apply 엔티티에 note 추가 (Builder.Default 포함) - V21__add_note_to_apply 플라이웨이 마이그레이션 파일 추가 - SubmittedApplyResponse 응답에서 note 필드 매핑 및 불필요 항목 제거 * chore: VPC 내부망 통신을 위한 Redis SSL 설정 제거 (#459) * refactor: 제출 완료된 지원서 삭제 로직 품질 개선 (#460) * refactor: SubmittedApplyService 불필요한 메서드 제거 및 코드 개선 - ensureSubmitted() 제거: repository에서 Status.SUBMITTED 조건으로 이미 필터링하므로 중복 검증 - deleteProfileAndApplicationForm() 제거: 단순 2줄 위임 메서드를 호출부에 인라이닝 - toSubmittedApplyResponse() 제거: SubmittedApplyResponse::from 메서드 참조로 인라이닝 - validateQuestions() Stream forEach 안티패턴 수정: findAny().ifPresent()로 교체 - 중복 및 미사용 import 제거 (SubmittedApplyCountResponse, QuestionErrorCode, QuestionException) * test: SubmittedApplyServiceTest 정리 및 테스트 케이스 추가 - 중복 import 제거 (SubmittedApplyCountResponse) - 중복 테스트 메서드 제거 (제출된_지원서_수_조회_성공, 제출된_지원서가_없을_때_0_반환) - 제출되지_않은_지원서_수정시_예외_발생 제거: ensureSubmitted 제거로 불가능한 시나리오 - 제출된_지원서_여러건_삭제시_중복_ID는_한_번만_처리 테스트 추가 - 테스트 메서드명 및 반환값 검증 개선 * fix: SubmittedApplyController에서 중복된 import 문 제거 * feat: 제출된 지원서 불합격 처리 시 REJECTED 상태 전환 - Apply.Status에 REJECTED 추가 - Apply.reject() 도메인 메서드 추가: applicationForm null 처리 + status REJECTED 전환 - SubmittedApplyService: deleteApplicationForm() 직접 호출 -> reject()으로 교체 - V22 마이그레이션: REJECTED 상태 추가 이력 문서화 (varchar 컬럼이므로 DDL 변경 불필요) - SubmittedApplyServiceTest: 삭제 후 status REJECTED 검증 추가 * feat: 지원서 상세 조회 기능 추가 (Issue #454) (#458) * feat: [FUNC_APL_MGT_02] 지원서 상세 조회 기능 구현 * feat: 상세 조회 설문 및 포트폴리오 항목 주석 처리 --------- Co-authored-by: fad <ojy9406@naver.com>
Test Results416 tests 416 ✅ 13s ⏱️ Results for commit 9972446. |
📊테스트 커버리지
|
This file contains hidden or 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
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.
작업내용