반응형

React, Vue 26

Next.js 13+ App Router ✅ Layout, Page, Loading, Metadata

기존 pages/ 라우터와 달리, App Router는 디렉터리 구조 자체가 라우팅 규칙이 됩니다.app/ 디렉토리 안의 폴더마다 페이지, 레이아웃, 로딩, 에러 처리, 메타데이터를 담당하는 파일이 존재하죠.🧩 1. App Router 기본 구조 app/ ├─ layout.tsx # 공통 레이아웃 ├─ page.tsx # 루트 페이지 ├─ loading.tsx # 로딩 상태 ├─ error.tsx # 에러 페이지 ├─ about/ │ ├─ page.tsx # /about │ ├─ layout.tsx # about 전용 레이아웃 │ ├─ loading.tsx # about 로딩 UI │ └─ error.ts..

React, Vue 2025.11.19

Next.js 렌더링 ✅ CSR, SSR, SSG, ISR 차이와 선택

React로 만든 SPA(Single Page Application)는 기본적으로 클라이언트 렌더링(CSR) 방식입니다.하지만 이 방식은 SEO, 초기 로딩 속도에서 한계가 있었죠.Next.js는 이런 단점을 보완하기 위해 다양한 렌더링 옵션을 제공합니다 👇💻 1. CSR (Client-Side Rendering)📌 렌더링 위치 → 브라우저(클라이언트)📌 예시 → 순수 React 앱 (create-react-app) function App() { const [data, setData] = useState(null); useEffect(() => { fetch("/api/data").then(res => res.json()).then(setData); }, []); return {dat..

React, Vue 2025.11.16

React 상태 관리 ✅ Context API, Redux, Zustand 언제 써야 할까?

React의 상태 관리는 프로젝트 규모와 요구사항에 따라 달라집니다.단순히 useState로 충분한 경우도 있지만, 전역 상태 관리가 필요해지면 선택지가 다양해집니다.이번 포스팅에서는 대표적인 세 가지 접근법을 살펴봅니다.🧩 1. Context APIReact 기본 제공 전역 상태 관리 도구✅ 특징React에 내장 → 별도 라이브러리 설치 불필요createContext + useContext 사용전역 상태를 Provider로 감싸서 하위 컴포넌트에서 접근 가능📌 예시 const ThemeContext = React.createContext();function App() { return ( );}function Toolbar() { const theme = React.us..

React, Vue 2025.10.29

React Router ✅ SPA에서 페이지 전환 구현하는 방법

기존의 웹사이트는 URL 변경 시 서버에서 새로운 페이지를 로드하는 방식이었습니다.하지만 SPA에서는 실제 HTML은 하나(index.html)만 존재하고,페이지 전환은 자바스크립트로 UI를 바꿔주는 방식으로 이루어집니다. 👉 이 과정을 쉽게 구현해주는 게 React Router입니다.⚙️ 1. React Router 설치 npm install react-router-dom 📌 2. 기본 구조 import { BrowserRouter, Routes, Route } from "react-router-dom";import Home from "./pages/Home";import About from "./pages/About";function App() { return ( ..

React, Vue 2025.10.27

React 컴포넌트 최적화 ✅ React.memo, useMemo, useCallback

리액트는 상태가 변경되면 관련된 컴포넌트를 다시 렌더링하는 방식으로 동작합니다.하지만 이 과정에서 필요 없는 컴포넌트까지 렌더링되면 성능 저하로 이어지죠.이를 방지하기 위해 메모이제이션(Memoization) 기법을 활용합니다.🧠 1. React.memo컴포넌트 자체를 메모이제이션하여 불필요한 리렌더링 방지 import React from "react";const Child = React.memo(({ value }) => { console.log("렌더링됨:", value); return {value};});export default Child;props가 바뀌지 않으면 다시 렌더링하지 않음PureComponent와 비슷한 개념📌 주의: props가 객체/배열일 경우 참조가 바뀌면 여전히 리렌더..

React, Vue 2025.10.22

React 초보 탈출! useState, useEffect로 컴포넌트 상태와 생명주기 완벽하게 다루기

React에서 컴포넌트의 상태를 관리하고,특정 시점에 동작을 처리하려면 **Hooks(훅)**를 사용해야 합니다.이번 포스팅에서는 그중에서도 가장 기초이면서 중요한 useState와 useEffect의원리와 활용법을 예제 중심으로 알아보겠습니다! 🔍🧠 1. useState란?useState는 컴포넌트 내에서 **상태(state)**를 생성하고 관리하는 Hook입니다. import { useState } from 'react';const Counter = () => { const [count, setCount] = useState(0); // 상태 생성 return ( setCount(count + 1)}> 클릭 횟수: {count} );}; 구성요소 설명 count현재..

React, Vue 2025.10.07

useDeferredValue – 입력 딜레이 줄이고 UX 개선하기

안녕하세요 😊React에서 검색 기능이나 필터링 기능을 만들다 보면, 입력할 때마다 화면이 순간적으로 버벅거리는 경험을 하신 적 있으실 겁니다.특히 데이터가 많거나 무거운 연산을 수행할 경우, 사용자가 타이핑하는 속도를 UI가 따라가지 못해 불편해질 수 있습니다. 이때 React가 제공하는 useDeferredValue Hook을 사용하면 문제를 쉽게 해결할 수 있습니다.📍 1. useDeferredValue란?useDeferredValue는 값 업데이트를 지연 처리하여, 사용자 인터랙션(입력)은 바로 반영되지만 무거운 연산은 조금 늦게 처리되도록 도와주는 Hook입니다.즉, UI 우선 / 연산 지연이라는 전략을 통해 UX를 개선합니다.📍 2. 기본 사용법 import { useState, useD..

React, Vue 2025.09.15

Suspense 제대로 쓰기 – 데이터 로딩 UX와 코드 스플리팅 동시 개선

안녕하세요 😊Suspense는 로딩 중 상태를 선언적으로 처리할 수 있도록 도와주는 React 기능입니다.두 가지 핵심 사용처는 ① 코드 스플리팅(React.lazy) ② 데이터 로딩 경계 처리입니다.1) 코드 스플리팅 기본 import React, { Suspense } from "react";const Chart = React.lazy(() => import("./Chart"));export default function Dashboard(){ return ( 차트 로딩 중…}> );}2) 데이터 로딩용 리소스 패턴(기초)간단 예시: Promise가 해결될 때까지 읽기를 “멈추는” 래퍼를 만들어 Suspense로 감쌉니다.// resource.jsexport functio..

React, Vue 2025.09.10

useImperativeHandle – 부모가 자식의 함수를 직접 호출하는 방법

안녕하세요 😊React에서 일반적으로 부모 → 자식으로 props를 내려주어 동작을 제어합니다.하지만 때때로 부모 컴포넌트가 자식 컴포넌트의 특정 함수나 값에 직접 접근해야 할 때가 있습니다.이럴 때 사용하는 Hook이 **useImperativeHandle**입니다.📍 1. 언제 필요한가?자식 컴포넌트를 외부 API처럼 동작시키고 싶을 때예: 부모에서 자식의 focus(), reset() 같은 메서드를 직접 호출Form, Modal, Canvas 컨트롤 등에서 자주 사용📍 2. 기본 문법useImperativeHandle(ref, createHandle, [deps]);ref: 부모로부터 전달받은 ref 객체createHandle: 부모가 접근할 수 있도록 노출할 속성과 메서드 정의deps: 의존..

React, Vue 2025.09.08

useMemo – 불필요한 연산 줄여 성능 최적화하기

안녕하세요 😊React 컴포넌트가 렌더링될 때,값을 계산하는 로직이 복잡하거나 무거우면 매번 연산이 반복되어 성능이 저하될 수 있습니다.이럴 때 useMemo Hook을 사용하면 필요할 때만 연산을 실행하고 결과를 재사용할 수 있습니다.📍 1. useMemo란?메모이제이션(Memoization) 기능을 제공하는 React Hook**의존성(dependencies)**이 변경될 때만 콜백 함수를 다시 실행복잡한 계산, 큰 데이터 변환, 필터링, 정렬 등에 유용문법const memoizedValue = useMemo(() => { // 계산 로직 return 결과값;}, [의존성]);📍 2. 기본 예제import React, { useMemo, useState } from "react";export..

React, Vue 2025.08.30
반응형