Actions
개선 #783
완료됨[개선] 모니터링 생성 검색어 입력 UX 개선
개선 #783:
[개선] 모니터링 생성 검색어 입력 UX 개선
시작일:
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 결과를 일감 노트에 남긴다.
주연 장이(가) 약 14시간 전에 변경
구현 완료 및 검증 결과 공유합니다.
[구현]
- 검색어 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).
[릴리즈]
- main 직접 푸시가 실행 환경의 권한 게이트로 제한되어, 우선 피처 브랜치로 푸시했습니다.
- 브랜치: feature/783-search-term-ux
- 커밋: 6960f06ca83c3c1274834db4a1657f2803e1cf2b
https://ap-northeast-2.console.aws.amazon.com/codesuite/codecommit/repositories/haap_poc/commit/6960f06ca83c3c1274834db4a1657f2803e1cf2b?region=ap-northeast-2 - main 병합 완료가 확인되면 본 일감을 완료 처리하겠습니다.
주연 장이(가) 약 13시간 전에 변경
#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