이미지 클릭시 모달창 활성화 로직을 단계별로 정리하면 다음과 같습니다:
1. 모달 상태 관리
- useState 훅을 사용하여 selectedImage 상태 관리
- 현재 선택된 이미지 정보 저장
2. 모달 열기
- openModal 함수 구현
- URL 파라미터 업데이트 (query와 photoId)
- selectedImage 상태 설정
3. 모달 닫기
- closeModal 함수 구현
- photoId 제거 및 URL 업데이트
- selectedImage 상태를 null로 재설정
4. URL 변경 감지 및 상태 업데이트
- useEffect 훅을 사용하여 URL의 photoId 변경 감지
- photoId에 따라 selectedImage 상태 업데이트
5. 구현 방식의 차이
- setSearchParams vs navigate 함수 사용
- 브라우저 히스토리 관리 방식의 차이
- URL 파라미터 접근 방법의 차이