SW Maestro 프로젝트 기술 스택 선정 - 1

kingyong9169·2022년 6월 29일
0

SW Maestro

목록 보기
1/4
post-thumbnail

React vs Next.js

  • React는 "사용자 인터페이스를 구축하기 위한 Javascript 라이브러리"
  • Next.js는 React용 프로덕션 프레임워크

React의 장단점

장점

  1. 손쉬운 코딩 - React는 부분적으로 개발자가 적은 코드와 친숙한 언어를 사용하여 동적 응용 프로그램을 만들 수 있게 해주는 Javascript 사용 덕분에 웹 응용 프로그램 개발을 쉽게 만들었습니다.
  2. 커뮤니티 - 강력한 커뮤니티에서 사용할 수 있는 많은 학습 및 생산 리소스가 있습니다.
  3. 컴포넌트 - 컴포넌트는 재사용이 가능하므로 특성을 유지하면서 다른 페이지에 반복적으로 로드할 수 있습니다. 컴포넌트 코드를 편집하면 변경 사항이 모든 페이지에 표시됩니다.
  4. 사용자 정의 - 라이브러리로서 Redux와 같은 다른 도구를 추가하여 확장할 수 있는 기능 세트가 있습니다.

단점

  1. 시작점입니다 . React는 사용자 인터페이스 개발에 특화된 라이브러리이므로 잠재력을 최대한 발휘하려면 다른 도구가 필요합니다.

  2. 구식 문서 - 개발 주기가 너무 짧아서 사용 가능한 문서가 빨리 구식이 됩니다. 강력한 커뮤니티는 모든 질문이나 의심에 신속하게 답변하지만 그 기능에 대한 지속적인 재학습을 의미하기도 합니다.

Next.js

Next.js는 React 위에 사용되어 기능을 확장하고 개발 프로세스를 간소화합니다. React는 Next.js와 함께 작동할 필요가 없지만 Next.js는 React를 사용하여 앱을 배포합니다. Next.js는 서버 측 렌더링 앱을 빌드하는 React 기반 프레임워크입니다 . React는 여전히 앱의 기초이지만 구조와 탐색 메커니즘(아키텍처)은 Next.js에 의해 정의됩니다.

Next.js는 CRA와 접근 방식이 다릅니다 . Next.js는 렌더링 측면을 서버로 이동하므로 클라이언트가 해당 정보를 처리할 필요가 없습니다. 이렇게 하면 서버가 페이지를 미리 렌더링한 다음 최종 HTML을 클라이언트에 전송하므로 JS가 최소화되므로, 즉 로드할 코드가 줄어들 기 때문에 성능과 SEO가 향상됩니다. 사용자는 더 빠른 웹사이트를 기대할 수 있을 뿐만 아니라 크롤러도 웹사이트를 더 쉽게 보고 그에 따라 색인을 생성할 수 있습니다.

사전 렌더링에는 SG 및 서버 측 렌더링(SSR)의 두 가지 접근 방식이 있습니다. SG은 항상 최고의 성능을 발휘할 것입니다. 사전 렌더링은 페이지가 빌드 시 생성된 다음 모든 요청에 대해 재사용됨을 의미합니다. 실제로 정적 페이지는 일반적으로 CDN(콘텐츠 전송 네트워크)을 통해 제공되므로 매우 빠릅니다.

SSR은 자주 업데이트되는 동적 데이터를 표시하는 것과 같은 특정 상황에서 선호됩니다. 페이지는 각 요청에 대해 생성된 다음 클라이언트로 전송됩니다.

SSR은 여전히 클라이언트 렌더링 앱보다 우수하지만 정적 생성에 비해 성능이 낮기 때문에 정적 생성보다 SSR을 사용해야 하는 경우를 아는 것이 중요합니다. 그렇지 않으면 NextJS의 이점을 얻을 수 없기 때문입니다.

Next.js는 또한 폴더 시스템을 사용하여 번거롭지 않은 복잡한 구조를 허용하여 프로세스를 보다 직관적이고 간단하게 만듭니다. 반면에 CRA는 라우팅에 대해 걱정하지 않는 한 즉시 사용 가능한 단일 페이지 애플리케이션을 빌드합니다. CRA와 NextJS의 주요 차이점은 NextJS는 서버에서 실행되는 반면 CRA는 클라이언트의 브라우저에서 실행되기 때문에 코드가 크게 변경된다는 것입니다.

