Skip to content

[refactor] Member의 지원자/계정 역할을 applicant로 이전#574

Merged
kangkings merged 4 commits into
devfrom
tmp/dev
Jun 12, 2026
Merged

[refactor] Member의 지원자/계정 역할을 applicant로 이전#574
kangkings merged 4 commits into
devfrom
tmp/dev

Conversation

@kangkings

@kangkings kangkings commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

#️⃣연관된 이슈

close #561

📝 작업 내용

하위 이슈작업 마무리로 dev에 병합합니다

Summary by CodeRabbit

Release Notes

  • Refactor
    • 시스템 아키텍처의 도메인 계층을 재구성하여 관심사 분리를 개선했습니다
    • 인증 및 권한 검증 체계를 업데이트했습니다
    • API 엔드포인트 경로 및 구조를 개선했습니다

kangkings added 3 commits June 4, 2026 11:34
* [feat] Applicant 도메인 준비

* [ci] tmp/dev 브랜치에서 ci 활성화 (임시)

* [chore] 주석 추가 및 수정
* [refactor] 인증 대상 테이블을 applicant로 전환

* [Refactor] JWT claim 이름을 applicantId로 변경

* [Refactor] 일반 인증 흐름의 Member 의존을 Applicant로 변경

* [Refactor] 관리자 인증 흐름의 Member 의존을 Applicant로 변경

* [refactor] Member에서 이관 완료된 인증 엔드포인트, 로직 제거

* [chore] 함수 제거 및 주석 추가
* [refactor]: 지원서 소유자를 applicant로 전환

* [db]: 지원서 외래키를 applicant로 전환

* [test]: 지원서 테스트를 applicant 기준으로 수정

* [test]: applicant 계정 조회 쿼리 테스트 이관

* [test]: applicant repository 테스트 네이밍 정리
@kangkings
kangkings requested review from 023-dev and fivedragon5 June 11, 2026 13:18
@kangkings kangkings self-assigned this Jun 11, 2026
@kangkings kangkings added the 👨🏻‍💻backend 백엔드 작업 label Jun 11, 2026
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

지원자 도메인과 지원서/인증 흐름이 회원 기준에서 지원자 기준으로 전환되었습니다. 관련 컨트롤러, 서비스, 저장소, JWT 처리, 마이그레이션, 테스트가 함께 수정되었습니다.

Changes

지원자 핵심 모델

Layer / File(s) Summary
지원자 모델과 저장소
src/main/java/org/ject/support/domain/applicant/...
Applicant, ApplicantEditor, ApplicantDto, ApplicantProfileResponse, ApplicantAccountProjection, ApplicantErrorCode, ApplicantException, ApplicantRepository, ApplicantQueryRepository와 구현체가 추가되거나 지원자 기준으로 변경되었습니다.

관리자 계정과 백오피스 처리

Layer / File(s) Summary
관리자 계정과 백오피스 처리
src/main/java/org/ject/support/admin/..., src/test/java/org/ject/support/admin/...
관리자 계정 생성·조회·수정, 백오피스 상태 검증, 관련 테스트가 Member/MemberRepository에서 Applicant/ApplicantRepository로 전환되었습니다.

인증과 토큰 발급

Layer / File(s) Summary
인증과 토큰 발급
src/main/java/org/ject/support/common/security/..., src/main/java/org/ject/support/domain/auth/..., src/test/java/org/ject/support/domain/auth/..., src/test/java/org/ject/support/common/security/...
JWT 클레임, 인증 사용자 상세, 성공 핸들러, 인증 서비스, 개발용 인증, 필터, 리졸버, 관련 테스트가 applicantId 기준으로 변경되었습니다.

지원서 처리

Layer / File(s) Summary
지원서 처리
src/main/java/org/ject/support/domain/apply/..., src/main/java/org/ject/support/admin/apply/..., src/test/java/org/ject/support/domain/apply/..., src/test/java/org/ject/support/admin/apply/...
지원서 엔티티와 쿼리, 지원서 서비스/관리자 서비스, 합격 처리, 리마인드 처리, 관련 API와 테스트가 applicant 연관으로 바뀌었습니다.

지원자 API와 웹 설정

