nextjs
-
Compound Component 패턴 (feat. React, Next.js)React 2024. 9. 21. 13:55
Compound components는 React에서 더 표현력 있고 사용자 정의가 가능한 컴포넌트 API를 만들 수 있게 해주는 강력하고 유연한 패턴입니다.이 패턴은 특히 여러 관련 부분을 가진 복잡한 UI 컴포넌트를 구축할 때 유용합니다.이 개념에 대해 자세히 알아보고 Next.js에서 어떻게 구현할 수 있는지 살펴보겠습니다.Compound Components란 무엇인가?Compound components는 함께 작동하여 일관된 기능 단위를 형성하는 컴포넌트 그룹입니다.주요 아이디어는 공유 상태와 동작을 관리하는 부모 컴포넌트를 만들고, 자식 컴포넌트가 특정 부분의 렌더링을 처리하도록 하는 것입니다.Compound components 사용 시 주요 이점향상된 유연성과 사용자 정의 가능성관심사의 더 나은..
-
구조분해 사용 팁 4가지JS & TS 2024. 9. 14. 13:36
자바스크립트의 구조분해 할당(Destructuring)을 더 효율적으로 사용하는 4가지 실전 팁을 소개합니다.1. 기본값 할당하기구조분해를 사용할 때, 배열이나 객체에서 값이 없을 경우 undefined가 할당됩니다.이를 방지하기 위해 기본값을 설정할 수 있습니다.예를 들어, 배열이나 객체에서 값이 없는 경우 기본값을 할당할 수 있습니다.이 방법은 백엔드에서 불완전한 데이터를 받을 때 특히 유용합니다.const [a, b, c = 3] = [1, 2];console.log(c); // 3 (기본값)const {d, e, f = 6} = {d: 4, e: 5};console.log(f); // 6 (기본값)2. 나머지 연산자 사용배열이나 객체에서 필요한 부분만 추출하고, 나머지 값을 하나의 변수에 담을 ..
-
React에서 스크롤을 하단에 고정하는 방법(feat. css)Tip 2024. 9. 7. 14:22
채팅 등의 서비스를 만들 경우 스크롤을 하단에 고정해야 되는 경우가 있습니다.간단하게 스크롤을 하단에 고정하는 방법에 대한 구현에 대해 알아보겠습니다.1. React 사용import { useEffect, useRef } from 'react';const Chat = ({ messages }) => { const endOfMessagesRef = useRef(null); useEffect(() => { endOfMessagesRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); return ( {messages.map((msg, idx) => ( {msg} ))} )..
-
FSD 폴더 구조 소개 (feat. NextJS App Router, Pages)Tip 2024. 7. 27. 12:54
많은 프론트엔드 개발자의 고민은 폴더 구조일 것입니다.오늘은 Feature-Sliced Design(FSD)라는 요즘 가장 괜찮다고 생각하는 폴더 구조를 소개하겠습니다.FSD는 프론트엔드 애플리케이션을 구조화하기 위한 아키텍처적 방법론입니다.FSD의 주된 목표는 프로젝트를 이해하기 쉽고 변화하는 비즈니스 요구에 안정적으로 대응할 수 있도록 만드는 것입니다.FSD의 주요 개념1. 레이어(Layers)애플리케이션의 전반적인 구조를 구성하는 최상위 폴더입니다.주요 레이어는 다음과 같습니다.하위 요소는 상위 요소들을 Import 할 수 없습니다.(pages에서 widgets, entities, shared는 Import 해서 사용할 수 이 있지만 shared는 아무것도 Import 해서 가지고 올 수 없다.)*..
-
Next.js로 SEO 최적화하기Next.js 2024. 6. 26. 13:23
Next.js는 빠르고 SEO 친화적인 React 애플리케이션을 구축하기 위한 강력한 프레임워크입니다.서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG) 및 동적 라우팅과 같은 기능을 활용하면 사이트의 SEO 성능을 크게 향상할 수 있습니다.SEO 최적화를 위한 주요 기능1. 서버 사이드 렌더링(SSR)SSR은 페이지를 서버에서 렌더링 하여 검색 엔진에 사전 렌더링된 HTML을 제공합니다.이는 인덱싱을 개선하고 검색 엔진이 콘텐츠를 쉽게 이해하고 순위를 매길 수 있도록 합니다.export async function getServerSideProps() { // API에서 데이터 가져오기 const res = await fetch('https://api.example.com/data'); con..
-
Next.js 14버전 정리Next.js 2023. 11. 1. 16:18
Next.js 13 버전 이후로 호불호가 늘어나는 느낌이 강한 Next.js의 14 버전이 출시되었습니다. 14 버전은 13 버전 때처럼 엄청난 변화내용이라기보다는 13.5 버전의 뒤이은 13.6 버전에 가깝다는 느낌이 드는 업데이트였습니다. 1. Next.js 컴파일러: Turbocharged 이제부터 Next.js는 개발 환경에서 빠른 성능을 제공하기 위해 Rust 기반 컴파일러 'Turbopack'를 사용합니다. 이로 인해 개발 서버의 시작 속도가 최대 53.3% 향상되고 Fast Refresh를 통한 코드 업데이트 속도도 최대 94.7% 향상되었습니다. 이는 특히 큰 애플리케이션 및 모듈 그래프에서 빠른 성능 향상을 의미하며, 'next dev --turbo'를 사용하면 보다 빠르고 안정적인 성능..
-
Next.js Image 태그 height auto로 사용하기 (update 13 version)Next.js 2023. 8. 4. 16:11
이 글은 next v13.4를 기반으로 작성되었습니다. Next 12 버전을 기반으로 height auto Image태그를 작성한 지 오래되지 않아 13 버전에서는 더욱 간단하게 사용할 수 있게 되어 소개하려고 한다. // AutoHeightImage.tsx import Image, { ImageProps } from 'next/image'; interface IAutoHeightImage extends Omit { width?: string | number; alt: string; } const AutoHeightImage = ({ width = '100%', alt = '', ...props }: IAutoHeightImage) => ( ); export default AutoHeightImage; ..
-
NextJS Data Fetching (feat. CSR, SSR, SSG, ISR)Next.js 2022. 8. 29. 16:43
1. Data Fetching이란 SPA가 Web 세상에서 새로운 시대를 열었다는 것에 의문을 제시할 사람은 없을 것이다. 기존에 페이지를 이동할 때마다 새로고침이 되며 빈 화면을 봐야 했던 이용자들은 이제 로딩이 없는 것과 비슷한 환경에서 사이트를 사용할 수 있게 되었기 때문이다. 이는 확실히 획기적이었고 대다수의 웹사이트가 이제는 SPA로 되어있고 변화하고 있다. 하지만 SPA에도 치명적인 문제가 있었다. 웹사이트의 운영자들은 어떻게든 네이버나 구글 등의 검색 결과에 자신의 웹사이트가 노출되기를 원하는데 SPA의 경우 페이지를 모두 그린 뒤 데이터를 가지고 오는 CSR방식이 기본이기에 검색 사이트들의 Bot이 웹사이트에 접속했을 때 아무것도 없는 빈 페이지로 판별해 버렸기 때문이다. (물론 최근 구글..