TypeScript
Node-Cache : 서버 성능 최적화
Node-Cache는 Node.js 애플리케이션에서 메모리 캐싱을 구현할 수 있게 해주는 간단하고 강력한 모듈입니다. 데이터베이스 쿼리 결과나 API 응답을 캐싱하여 애플리케이션의 성능을 향상시킬 수 있습니다.기본 설치 및 설정const NodeCache = require('node-cache');// 기본 캐시 인스턴스 생성const cache = new NodeCache({ stdTTL: 600, // 기본 TTL 10분 checkperiod: 120 // 만료된 항목 점검 주기 2분});기본적인 캐시 사용법// 데이터 저장cache.set('user:123', { name: 'John', age: 30 });// 데이터 조회const data = cache.get('user:123');/..
React : map
React에서 map은 배열의 각 요소를 순회하며 새로운 JSX 요소를 생성하는 데 사용되는 필수적인 메서드입니다. 이를 통해 반복적인 UI 요소를 효율적으로 렌더링할 수 있습니다.기본적인 map 사용법const numbers = [1, 2, 3, 4, 5];function NumberList() { return ( {numbers.map(number => ( {number} ))} );}객체 배열 다루기const users = [ { id: 1, name: 'John', email: 'john@example.com' }, { id: 2, name: 'Jane', email: 'jane@e..
React useEffect 의존성 경고
더보기React Hook useEffect has a missing dependency: ''. Either include it or remove the dependency arrayReact의 useEffect Hook을 사용할 때 자주 마주치는 경고 메시지에 대해 알아보고, 이를 올바르게 해결하는 방법을 살펴보겠습니다.경고가 발생하는 일반적인 상황const [data, setData] = useState([]);const fetchData = async () => { const response = await api.getData(); setData(response.data);};// 경고 발생: fetchData가 의존성 배열에 없음useEffect(() => { fetchData()..
Nginx 413 Request Entity Too Large 오류 해결
** 가이드**413 오류는 클라이언트가 업로드하는 파일이나 요청 데이터가 Nginx에서 설정된 최대 허용 크기를 초과할 때 발생합니다. 이 문제를 효과적으로 해결하는 방법을 알아보겠습니다.오류의 주요 원인파일 업로드 크기 제한 초과POST 요청 데이터 크기 제한 초과클라이언트 요청 본문 버퍼 크기 제한Nginx 설정 수정하기http { # 클라이언트 요청 본문 최대 크기 설정 client_max_body_size 100M; # 클라이언트 요청 본문 버퍼 크기 client_body_buffer_size 128k; server { # 특정 위치에 대한 설정 location /upload { # 이 위치에 대한 특별한 크기 제한 ..
Enum을 넘어서 - const assertions의 장점과 Tree-shaking
Enum의 기본 개념과 한계TypeScript에서 Enum은 관련된 상수들을 그룹화하는 방법을 제공합니다.// 기본적인 Enum 사용enum UserRole { ADMIN = 'ADMIN', USER = 'USER', GUEST = 'GUEST'}// 사용 예시function checkAccess(role: UserRole) { if (role === UserRole.ADMIN) { return true; } return false;}하지만 Enum은 몇 가지 중요한 한계가 있습니다:Tree-shaking이 불가능컴파일 후 추가적인 런타임 코드 생성번들 크기 증가Tree-shaking이란?Tree-shaking은 사용하지 않는 코드를 제거하는 최적화 과정입니다..
[REST API] RESTful API 설계 가이드
REST API는 현대 웹 서비스 개발에서 가장 널리 사용되는 아키텍처 스타일입니다. 이 글에서는 REST API의 핵심 개념부터 실제 설계 방법까지 상세히 다뤄보겠습니다.REST API의 기본 원칙REST(Representational State Transfer)는 다음 6가지 기본 원칙을 따릅니다:Uniform InterfaceStatelessCacheableClient-Server 구조Layered SystemCode on Demand (선택사항)RESTful한 URI 설계하기REST API에서 가장 중요한 것은 리소스를 어떻게 정의하고 표현하느냐입니다. 다음은 실제 프로젝트에서 자주 사용되는 URI 설계 예시입니다.# 좋은 URI 설계 예시GET /users # 사용자..
[HTTP Header 다루기] fetch API의 Headers 인터페이스
소개HTTP 요청 시 헤더를 다루는 두 가지 주요 방법 - 직접 객체로 전달하는 방법과 Headers 인터페이스를 사용하는 방법에 대해 자세히 알아보겠습니다.1. 기본적인 헤더 설정// 단순 객체로 헤더 전달const fetchData = async (url: string) => { try { const response = await fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', } }); return await response.json(); } catch (error) { console...
[JavaScript] 문자열 검색과 비교
소개JavaScript에서 문자열을 다루는 다양한 메서드들, 특히 문자열 검색과 비교에 사용되는 메서드들을 자세히 알아보고, 각 메서드의 사용법과 차이점을 살펴보겠습니다.기본 문자열 검색 메서드1. indexOf문자열 내에서 특정 문자열의 첫 번째 등장 위치를 찾습니다.const text = "Hello, World!";console.log(text.indexOf("World")); // 7console.log(text.indexOf("world")); // -1 (대소문자 구분)console.log(text.indexOf("o")); // 4console.log(text.indexOf("o", 5)); // 7 (시작 위치 지정)// 실전 활용const hasWor..