프로젝트

일반

사용자정보

Actions

개선 #783

완료됨

[개선] 모니터링 생성 검색어 입력 UX 개선

개선 #783: [개선] 모니터링 생성 검색어 입력 UX 개선

주연 장이(가) 약 15시간 전에 추가함. 약 13시간 전에 수정됨.

상태:
완료
우선순위:
보통
담당자:
시작일:
2026/07/01
완료일:
2026/07/01
진척도:

100%

추정시간:

설명

h2. 배경

#746 후속 개선 요청이다. 모니터링 생성 화면의 기사 수집 검색어 입력칸에 신규 검색어를 입력했을 때 Autocomplete의 "일치하는 검색어가 없습니다" 영역이 표시되면서 "검색어 추가" 버튼을 가린다. 사용자는 신규 검색어 입력 후 버튼을 누르거나 Enter를 눌러 바로 검색어를 추가할 수 있어야 한다.

h2. 요구사항

  • 기사 수집 검색어 입력 중 일치하는 검색 결과가 없으면 "일치하는 검색어가 없습니다" 드롭다운/영역을 표시하지 않는다.
  • 신규 검색어 입력 후 Enter를 누르면 현재 "검색어 추가" 버튼과 동일하게 동작한다.
  • 이미 등록된 검색어와 일치하는 경우 Enter는 "기존 검색어 선택"과 동일하게 동작하고 중복 생성 API 호출을 하지 않는다.
  • 공백 입력, 추가 중 상태, API 실패 시 기존 방어 로직과 상태 메시지를 유지한다.
  • Enter 입력이 전체 모니터링 저장 또는 의도하지 않은 폼 제출로 이어지지 않게 한다.
  • 기존 후보 검색, 체크 선택, "검색 결과 전체 선택", "전체 해제" 동작은 깨지지 않아야 한다.

h2. 관련 파일

  • codes/app/web-front/src/page/monitor/MonitoringCreatePage.tsx
  • codes/app/web-front/src/page/monitor/monitoringSearchTermUtils.ts
  • codes/app/web-front/src/page/monitor/monitoringSearchTermUtils.test.ts

h2. 완료 기준

  • 신규 검색어 입력 시 검색 결과가 0건이면 no-options 영역이 뜨지 않아 "검색어 추가" 버튼이 가려지지 않는다.
  • 신규 검색어 입력 후 Enter로 검색어가 추가되고 즉시 선택된다.
  • 기존 검색어 입력 후 Enter로 기존 검색어가 선택되며 중복 upsert가 발생하지 않는다.
  • 관련 테스트를 보강하고 web-front 테스트가 통과한다.
  • 필요 시 수동 QA 결과를 일감 노트에 남긴다.

주연 장이(가) 약 15시간 전에 변경 Actions #1

  • 상태을(를) 신규에서 진행(으)로 변경되었습니다.
  • 담당자을(를) 주연 장(으)로 지정되었습니다.

작업을 시작합니다. 진행 순서는 계획 수립, 계획 검토, 구현, 정리/최적화 후보 식별, 교차 검증, 검증된 항목 반영, 릴리즈 및 완료 처리입니다.

주연 장이(가) 약 14시간 전에 변경 Actions #2

구현 완료 및 검증 결과 공유합니다.

[구현]

  • 검색어 Autocomplete open을 제어 상태(searchTermMenuOpen)로 전환하고 매칭 옵션 1개 이상일 때만 팝업을 열도록 하여, 매칭 0건(신규 입력) 시 "일치하는 검색어가 없습니다" no-options 패널이 뜨지 않아 "검색어 추가" 버튼이 가려지지 않도록 함.
  • 입력창 Enter 처리 추가(preventDefault·stopPropagation 후 기존 handleAddSearchTerm 호출): 신규 검색어는 upsert_search_term로 생성, 기존과 정확히 일치하면 중복 API 없이 기존 검색어 선택. 공백·추가중·API 실패 방어 로직과 상태 메시지, 폼 미제출 유지.
  • 정확 일치 판별 로직을 순수 헬퍼 resolveActiveSearchTermDuplicate로 추출하고 단위 테스트 보강(정규화/부분일치/빈입력).
  • open 제어로 도달 불가가 된 검색어 Autocomplete의 noOptionsText prop 정리(교차검증으로 dead 확인, 수신자 Autocomplete의 noOptionsText는 유지).

[검증]

  • web-front 테스트 26개 통과(신규 헬퍼 테스트 포함).
  • 프로덕션 빌드 정상 컴파일(변경 파일에서 신규 경고 없음).
  • git diff --check 이상 없음.
  • 정리/최적화 후보 교차검증(3개 독립 에이전트: 정리/최적화/회귀): noOptionsText 제거만 유효한 정리로 확인, 그 외 diff는 최소·적정으로 판정. 요구사항 1~6 모두 충족(PASS).

[릴리즈]

주연 장이(가) 약 13시간 전에 변경 Actions #3

  • 완료일을(를) 2026/07/01(으)로 지정되었습니다.
  • 상태을(를) 진행에서 완료(으)로 변경되었습니다.
  • 진척도을(를) 0에서 100(으)로 변경되었습니다.

주연 장이(가) 약 13시간 전에 변경 Actions #4

#783 구현 완료 확인 후 완료 처리했습니다.

main 반영: 커밋 6960f06 (#783 모니터링 생성 검색어 입력 UX 개선)이 origin/main에 병합되었습니다(병합 커밋 7d68d4b).
https://ap-northeast-2.console.aws.amazon.com/codesuite/codecommit/repositories/haap_poc/commit/6960f06ca83c3c1274834db4a1657f2803e1cf2b?region=ap-northeast-2

검증(독립 재확인): web-front 테스트 4 suites / 26 tests 통과(신규 resolveActiveSearchTermDuplicate 단위 테스트 포함), 요구사항 1~6 및 완료 기준 모두 충족, 하위/관련/차단 이슈 없음.

Actions

내보내기 PDF Atom