목차


이슈 #1: SWR과 Redux 간 데이터 동기화 문제

1. 이슈 상황

항목 내용
발생 환경 블로그 검색 결과를 다른 페이지에서 사용할 때
증상 SWR로 패칭한 데이터가 다른 컴포넌트에서 접근 불가
영향 범위 검색 결과 페이지, 블로그 상세 페이지

문제 상황:

// SearchBar.tsx에서 SWR로 검색
const { data: blogPostsSearch } = useSWR(categoryApi, fetcher);

// DetailPoster.tsx에서 데이터 접근 불가
// SWR 캐시는 동일 키로 호출해야만 공유됨

2. 해결 방안 후보

방안 장점 단점
A. SWR 키 통일 SWR 캐시 자동 공유 검색 조건이 다르면 캐시 미스
B. Redux로 동기화 전역에서 접근 가능, 검색 조건 무관 추가 dispatch 필요
C. Context API Redux 없이 전역 상태 이미 Redux 사용 중, 혼용 복잡

3. 선택한 해결법

선택: B안 (Redux로 동기화)

// SearchBar.tsx
useEffect(() => {
  if (blogPostsSearch && blogPostsSearch["body"]) {
    dispatch(postsAction({ data: blogPostsSearch.body }));
    navigate("/page");
  }
}, [blogPostsSearch, dispatch, navigate]);

// DetailPoster.tsx
const { posts } = useSelector((state: Rootstate) => state.posts);
const detailPosts = posts.filter((v: TPosts) => v.idx === Number(postId));

4. 선택 이유

관점 이유
일관성 이미 Redux를 사용 중이므로 상태 관리 일원화
유연성 검색 조건과 무관하게 전역 접근 가능
디버깅 Redux DevTools로 상태 변화 추적 용이

이슈 #2: 반응형 네비게이션 메뉴 토글 상태 관리

1. 이슈 상황

항목 내용
발생 환경 모바일에서 메뉴 열고 페이지 이동 시
증상 페이지 이동 후에도 메뉴가 열린 상태로 유지
영향 범위 모바일 사용자 경험

2. 해결 방안 후보

방안 장점 단점
A. useEffect로 라우트 변경 감지 자동 닫힘 추가 의존성 필요
B. Link 클릭 시 수동 닫기 명시적 제어 모든 Link에 핸들러 추가 필요
C. Navigation 외부 클릭 감지 직관적 UX 복잡한 이벤트 처리