🔍 문제 현상

🧪 원인 분석

1. 모달 생명주기와 상태 관리 충돌

2. useEffect의 cleanup 함수 문제

useEffect(() => {
  if (isOpen && cardId) {
    openCommonModal({ ... });
  } else {
    closeCommonModal();
  }

  // 컴포넌트 언마운트 시 모달 닫기
  return () => {
    if (isOpen) {  // 이 조건이 문제!
      closeCommonModal();
      close();
    }
  };
}, [...]);

3. 상태 동기화 부재

💡 해결 방법

1. 모달 초기화 상태 추적

const [modalInitialized, setModalInitialized] = useState(false);

2. 조건부 모달 관리 로직 개선

// cardId가 없거나 isOpen이 false면 모달 처리하지 않음
if (!isOpen) {
  if (modalInitialized) {
    closeCommonModal();
    setModalInitialized(false);
  }
  return;
}

// cardId가 있고 isOpen이 true인 경우만 모달 처리
if (cardId && isOpen) {
  openCommonModal({ ... });
  setModalInitialized(true);
}