Layer / File(s) Summary
지원자 API와 웹 설정
src/main/java/org/ject/support/domain/applicant/controller/..., src/main/java/org/ject/support/common/security/config/WebConfig.java, src/test/java/org/ject/support/testconfig/..., src/test/java/org/ject/support/domain/applicant/controller/..., .github/workflows/continuous-intergration.yml
지원자 전용 API 계약과 컨트롤러, 웹 인자 리졸버 설정, 테스트 인증 주입, CI 브랜치 조건이 추가되거나 변경되었습니다.

테스트와 마이그레이션

Layer / File(s) Summary
테스트와 마이그레이션
src/main/resources/db/migration/V32__convert_apply_member_to_applicant.sql, src/test/java/org/ject/support/...
DB 마이그레이션과 기존 회원/지원자 전환에 맞춘 단위·통합·리포지토리 테스트가 갱신되었습니다.

Sequence Diagram(s)

sequenceDiagram
  participant AuthController
  participant AuthService
  participant JwtTokenProvider
  participant CustomSuccessHandler
  AuthController->>AuthService: refreshAccessToken(refreshToken)
  AuthService->>JwtTokenProvider: extractApplicantId(refreshToken)
  JwtTokenProvider-->>AuthService: applicantId
  AuthService-->>AuthController: applicantId
  AuthController->>CustomSuccessHandler: onAuthenticationSuccess(response, refreshToken, applicantId)
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Poem

૮₍ ˶ᵔ ᵕ ᵔ˶ ₎ა
당근 밭에 발자국, 지원자 길이 열렸네
토큰도 폼도 쫑긋, applicant 이름을 부르네
달빛 아래 점프 점프, 테스트도 함께 뛰고
나는 행복한 토끼, 새 도메인 냠냠!

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch tmp/dev

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown

Test Results

395 tests   395 ✅  13s ⏱️
 71 suites    0 💤
 71 files      0 ❌

Results for commit 9b145c1.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown

📊테스트 커버리지

Overall Project 84.13% -1.16% 🍏
Files changed 89.8% 🍏

File Coverage
MemberQueryRepositoryImpl.java 100% 🍏
ApplyPassService.java 100% 🍏
AdminApplyService.java 100% 🍏
AdminAuthService.java 100% 🍏
AuthenticatedApplicantIdResolver.java 100% 🍏
CustomUserDetailService.java 100% 🍏
ApplicantEditor.java 100% 🍏
AdminMemberComponent.java 100% 🍏
WebConfig.java 100% 🍏
AdminAccountService.java 99.49% 🍏
ApplicantQueryRepositoryImpl.java 98.83% -1.17% 🍏
CustomUserDetails.java 97.14% 🍏
Apply.java 93.81% 🍏
AuthService.java 93.2% 🍏
Applicant.java 93.06% -6.94% 🍏
RemindApplyService.java 88.89% -11.11%
ApplyService.java 85.13% -5.38% 🍏
ApplicantService.java 84.09% -15.91% 🍏
AdminApplyQueryRepositoryImpl.java 80.79% -3.95%
JwtTokenProvider.java 59.68% -3.19% 🍏
JwtAuthenticationFilter.java 54.26% 🍏
CustomSuccessHandler.java 0% -28.99%

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/main/java/org/ject/support/common/security/AuthenticatedApplicantIdResolver.java (1)

30-36: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

AuthenticatedApplicantIdResolver에서 principal 타입 검증 누락으로 ClassCastException(500) 가능

