ce583d9706c20d6b5b2537a33584359730a3f010
## 문제 상황
VoiceInputOverlay에서 listening 모드로 음성 인식 후 새로운 데이터가 도착할 때,
VoiceInputOverlay의 포커스 복원 로직과 SearchPanel의 통합 포커스 로직이 충돌하여
첫 번째 아이템으로 포커스가 이동하지 않는 문제 발생
## 해결 방법
### 1. VoiceInputOverlay - 명시적 데이터 확인 추가
- shopperHouseData prop 추가
- 포커스 복원 로직에서 음성 검색 결과 데이터 유무를 명시적으로 확인
- 데이터가 있으면 포커스 복원하지 않고 SearchPanel에 위임
### 2. SearchPanel - 우선순위 시나리오 타이밍 단축
- NEW_SEARCH_LOADED 시나리오의 포커스 타이밍을 100ms → 50ms로 단축
- VoiceInputOverlay의 포커스 복원(100ms)보다 먼저 실행되어 우선권 확보
- 타이밍 이슈로 인한 경쟁 상태(Race Condition) 방지
## 변경 파일
- VoiceInputOverlay.jsx: shopperHouseData prop 추가 및 포커스 복원 조건 개선
- SearchPanel.new.v2.jsx: shopperHouseData prop 전달 및 포커스 타이밍 최적화
## 테스트 시나리오
1. 음성 검색 실행 (listening 모드)
2. 음성 인식 완료 및 API 응답 수신
3. VoiceInputOverlay 닫힘
4. ✅ 첫 번째 검색 결과 아이템으로 포커스 이동 확인
code
@ c2ac8e3c01
ShopTime
LG ShopTime Project
브랜치 관리 전략
프로젝트는 다음과 같은 브랜치 구조로 관리됩니다:
주요 브랜치
-
main- 최종 릴리즈 및 검증이 완료된 소스 코드 보관
- 매주 목요일: QA 브랜치에서 검증 완료된 코드를 main으로 병합
-
qa- 2차 테스트 및 최종 릴리즈 검증용 브랜치
- 매주 화요일: 배포 진행
- 매주 수요일: 검증 진행
-
qa2- 1차 테스트용(qa2 배포) 소스 코드 보관
- LG 깃 레포지토리의 QA2 브랜치와 동기화 필수
-
develop- 고도화 작업 및 유지보수팀 코드 통합 브랜치
- 기능 개발 완료 후 코드 리뷰를 거쳐 해당 브랜치로 병합
작업용 브랜치
-
hotfix- 유지보수팀 전용 브랜치
- 수정 완료 후 develop 브랜치로 병합
-
feat/name_v2- 고도화 작업팀 전용 브랜치
- 기능별로 별도 브랜치 생성 필요
- 예:
feat/home_v2,feat/search_v2 - 작업 완료 후 develop 브랜치로 병합
배포 프로세스
-
화요일
- QA 브랜치 배포
- QA2 → QA 브랜치 병합
-
수요일
- QA 브랜치 검증 진행
-
목요일
- QA → Main 브랜치 병합
- Main 브랜치 릴리즈
- 배포에 대한 자세한 설명은 배포 가이드를 참고해주세요.
커밋 메시지 컨벤션
고도화 작업
- [branch name]Type : 작업내용
- git commit -m "[home]feat : 선택약관 동의시 배너 나타남"
유지보수 작업
- [jira task Number]Type : 작업내용
- git commit -m "[SHOPTIME-4020]fix : pdf open test"
Type
feat: 새로운 기능 추가fix: 버그 수정docs: 문서 수정style: 코드 포맷팅refactor: 코드 리팩토링test: 테스트 코드chore: 빌드 업무 수정
긴급 배포 프로세스
-
긴급 수정 사항 발생 시
hotfix브랜치에서 작업- 담당 PM 및 리드 개발자 승인 필수
-
긴급 배포 승인 시
hotfix→qa2병합- QA2 검증 진행
- 검증 완료 후
qa→main순차적 배포
-
배포 후 조치
- 긴급 배포 내역 문서화
- 재발 방지 대책 수립
develop브랜치에도 수정사항 반영
Description
Languages
JavaScript
83.3%
Less
16.7%