[React] memo를 사용한 컴포넌트 최적화
·
TypeScript
소개React의 memo 함수는 컴포넌트의 불필요한 리렌더링을 방지하여 성능을 최적화하는 데 사용됩니다. 이번 글에서는 memo의 올바른 사용법과 실제 사례를 살펴보겠습니다.기본 사용법import { memo } from 'react';interface UserProfileProps { name: string; email: string;}const UserProfile = memo(function UserProfile({ name, email }: UserProfileProps) { return ( {name} {email} );});export default UserProfile;memo가 필요한 경우와 필요하지 않은 경우memo가 유용한 경우// 1. 큰 리스트..
[React Query] useMutation과 useQuery
·
TypeScript
소개React Query의 useQuery와 useMutation은 서버 상태 관리를 위한 핵심 훅입니다. 이번 글에서는 두 훅의 상세한 사용법과 실전 예제를 알아보겠습니다.설치# npmnpm install @tanstack/react-query# yarnyarn add @tanstack/react-query# pnpmpnpm add @tanstack/react-queryuseQuery 기본 사용법간단한 데이터 조회import { useQuery } from '@tanstack/react-query';// 사용자 조회 훅function useUser(userId: string) { return useQuery({ queryKey: ['user', userId], queryFn: () => f..
[React] Zustand로 배우는 간단하고 강력한 상태 관리
·
TypeScript
소개Zustand는 React를 위한 작고 빠른 상태 관리 라이브러리입니다. Redux의 복잡성을 줄이면서도 강력한 기능을 제공하는 Zustand의 사용법을 알아보겠습니다.설치# npmnpm install zustand# yarnyarn add zustand# pnpmpnpm add zustand기본적인 스토어 생성과 사용스토어 생성// stores/useCounterStore.tsimport { create } from 'zustand';interface CounterState { count: number; increment: () => void; decrement: () => void; reset: () => void;}const useCounterStore = create((set) => (..
[React Query] QueryClient : 효율적인 상태관리와 데이터 캐싱
·
TypeScript
소개React Query는 React 애플리케이션에서 서버 상태를 관리하기 위한 강력한 도구입니다. 이번 글에서는 QueryClient의 핵심 기능과 활용 방법을 자세히 알아보겠습니다.설치# npm을 사용하는 경우npm install @tanstack/react-query# yarn을 사용하는 경우yarn add @tanstack/react-query# pnpm을 사용하는 경우pnpm add @tanstack/react-queryQueryClient 기본 설정import { QueryClient } from '@tanstack/react-query';// 기본 QueryClient 생성const queryClient = new QueryClient({ defaultOptions: { queries..
자료구조 : deque, Queue, heapq
·
파이썬/Basic
소개Python에서 제공하는 자료구조인 collections.deque, queue.Queue, heapq의 특징과 활용법을 자세히 알아보겠습니다. 각 자료구조의 성능 특성과 적합한 사용 사례를 살펴보겠습니다.collections.dequedeque(double-ended queue)는 양쪽 끝에서 빠른 삽입과 삭제가 가능한 자료구조입니다.시간 복잡도연산시간 복잡도앞/뒤 삽입/삭제O(1)임의 접근O(n)길이 확인O(1)예시from collections import deque# 기본 사용법d = deque([1, 2, 3, 4, 5])d.append(6) # 오른쪽 끝에 추가d.appendleft(0) # 왼쪽 끝에 추가d.pop() # 오른쪽 끝에서 제거d.pople..
next()와 제너레이터 표현식
·
파이썬/Basic
소개Python의 next()와 제너레이터 표현식은 메모리 효율적인 데이터 처리를 위한 강력한 도구입니다. 이번 글에서는 이들의 사용법과 실제 활용 사례를 살펴보겠습니다.next() 함수 이해하기기본 사용법# 간단한 이터레이터 생성numbers = iter([1, 2, 3])# next() 사용first = next(numbers) # 1second = next(numbers) # 2third = next(numbers) # 3# StopIteration 예외 발생try: next(numbers) # StopIteration 발생except StopIteration: print("더 이상 요소가 없습니다")next()의 기본값 활용numbers = iter([1, 2, 3])# 기본값 ..
데이터 클래스 비교: dataclass vs Pydantic BaseModel
·
파이썬
소개Python에서 데이터를 구조화할 때 주로 사용되는 두 가지 방식인 dataclass와 Pydantic의 BaseModel에 대해 알아보겠습니다. 각각의 특징과 사용법, 그리고 언제 어떤 것을 사용해야 하는지 살펴보겠습니다.Dataclass기본 사용법from dataclasses import dataclassfrom typing import List, Optional@dataclassclass User: name: str age: int email: Optional[str] = None friends: List[str] = None# 사용 예시user = User(name="John", age=30)print(user.name) # "John"고급 기능 활용from datacl..
프론트엔드와 백엔드 간 Enum 동기화
·
TypeScript
소개프론트엔드와 백엔드에서 동일한 Enum을 사용해야 할 때, 이를 효과적으로 관리하고 동기화하는 것은 중요한 과제입니다. 이번 글에서는 FastAPI와 React 환경에서 Enum을 일관성 있게 관리하는 다양한 방법을 알아보겠습니다.1. OpenAPI Specification을 활용한 방법FastAPI 백엔드 설정# backend/enums.pyfrom enum import Enumclass UserRole(str, Enum): ADMIN = "ADMIN" USER = "USER" GUEST = "GUEST"# backend/models.pyfrom pydantic import BaseModelfrom .enums import UserRoleclass User(BaseModel): ..