authentication.isAuthenticated()만으로는 authentication.getPrincipal()이 항상 CustomUserDetails임이 보장되지 않아, 현재 (CustomUserDetails) authentication.getPrincipal() 캐스팅에서 ClassCastException이 발생할 수 있습니다. (실제로 AuthenticatedApplicantIdResolverTest#resolveArgumentWithInvalidAuthentication에서 invalid authentication 시 ClassCastException이 발생하는 케이스가 존재)
instanceof CustomUserDetails로 타입을 먼저 확인하고 아니면 GlobalException(EMPTY_ACCESS_TOKEN) 등으로 처리하도록 보완해 주세요.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/main/java/org/ject/support/common/security/AuthenticatedApplicantIdResolver.java`
around lines 30 - 36, In AuthenticatedApplicantIdResolver, after retrieving
Authentication via SecurityContextHolder.getContext().getAuthentication() and
checking authentication.isAuthenticated(), add an instanceof check on
authentication.getPrincipal() to ensure it's a CustomUserDetails before casting;
if the principal is not a CustomUserDetails, throw the same
GlobalException(EMPTY_ACCESS_TOKEN) (or similar invalid-token error) instead of
casting directly in the code path that currently does (CustomUserDetails)
authentication.getPrincipal() and returns userDetails.getApplicantId().
🧹 Nitpick comments (1)
src/test/java/org/ject/support/domain/applicant/controller/ApplicantControllerTest.java (1)

119-120: ⚡ Quick win

SecurityContext 정리는 @AfterEach로 일원화하는 편이 안전합니다.

본문 말미 수동 정리는 assertion 실패 시 실행되지 않아 다음 테스트를 오염시킬 수 있습니다. 공통 teardown으로 이동하세요.

예시 수정
+ import org.junit.jupiter.api.AfterEach;
...
+ `@AfterEach`
+ void tearDown() {
+     SecurityContextHolder.clearContext();
+ }
- // 테스트 후 인증 정보 초기화
- SecurityContextHolder.clearContext();

Also applies to: 144-145, 167-168, 192-193, 217-218

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/test/java/org/ject/support/domain/applicant/controller/ApplicantControllerTest.java`
around lines 119 - 120, Multiple tests in ApplicantControllerTest call
SecurityContextHolder.clearContext() manually at the end of test methods, which
can be skipped on assertion failure; instead add a single `@AfterEach` teardown
method in the ApplicantControllerTest class that calls
SecurityContextHolder.clearContext(), then remove the manual
SecurityContextHolder.clearContext() calls from individual tests (the
occurrences currently present at the ends of test methods). Ensure the new
method is annotated with org.junit.jupiter.api.AfterEach and is placed in the
ApplicantControllerTest class so all tests are cleaned up reliably.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/main/java/org/ject/support/common/security/jwt/JwtTokenProvider.java`:
- Around line 169-173: The reissueAccessToken method currently trusts the
caller-supplied applicantId, opening a forgery path; change reissueAccessToken
to extract the user id from the validated refresh token (via
getAuthenticationByToken / Authentication.getPrincipal() or the token subject)
and compare it to the provided applicantId, and if they differ throw a security
exception (e.g., BadCredentialsException or custom JwtException); alternatively,
ignore the parameter and pass the token-derived id into createAccessToken so
only the token's internal identity is trusted (update calls to validateToken,
getAuthenticationByToken and createAccessToken accordingly).

In `@src/main/java/org/ject/support/domain/applicant/entity/Applicant.java`:
- Around line 118-155: The entity exposes and mutates the internal
interestedDomains list directly causing NPEs and state leaks; update
Applicant.toEditor(), Applicant.edit(ApplicantEditor) and
Applicant.deleteProfile() to defensively copy and null-safe the list: in
toEditor() pass a copy (e.g., new List from this.interestedDomains or empty list
if null) instead of the raw reference; in edit(...) assign a defensive copy of
editor.interestedDomains (or an empty list when null) rather than the raw list
reference; in deleteProfile() avoid calling interestedDomains.clear() on a
potentially null list—either set interestedDomains to an empty list instance or
null-safe clear after checking for null. Ensure all three methods use the same
defensive-copy pattern to prevent external mutation and NPEs.

In
`@src/main/java/org/ject/support/domain/applicant/repository/ApplicantQueryRepositoryImpl.java`:
- Around line 29-37: Modify findEmailsByIdsAndNotSubmitted to take a recruitId
parameter and return distinct emails for applicants in that recruit who have no
SUBMITTED application rows: replace the current join-based query with a
queryFactory.selectDistinct(applicant.email).from(applicant).where(applicant.id.in(applicantIds),
applicant.isDeleted.eq(false), applicant.recruit.id.eq(recruitId),
JPAExpressions.selectOne().from(apply).where(apply.applicant.id.eq(applicant.id),
apply.status.eq(SUBMITTED)).notExists()) so the method uses selectDistinct and a
NOT EXISTS(subquery for SUBMITTED) check instead of the current join to avoid
false positives and duplicate emails.

In
`@src/main/java/org/ject/support/domain/applicant/service/ApplicantService.java`:
- Around line 39-57: The current registerTempApplicant uses
applicantRepository.findByEmail(email) and throws
ApplicantException(ALREADY_EXIST_APPLICANT) which incorrectly blocks
reapplications across semesters and leaves a race condition; change the
existence check to use the recruit-scoped key (e.g.,
applicantRepository.findByEmailAndRecruitId(email, recruitId) or
findByEmailAndSemesterId(email, semesterId)) inside registerTempApplicant,
update createTempApplicantWithPin to accept recruitId/semesterId, and rely on a
DB unique constraint on (email, recruit_id) plus transactional handling (or
catch DataIntegrityViolationException) instead of a simple check-then-insert to
avoid concurrent duplicate inserts.

In `@src/main/java/org/ject/support/domain/auth/service/AuthService.java`:
- Around line 101-104: findApplicant currently calls
applicantRepository.findByEmail(email) which will throw at runtime if multiple
applicants share the same email; change the lookup to handle duplicates
deterministically: use a repository method that returns multiple results (e.g.,
findAllByEmail or findTopByEmailOrderByCreatedAtDesc) and update findApplicant
to (1) if none found throw ApplicantException(NOT_FOUND_APPLICANT), (2) if
exactly one return it, and (3) if multiple either return a deterministic single
record (e.g., most recently created) or throw a new DuplicateApplicantException
(or a specific ApplicantException code) so the authentication path does not
crash with a 500; update references to applicantRepository.findByEmail, the
findApplicant method, and exception usage (ApplicantException /
NOT_FOUND_APPLICANT) accordingly.

In
`@src/test/java/org/ject/support/common/security/jwt/JwtAuthenticationFilterTest.java`:
- Line 111: 현재 검증은 findByIdAndRoleIn(1L, Role.backofficeRoles()) 호출만 막고 있어 다른 인자
호출을 놓칠 수 있으니, repository 접근 자체가 없어야 하는 비백오피스 시나리오에 맞게 더 강한 검증으로 교체하세요: 해당 라인의
verify(applicantRepository, never()).findByIdAndRoleIn(...) 대신
applicantRepository에 대해 verifyNoInteractions(applicantRepository)을 사용해 어떤 메서드
호출도 허용하지 않도록 변경하고, 필요하면 findByIdAndRoleIn 메서드명이 테스트에서 참조되는 부분을 함께 정리하세요.

In
`@src/test/java/org/ject/support/domain/applicant/controller/ApplicantControllerTest.java`:
- Around line 103-105: The stub uses
lenient().doNothing().when(applicantService).registerInitialProfile(any(),
eq(applicantId)) which allows the controller to pass a wrong/null applicantId
unnoticed; update each stub (and similar stubs at the other occurrences) to
either stub with the exact applicantId (replace any() with eq(applicantId)) or
keep the lenient stub but add a corresponding verify call after the controller
invocation: verify(applicantService).registerInitialProfile(any(),
eq(applicantId)); doing this for registerInitialProfile and the other service
methods mentioned will ensure the applicantId argument is asserted with
eq(applicantId).

---

Outside diff comments:
In
`@src/main/java/org/ject/support/common/security/AuthenticatedApplicantIdResolver.java`:
- Around line 30-36: In AuthenticatedApplicantIdResolver, after retrieving
Authentication via SecurityContextHolder.getContext().getAuthentication() and
checking authentication.isAuthenticated(), add an instanceof check on
authentication.getPrincipal() to ensure it's a CustomUserDetails before casting;
if the principal is not a CustomUserDetails, throw the same
GlobalException(EMPTY_ACCESS_TOKEN) (or similar invalid-token error) instead of
casting directly in the code path that currently does (CustomUserDetails)
authentication.getPrincipal() and returns userDetails.getApplicantId().

---

Nitpick comments:
In
`@src/test/java/org/ject/support/domain/applicant/controller/ApplicantControllerTest.java`:
- Around line 119-120: Multiple tests in ApplicantControllerTest call
SecurityContextHolder.clearContext() manually at the end of test methods, which
can be skipped on assertion failure; instead add a single `@AfterEach` teardown
method in the ApplicantControllerTest class that calls
SecurityContextHolder.clearContext(), then remove the manual
SecurityContextHolder.clearContext() calls from individual tests (the
occurrences currently present at the ends of test methods). Ensure the new
method is annotated with org.junit.jupiter.api.AfterEach and is placed in the
ApplicantControllerTest class so all tests are cleaned up reliably.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ebb526df-5bd8-45c8-8054-dbc59bd9e2db

📥 Commits

Reviewing files that changed from the base of the PR and between 387c70c and dc61ff0.

📒 Files selected for processing (76)
  • .github/workflows/continuous-intergration.yml
  • src/main/java/org/ject/support/admin/account/dto/AdminAccountCreateRequest.java
  • src/main/java/org/ject/support/admin/account/dto/AdminAccountResponse.java
  • src/main/java/org/ject/support/admin/account/service/AdminAccountService.java
  • src/main/java/org/ject/support/admin/apply/dto/AdminApplyDetailResponse.java
  • src/main/java/org/ject/support/admin/apply/dto/AdminApplyResponse.java
  • src/main/java/org/ject/support/admin/apply/repository/AdminApplyQueryRepositoryImpl.java
  • src/main/java/org/ject/support/admin/apply/repository/AdminApplyRepository.java
  • src/main/java/org/ject/support/admin/apply/service/AdminApplyService.java
  • src/main/java/org/ject/support/admin/apply/service/ApplyPassService.java
  • src/main/java/org/ject/support/admin/auth/service/AdminAuthService.java
  • src/main/java/org/ject/support/admin/component/AdminMemberComponent.java
  • src/main/java/org/ject/support/common/security/AuthenticatedApplicantIdResolver.java
  • src/main/java/org/ject/support/common/security/CustomSuccessHandler.java
  • src/main/java/org/ject/support/common/security/CustomUserDetailService.java
  • src/main/java/org/ject/support/common/security/CustomUserDetails.java
  • src/main/java/org/ject/support/common/security/config/WebConfig.java
  • src/main/java/org/ject/support/common/security/jwt/JwtAuthenticationFilter.java
  • src/main/java/org/ject/support/common/security/jwt/JwtTokenProvider.java
  • src/main/java/org/ject/support/domain/applicant/controller/ApplicantApiSpec.java
  • src/main/java/org/ject/support/domain/applicant/controller/ApplicantController.java
  • src/main/java/org/ject/support/domain/applicant/dto/ApplicantAccountProjection.java
  • src/main/java/org/ject/support/domain/applicant/dto/ApplicantDto.java
  • src/main/java/org/ject/support/domain/applicant/dto/ApplicantProfileResponse.java
  • src/main/java/org/ject/support/domain/applicant/entity/Applicant.java
  • src/main/java/org/ject/support/domain/applicant/entity/ApplicantEditor.java
  • src/main/java/org/ject/support/domain/applicant/exception/ApplicantErrorCode.java
  • src/main/java/org/ject/support/domain/applicant/exception/ApplicantException.java
  • src/main/java/org/ject/support/domain/applicant/repository/ApplicantQueryRepository.java
  • src/main/java/org/ject/support/domain/applicant/repository/ApplicantQueryRepositoryImpl.java
  • src/main/java/org/ject/support/domain/applicant/repository/ApplicantRepository.java
  • src/main/java/org/ject/support/domain/applicant/service/ApplicantService.java
  • src/main/java/org/ject/support/domain/apply/controller/ApplyApiSpec.java
  • src/main/java/org/ject/support/domain/apply/controller/ApplyController.java
  • src/main/java/org/ject/support/domain/apply/domain/Apply.java
  • src/main/java/org/ject/support/domain/apply/repository/ApplicationFormRepository.java
  • src/main/java/org/ject/support/domain/apply/repository/ApplyRepository.java
  • src/main/java/org/ject/support/domain/apply/service/ApplyService.java
  • src/main/java/org/ject/support/domain/apply/service/ApplyUsecase.java
  • src/main/java/org/ject/support/domain/apply/service/RemindApplyService.java
  • src/main/java/org/ject/support/domain/auth/controller/AuthController.java
  • src/main/java/org/ject/support/domain/auth/controller/DevAuthController.java
  • src/main/java/org/ject/support/domain/auth/service/AuthService.java
  • src/main/java/org/ject/support/domain/member/controller/MemberApiSpec.java
  • src/main/java/org/ject/support/domain/member/dto/MemberProfileResponse.java
  • src/main/java/org/ject/support/domain/member/repository/MemberQueryRepository.java
  • src/main/java/org/ject/support/domain/member/repository/MemberQueryRepositoryImpl.java
  • src/main/java/org/ject/support/domain/member/service/MemberService.java
  • src/main/resources/db/migration/V32__convert_apply_member_to_applicant.sql
  • src/test/java/org/ject/support/admin/account/controller/AdminAccountControllerTest.java
  • src/test/java/org/ject/support/admin/account/service/AdminAccountServiceTest.java
  • src/test/java/org/ject/support/admin/apply/repository/AdminApplyQueryRepositoryTest.java
  • src/test/java/org/ject/support/admin/apply/service/AdminApplyServiceTest.java
  • src/test/java/org/ject/support/admin/apply/service/ApplyPassServiceTest.java
  • src/test/java/org/ject/support/admin/auth/service/AdminAuthServiceTest.java
  • src/test/java/org/ject/support/admin/component/AdminMemberComponentTest.java
  • src/test/java/org/ject/support/common/security/AuthenticatedApplicantIdResolverTest.java
  • src/test/java/org/ject/support/common/security/CustomUserDetailServiceTest.java
  • src/test/java/org/ject/support/common/security/CustomUserDetailsTest.java
  • src/test/java/org/ject/support/common/security/jwt/JwtAuthenticationFilterTest.java
  • src/test/java/org/ject/support/common/security/jwt/JwtTokenProviderTest.java
  • src/test/java/org/ject/support/domain/applicant/ApplicantTest.java
  • src/test/java/org/ject/support/domain/applicant/controller/ApplicantControllerTest.java
  • src/test/java/org/ject/support/domain/applicant/repository/ApplicantRepositoryTest.java
  • src/test/java/org/ject/support/domain/applicant/service/ApplicantServiceTest.java
  • src/test/java/org/ject/support/domain/apply/controller/ApplyControllerTest.java
  • src/test/java/org/ject/support/domain/apply/domain/ApplyTest.java
  • src/test/java/org/ject/support/domain/apply/repository/ApplyRepositoryTest.java
  • src/test/java/org/ject/support/domain/apply/service/ApplyServiceTest.java
  • src/test/java/org/ject/support/domain/auth/AuthControllerTest.java
  • src/test/java/org/ject/support/domain/auth/AuthServiceTest.java
  • src/test/java/org/ject/support/domain/member/repository/MemberAccountQueryRepositoryTest.java
  • src/test/java/org/ject/support/domain/member/repository/MemberQueryRepositoryTest.java
  • src/test/java/org/ject/support/domain/recruit/repository/ApplicationFormRepositoryTest.java
  • src/test/java/org/ject/support/testconfig/AuthenticatedUser.java
  • src/test/java/org/ject/support/testconfig/WithAuthenticatedUserSecurityContextFactory.java
💤 Files with no reviewable changes (7)
  • src/main/java/org/ject/support/domain/member/repository/MemberQueryRepository.java
  • src/test/java/org/ject/support/domain/member/repository/MemberAccountQueryRepositoryTest.java
  • src/main/java/org/ject/support/domain/member/controller/MemberApiSpec.java
  • src/main/java/org/ject/support/domain/member/dto/MemberProfileResponse.java
  • src/main/java/org/ject/support/domain/member/service/MemberService.java
  • src/test/java/org/ject/support/domain/member/repository/MemberQueryRepositoryTest.java
  • src/main/java/org/ject/support/domain/member/repository/MemberQueryRepositoryImpl.java

Comment thread src/main/java/org/ject/support/domain/auth/service/AuthService.java
@kangkings
kangkings merged commit e22944b into dev Jun 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

👨🏻‍💻backend 백엔드 작업

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[REFACTOR] Member의 지원자/계정 역할을 Applicant로 이전

2 participants