Next.js의 장점

  1. 코딩하기 쉽습니다. React 자체 및 React와 함께 작동하는 다른 프레임워크에 비해 Next.js는 코드가 덜 필요합니다. 개발자는 페이지를 만들고 헤더의 구성 요소에 연결하기만 하면 됩니다. 즉, 코드가 적고 가독성이 향상되며 프로젝트 관리가 향상됩니다.

  2. 속도 - Next.js로 구축된 응용 프로그램은 서버 측 렌더링 및 정적 생성으로 인해 속도가 빨라 데이터를 더 스마트하게 처리할 수 있습니다. 서버 측 렌더링은 서버가 요청을 처리하는 만큼만 빠릅니다. 정적 생성은 CDN에서 제공할 수 있으므로 빠릅니다. 기본 이미지 최적화 기능도 성능을 향상시킵니다.

  3. 빠른 렌더링 - 페이지를 새로 고치면 파일에 대한 모든 변경 사항이 즉시 표시됩니다. 구성 요소는 그 자리에서 렌더링되므로 수정 사항이 발생할 때 쉽게 따라갈 수 있습니다.

  4. 내장 CSS - Next.Js를 사용하면 JavaScript 파일에서 CSS 스타일을 가져와 인라인으로 사용하여 더 빠른 렌더링을 할 수 있습니다.

  5. 더 나은 이미지 최적화 - WebP와 같은 최상의 최신 형식을 사용하여 이미지의 크기가 조정되고 제공되며(새로운 형식에 대한 개방성을 유지하면서) 사진은 더 작은 뷰포트에 맞게 구성됩니다.

  6. SEO - 더 나은 SEO를 찾는 사람들을 위해 각 페이지의 제목과 키워드를 쉽게 만들 수 있습니다. 추천 헤드 구성 요소를 사용하여 모든 페이지에 배치하기만 하면 됩니다.

  7. 손쉬운 사용자 정의 및 배포 - Next.js는 Babel과 같은 플러그인을 사용하여 사용자 정의가 가능합니다. 배포는 설계상 매우 간단하고 직관적이므로 애플리케이션을 빠르게 시작할 수 있습니다.

  8. API 지원 - 타사 API는 프로젝트 가능성을 확장할 수 있으며 Next.js는 해당 API에 쉽게 연결하여 고유한 API 경로를 생성하는 데 도움을 줍니다.

Next.js의 단점

  1. 라우팅 - Next.js 라우팅 시스템은 기본적으로 파일 시스템이며 일부 프로젝트의 경우 충분하지 않습니다. Node.js는 동적 경로를 생성하기 위해 들고 있어야 하는 도구이므로 개발자는 이를 사용하는 데 능숙해야 합니다.

  2. 커뮤니티 - Next.js가 웹에서 가장 많이 사용되는 빌딩 블록 중 하나가 되면서 작지만 날로 성장하고 있습니다. React나 다른 프레임워크에 비해 Next.js 전문가는 적지만 확실히 새로운 것은 아닙니다. 인재 풀과 Next.js에 정통한 개발자의 필요성이 증가하고 있으며 이는 현대 애플리케이션 개발에서 두각을 나타내려는 사람들에게 기회로 해석됩니다.

결론

Next.js를 사용

  • 더 나은 SEO: 우리 팀이 개발하고자 하는 서비스는 C2C 커머스 형태로 사용자들이 웹사이트를 찾기 쉽도록 더 나은 SEO가 필요합니다.
  • 속도: 서버 사이드에서 AI 데이터플로우 구조를 갖고 있어 로딩하는데 적지 않은 시간이 걸릴 수도 있겠다는 생각입니다. 그래서 어느 정도 더 빠른 렌더링이 필요합니다.
  • 이미지 최적화 기능: 이미지가 많은 우리 서비스의 특석상 이미지 최적화를 하는 것이 좋은데 Next.js에서 이 기능을 제공해주므로 개발의 효율성을 향상할 수 있습니다.
profile
Detail makes difference.

0개의 댓글