TypeScript로 프로젝트를 진행하다 보면, 연관된 상수 값들을 그룹화해야 하는 상황을 자주 마주하게 됩니다. 이때 가장 먼저 떠오르는 도구는 Enum입니다. 하지만 최근에는 const 객체와 as const 단언을 사용하는 방식이 더 선호되기도 합니다.오늘은 이 두 방식의 차이점을 **성능(번들 사이즈, 트리 쉐이킹)**과 가독성(개발자 경험) 측면에서 심층 비교해 보겠습니다.1. TypeScript 열거형 (Enum)Enum은 관련된 상수들의 집합을 정의할 때 사용하는 TypeScript만의 고유한 문법입니다.코드 예제enum UserRole { Admin = 'ADMIN', Editor = 'EDITOR', Viewer = 'VIEWER'}function checkAccess(role: U..
타입스크립트(TypeScript)에서 가장 중요한 개념 중 하나인 '타입 가드(Type Guard)'에 대한 블로그 게시글을 작성해 드립니다. 이 글은 typeof, instanceof, 그리고 사용자 정의 타입 가드인 is를 중심으로 풍부한 예제와 함께 구성되었습니다.코드 스니펫 # 타입 가드(Type Guard): typeof, instanceof, is를 활용한 안전한 타입 좁히기타입스크립트를 사용하다 보면 유니온 타입(Union Type)을 자주 접하게 됩니다. 여러 타입을 허용함으로써 유연성을 얻지만, 특정 타입에만 존재하는 속성이나 메서드에 접근하려고 할 때 컴파일러가 경고를 보냅니다. 이때 필요한 것이 바로 **'타입 좁히기(Type Narrowing)'**이며, 이를 가능하게 하는 도구가 ..
타입스크립트(TypeScript)를 단순한 '타입 검사기'를 넘어 '설계 도구'로 활용하게 해주는 핵심 기능이 바로 유니온(Union)과 인터섹션(Intersection)입니다. 이 두 개념을 이해하면 정적인 타입 시스템 안에서도 놀라울 만큼 유연하고 확장성 있는 아키텍처를 구축할 수 있습니다.본 포스팅에서는 실무에서 바로 활용할 수 있는 풍부한 예제와 함께 유니온과 인터섹션의 개념을 깊이 있게 살펴보겠습니다.1. 유니온 타입 (Union Types): "또는 (OR)"유니온 타입은 값의 타입을 여러 개 중 하나로 허용하고 싶을 때 사용합니다. 세로 바($|$) 기호를 사용하여 정의하며, 집합론적으로는 합집합의 개념입니다.실무 예제: 다중 상태 관리API 요청의 상태를 정의할 때 유니온 타입은 빛을 발합..
개발을 하다 보면 "다양한 타입을 수용하면서도, 타입의 안전성을 잃지 않는 방법은 없을까?"라는 고민에 빠지게 됩니다. 이때 우리를 구원해 줄 핵심 기술이 바로 **제네릭(Generics)**입니다.오늘은 자바스크립트(TypeScript 기준)나 자바 등 현대 프로그래밍 언어에서 필수적인 제네릭의 개념부터 실무 예제까지 차근차근 알아보겠습니다.1. 제네릭이란 무엇인가요?제네릭을 한마디로 정의하자면 **"타입을 파라미터(매개변수)처럼 사용하는 것"**입니다.함수를 호출할 때 값을 전달하듯이, 컴포넌트나 함수를 사용할 때 사용할 타입을 나중에 결정하는 방식이죠.💡 비유로 이해하기: '라벨이 없는 상자'우리가 이삿짐 상자를 만든다고 생각해 봅시다.일반적인 방식: "책 전용 상자", "옷 전용 상자"를 각각 ..
안녕하세요! 오늘은 TypeScript를 사용하면서 가장 빈번하게 작성하게 되는 함수(Function)의 타입 정의에 대해 깊이 있게 알아보겠습니다.함수는 프로그램의 논리를 구성하는 가장 작은 단위입니다. 함수에 올바른 타입을 입히는 것만으로도 수많은 런타임 에러를 사전에 방지하고, 코드의 가독성을 획기적으로 높일 수 있습니다.1. 함수의 기본 타이핑: 매개변수와 반환 타입가장 기본적인 형태는 각 매개변수 뒤에 : type을 붙이고, 함수 괄호 뒤에 반환 값의 타입을 정의하는 것입니다.기본 예제: 사칙연산 함수function add(a: number, b: number): number { return a + b;}const result = add(10, 20); // 30// add(10, "20");..
TypeScript를 사용하다 보면 가장 먼저 마주치는 고민 중 하나가 바로 **"객체의 타입을 정의할 때 interface를 쓸까, type을 쓸까?"**입니다. 과거에는 두 기능의 차이가 뚜렷했지만, 버전이 올라가면서 많은 기능이 공유되게 되었습니다.오늘 포스팅에서는 이 둘의 공통점과 차이점, 그리고 실무에서 어떤 기준을 가지고 선택해야 하는지 풍부한 예제와 함께 알아보겠습니다.1. 공통점: 둘 다 가능한 것들현대 TypeScript에서 두 방식은 매우 유사하게 동작합니다. 대부분의 경우 서로 대체가 가능합니다.1.1 객체의 구조 정의가장 기본적인 용도인 객체 형태 정의는 두 방식 모두 동일하게 지원합니다.// Interface 사용interface UserInterface { name: strin..
안녕하세요! 오늘은 TypeScript를 처음 시작할 때 반드시 넘어야 할 산인 **'기본 타입'**에 대해 알아보겠습니다. 단순히 타입을 지정하는 법을 넘어, 실무에서 혼란을 주기 쉬운 any, unknown, never의 차이점까지 풍부한 예제와 함께 정리해 드립니다.1. 가장 많이 쓰이는 기본 삼총사: string, number, boolean가장 기초가 되는 원시 타입들입니다.🎨 String (문자열)텍스트 데이터를 저장할 때 사용합니다. 작은따옴표('), 큰따옴표("), 그리고 템플릿 리터럴(`)을 모두 지원합니다.let userName: string = "Jane";let greeting: string = `Hello, ${userName}!`; // 템플릿 리터럴 사용🔢 Number (숫..
- Total
- Today
- Yesterday
- 구글
- 스마트안경
- java
- LLM
- CSS
- sLLM
- 협력
- HBM
- react
- 엣지컴퓨팅
- MSA
- AI
- Rag
- It용어
- on-device ai
- CSR
- 웹기초
- HTML
- prompt engineering
- 카카오
- Nextjs
- TypeScript
- SSR
- Javascript
- 멀티모달
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |