Skip to content

물품·회원 검색에 검색어 이스케이프와 정리 방식 통일 #162

Closed

Description

@jjunh33

어떤 기능인가요?

추가하려는 기능에 대해 간결하게 설명해주세요

검색 기능이 LikePatterns(검색어 %·_ 이스케이프)를 쓰는 곳은 공지뿐이고, 물품 검색과 회비 목록의 이름·학번 검색(회원 ID 조회)은 각자 다르게 구현되어 있다. 검색어 처리를 공지와 같은 방식으로 통일한다.

  • 회비 목록의 이름·학번 검색(관리자 회비 확인 요청 목록, 내부 조회 MemberService.searchIdsByKeyword): LIKE CONCAT('%', :keyword, '%')를 이스케이프 없이 써서 %만 입력해도 모든 회원이 검색된다(버그). 앞뒤 공백도 정리하지 않는다.
  • 물품 검색(학생 물품 목록): LOCATE로 구현되어 결과는 올바르지만 공지와 방식이 다르다.
  • 검색어 정리(공백뿐이면 검색 없음, 앞뒤 공백 제거): 공지는 서비스, 물품은 요청 파라미터, 회원은 UseCase로 제각각이다. 이스케이프와 함께 LikePatterns.escape에서 한 번에 처리하도록 통일한다.

📝 작업 상세 내용

  • 회원 ID 조회(searchIdsByKeyword) 쿼리에 ESCAPE '!'를 붙이고 MemberRepositoryImpl에서 LikePatterns.escape를 적용한다
  • 물품 검색 쿼리를 LIKE CONCAT('%', :keyword, '%') ESCAPE '!'로 바꾸고 ItemRepositoryImpl에서 LikePatterns.escape를 적용한다
  • 검색어 정리(공백뿐이면 null, strip)를 LikePatterns.escape가 맡도록 통일한다 (서비스는 검색어를 가공하지 않는다)
  • 물품 ItemListParams.toKeyword()와 서비스의 정리 로직을 제거한다

📁 참고 자료 (선택)

Activity

  1. added a commit that references this issue on Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions