[feat] 관리자 페이지 회원 리스트 검색/필터 기능 수정 및 질문 관리 페이지 개선#385
Merged
Conversation
- Profile 엔티티 생성 및 양방향 연관관계 설정 추가 - asyncNotificationService mock 의존성 추가 - 검증 로직을 실제 동작에 맞게 수정 (save 호출 대신 member 상태 직접 확인) - 예상 상태를 PENDING으로 수정 (completeHiddenProfile 실제 동작 반영) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.
PR의 목적이 무엇인가요?
관리자 페이지의 회원 리스트 및 질문 관리 페이지 필터링 기능 개선.
이름 검색, 날짜 필터, 상태 필터의 정확도를 향상시키고, 필터 상태 유지 및 시간대 일관성 문제를 해결하여 관리자의 사용 편의성을 크게 개선.
이슈 ID는 무엇인가요?
설명
📋 변경 사항
1. 회원 리스트 이름 검색 정확도 개선
문제: 이름 검색 시 이메일, 가입일 등 다른 컬럼까지 검색되어 부정확한 결과 반환
해결: codeName 필드만 검색하도록 쿼리 수정
변경 파일:
src/main/kotlin/codel/member/infrastructure/MemberJpaRepository.kt2. 회원 가입일 범위 필터링 기능 추가
문제: 시작일/종료일 필터가 UI에만 존재하고 실제로 동작하지 않음
해결: Service → Repository로 날짜 파라미터 전달 및 쿼리 조건 추가
변경 파일:
src/main/kotlin/codel/member/infrastructure/MemberJpaRepository.ktsrc/main/kotlin/codel/member/business/MemberService.kt3. WITHDRAWN/PERSONALITY_COMPLETED 상태 필터 추가
문제: 탈퇴 회원 및 오픈프로필 작성 완료 회원을 필터링할 수 없음
해결: Backend 상태 집계 추가 및 Frontend UI 요소 추가
변경 파일:
src/main/kotlin/codel/admin/presentation/AdminController.ktsrc/main/resources/templates/memberList.htmlBackend 수정:
Frontend 추가 요소:
4. 질문 관리 페이지 필터 상태 유지
문제: 질문 수정/토글/삭제 후 필터가 초기화되어 반복 작업 시 불편
해결: 필터 파라미터를 hidden input으로 전달하고 리다이렉트 시 쿼리스트링에 포함
변경 파일:
src/main/kotlin/codel/admin/presentation/AdminController.ktsrc/main/resources/templates/questionList.htmlsrc/main/resources/templates/questionEditForm.htmlController 수정:
Template 수정:
5. 질문 관리 페이지 필터 선택 값 UI 표시
문제: 검색 후 선택한 필터가 select box에 표시되지 않아 현재 상태 확인 불가
원인: Controller가
param이라는 model attribute를 추가했으나 Thymeleaf 기본 객체param과 충돌해결: 명확한 이름(selectedKeyword, selectedCategory, selectedIsActive)으로 변경
변경 파일:
src/main/kotlin/codel/admin/presentation/AdminController.ktsrc/main/resources/templates/questionList.htmlController 수정:
Template 수정:
6. 회원 가입 시간 KST 표시 및 날짜 검색 KST 기준 동작
문제:
해결:
변경 파일:
src/main/resources/templates/memberList.htmlsrc/main/kotlin/codel/member/business/MemberService.ktTemplate 수정 (표시):
Service 수정 (검색):
동작 예시:
🔄 전체 변경 파일 목록
Backend (Kotlin)
src/main/kotlin/codel/member/infrastructure/MemberJpaRepository.kt- 이름 검색 및 날짜 필터 쿼리 수정src/main/kotlin/codel/member/business/MemberService.kt- KST→UTC 날짜 변환 로직 추가src/main/kotlin/codel/admin/presentation/AdminController.kt- 상태 집계 추가, 필터 파라미터 처리, model attribute 이름 수정Frontend (Thymeleaf)
src/main/resources/templates/memberList.html- WITHDRAWN/PERSONALITY_COMPLETED UI 추가, KST 시간 표시src/main/resources/templates/questionList.html- 필터 파라미터 전달, selectedX 사용src/main/resources/templates/questionEditForm.html- 필터 파라미터 hidden input 추가📊 커밋 구조
🎯 핵심 설계 결정
검색 정확도 우선
시간대 일관성 유지
필터 상태 유지
Thymeleaf 객체 충돌 회피
✅ 해결된 문제
📚 상세 문서
프로젝트 루트의
docs/work/adminPage/implementation-details.md에서 각 커밋별 상세 분석 확인 가능:질문 혹은 공유 사항 (Optional)
향후 개선 가능 사항
검색 기능 확장
페이지네이션 개선
시간대 설정 유연화
필터 프리셋 기능