개발자
Nextjs마이그레이션 작업을 진행할려고하는데, 사실 막막한 부분이 여러가지가 있습니다. 첫번째는 CSS-in-JS인데 기존 react프로젝트의 styled-component로 제작되어 있는데, 제가 알기론 CSS-in-JS의경우 서버컴포넌트에선 현재 작동하지 않는걸로 아는데 보통 이럴경우 어떻게 진행하나요? 대체방안으로 따로 다른 CSS 라이브러리 등을 이용하는지 궁금합니다 두번째는 데이터 패치관련된 부분인데 Nextjs에서 fetchAPI 부분을 Nextjs에 맞게 캐시와 revalitate옵션을 제공해주는 형태로 제공해주는데, 기존에 프로젝트는 axios를 사용중인데 이것 또한 변경을 해야되는지 궁금하네요 현재 서버렌더링과 클라이언트 렌더링으로 나눠놓긴했는데 나누고보니 상당히 이슈가 많을걸로 예상되어 질문드립니다
답변 1
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 01월 03일
마이그레이션 과정은 정확히 어떤 해결책을 제공해야 할지는 상황에 따라 다릅니다. React 프로젝트를 Next.js로 마이그레이션하는 데 있어 당신의 질문에 대한 답변은 아래와 같습니다. 1. CSS-in-JS : styled-components는 서버 측 렌더링과 잘 호환됩니다. Next.js는 서버 사이드 렌더링의 목적으로 만들어진 프레임워크므로, styled-components를 계속 사용할 수 있습니다. Redering 방식에 따른 styled-components 설정 변경은 필요할 수도 있습니다. 예를 들어, _document.js 파일에서 작성한 컴포넌트가 모든 페이지에서 CSS를 추출하고 세팅하는 역할을 합니다. 2. 데이터 패칭: next.js 에서 `getServerSideProps` 또는 `getStaticProps` 함수를 사용해서 데이터 패칭을 할 수 있기 때문에 axios 사용은 문제가 되지 않아야 합니다. 이러한 함수는 서버사이드에서만 실행되며, 클라이언트 사이드에서는 실행되지 않습니다. fetchAPI와 axios 모두 데이터 패칭 목적으로 사용되므로 해당 작업을 수행하는데 문제가 없습니다. 서버와 클라이언트 렌더링 분리에 관한 이슈가 있다면, Next.js의 동적 라우팅 기능을 사용하여 페이지간의 네비게이션이나 데이터 패칭 로직을 조절해 볼 수 있습니다. 추가적으로, 각 렌더링 방식에 따른 데이터 패칭은 적절하게 분리하는 것이 좋습니다. 마이그레이션에는 대부분 전체 코드 베이스를 한 번에 변경하지 않고, 일관된 프로세스를 통해 점진적으로 이루어지므로, 당신의 새로운 Next.js 애플리케이션 작업을 계획할 때는 최대한 모듈화 및 재사용성을 고려하여 마이그레이션 해야 할 부분들을 세분화하는 것도 중요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!