타입스크립트를 사용하다 보면 비슷한 구조의 인터페이스를 여러 개 만들어야 하거나, 입력된 타입에 따라 결과 타입을 유연하게 결정해야 하는 상황을 마주하게 됩니다.이 가이드에서는 중복 없는 타입 정의를 위한 맵드 타입과, 타입 시스템에 논리 구조를 부여하는 조건부 타입 및 infer 키워드에 대해 상세히 다룹니다.1. 맵드 타입 (Mapped Types)맵드 타입은 자바스크립트 배열의 map 함수처럼, 타입 내의 프로퍼티들을 순회하며 새로운 프로퍼티 타입을 생성하는 문법입니다.1.1. 기본 문법type NewType = { [K in keyof ExistingType]: NewPropertyType;};keyof ExistingType: 기존 타입의 모든 키(Property Names)를 가져옵니다.K ..
타입스크립트를 사용하다 보면 비슷한 구조의 인터페이스를 여러 개 만들어야 하는 상황을 마주하게 됩니다. 예를 들어, 모든 필드가 필수인 타입이 있고, 이를 수정하기 위해 모든 필드가 선택 사항(?)인 타입이 필요한 경우입니다.이때 **맵드 타입(Mapped Types)**을 사용하면 기존 타입을 가공하여 중복 없이 새로운 타입을 정의할 수 있습니다.1. 맵드 타입이란?맵드 타입은 자바스크립트 배열의 map 함수처럼, 타입 내의 프로퍼티들을 순회하며 새로운 프로퍼티 타입을 생성하는 문법입니다.기본 문법type NewType = { [K in keyof ExistingType]: NewPropertyType;};keyof ExistingType: 기존 타입의 모든 키(Property Names)를 가져옵니..
타입스크립트를 사용하다 보면 이미 정의된 인터페이스나 타입을 조금만 수정해서 재사용하고 싶은 경우가 많습니다. 이때 유틸리티 타입을 활용하면 코드 중복을 획기적으로 줄이고 타입 안정성을 유지할 수 있습니다.1. Partial: 모든 프로퍼티를 선택 사항으로Partial 타입은 인터페이스의 모든 프로퍼티를 optional(?)로 변환합니다. 주로 수정(Update) 기능을 구현할 때 유용합니다.실무 예제: 프로필 정보 업데이트사용자의 전체 정보 중 변경된 부분만 서버에 보낼 때 사용합니다.interface User { id: number; name: string; email: string; age: number;}// Partial를 사용하면 모든 속성이 있어도 되고 없어도 되는 상태가 됩니다.fu..
현대 소프트웨어 개발에서 **객체지향 프로그래밍(OOP)**은 복잡한 로직을 관리 가능한 단위로 나누는 강력한 도구입니다. 그중에서도 **추상화(Abstraction)**는 불필요한 세부 사항을 숨기고 핵심적인 기능만을 노출하여 코드의 재사용성과 유지보수성을 높이는 핵심 개념입니다.TypeScript에서는 interface와 class(특히 abstract class)를 통해 이 추상화를 완벽하게 구현할 수 있습니다.1. 추상화(Abstraction)란 무엇인가?추상화는 "무엇을(What)" 하는지는 정의하지만, "어떻게(How)" 하는지는 정의하지 않는 것을 의미합니다. 사용자는 내부 로직이 어떻게 돌아가는지 몰라도, 제공된 인터페이스만 보고 기능을 사용할 수 있게 됩니다.왜 추상화가 필요한가?코드 결..
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. 제네릭이란 무엇인가요?제네릭을 한마디로 정의하자면 **"타입을 파라미터(매개변수)처럼 사용하는 것"**입니다.함수를 호출할 때 값을 전달하듯이, 컴포넌트나 함수를 사용할 때 사용할 타입을 나중에 결정하는 방식이죠.💡 비유로 이해하기: '라벨이 없는 상자'우리가 이삿짐 상자를 만든다고 생각해 봅시다.일반적인 방식: "책 전용 상자", "옷 전용 상자"를 각각 ..
- Total
- Today
- Yesterday
- It용어
- 멀티모달
- CSS
- 협력
- AI
- prompt engineering
- HTML
- sLLM
- HBM
- java
- Javascript
- Nextjs
- 스마트안경
- 웹기초
- TypeScript
- CSR
- Rag
- 카카오
- SSR
- LLM
- on-device ai
- 구글
- 엣지컴퓨팅
- react
- MSA
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |