목록 보기
문제 해결을 넘어 - 문제의 근본적인 원인 찾아가기 Part 1
프론트엔드

문제 해결을 넘어 - 문제의 근본적인 원인 찾아가기 Part 1

두줄요약

CORS 에러와 정주행 모드 초기화 문제를 CSS 로딩 방식 변경으로 해결했습니다.\nSSR·ES Module·Dynamic Import의 displayName 손실까지 추적해 근본 원인을 분석했습니다.

문제 상황

  • 정주행 모드 활성화 후 이전·다음 화 이동 시 Redux 옵션이 OFF로 초기화되는 현상
  • CDN의 swiper/css 로딩 중 CORS 에러 동반, 캐시 미사용·로컬 서버 환경에서는 미발생

원인 분석

  • 컴포넌트 내부의 클라이언트 조건부 require("swiper/css") 방식과 연관된 CORS 에러
  • SSR 환경에서 ES Module 전용 swiper/react를 CommonJS require로 변환하려는 충돌
  • Dynamic Import의 Loadable Component 래핑 과정에서 SwiperSlide의 displayName 손실

해결 방법

  • swiper/css를 전역 _app.tsx에서 일반 import로 로드해 CORS 에러와 옵션 초기화 해소
  • swiper/react는 기존 클라이언트 조건부 로딩 유지, Dynamic Import 적용 시 displayName 직접 설정
  • transpilePackages로 swiper, ssr-window, dom7을 트랜스파일하는 대안 제시

주의할 점

  • 동작하는 복잡한 코드에도 SSR 모듈 호환성 같은 구현 의도 존재 가능성
  • Dynamic Import 도입 시 라이브러리의 컴포넌트 식별 방식과 래핑 후 속성 보존 여부 점검

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#Next.js 주제를 이어서 읽기

문제 해결을 넘어 - 문제의 근본적인 원인 찾아가기 Part 1

정주행 모드 초기화와 CORS 에러를 함께 겪은 문제를 재현 조건과 코드 구조를 따라가며 분석했습니다.\n조건부 require를 전역 import로 단순화해 증상을 해결하고 원인 추적의 방향을 잡았습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...