TypeScript 안전성 패턴: Branded Types

타입스크립트의 Branded Types에 대해 알고 계셨나요? Branded Type이란 타입스크립트 커뮤니티에서 개발된 일종의 안전성 패턴 인데요. 이 패턴은 기존 타입 시스템을 활용하여 더 구체적이고 안전한 타입을 만드는 방법 입니다. 이 기법은 기존 타입에 고유한 식별자를 추가하여 더 구체적이고 안전한 새로운 데이터 타입을 생성하는데요. 쉽게 말해 원시 타입(string, number)에 추가적인 타입 정보를 ‘브랜딩’하는 기법입니다.


구현 예시:

type Brand<K, T> = K & { __brand: T }
type UserID = Brand<string, "UserId">
type PostID = Brand<string, "PostId">

위 예시에서 UserIDPostIDstring 타입이지만 Brand 타입으로 인해 컴파일러 수준에서 구별 됩니다.


이렇게 동일한 string 타입이더라도 구별이 가능해지면 함수 인자 순서를 잘못 전달했을때 기존 타입스크립트는 동일한 string이기 때문에 에러를 감지하지 못했지만 Brand 타입은 에러를 잡아낼 수 있습니다.


따라서 Branded Types을 통해서 도메인 모델링, 유효성검사, API응답 요청 등에서 더 표현력 높고, 안정성 높은 코드를 작성할 수 있습니다.


추가로unique symbol 을 활용한 더 강력한 패턴 및 다양한 활용사례를 확인하고 싶으시면 블로그를 참고해보세요.


https://siosio3103.medium.com/typescript-branded-types로-런타임-타입-안정성-개선하기-768222c8df0d

TypeScript Branded Types로 런타임 타입 안정성 개선하기

Medium

TypeScript Branded Types로 런타임 타입 안정성 개선하기

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 9월 20일 오전 1:09

 • 

저장 52조회 2,735

댓글 0

    함께 읽은 게시물

    📰 OpenAI가 ChatGPT의 커넥터 기능을 업데이트하면서 MCP 지원을 추가했네요.

    ... 더 보기

    앱 개발 개척시대

    A

    ... 더 보기

    앱 개발 개척시대

    K리그 프로그래머

    앱 개발 개척시대

     • 

    저장 2 • 조회 946


    하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.

    ... 더 보기

    다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순

    네이버 블로그 | HSG 휴먼솔루션그룹

    다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순

     • 

    저장 5 • 조회 643


    나는 가끔 조합형 한글의 아름다움에 대해 생각한다.


    그 아름다움은 단순히 예쁜 글꼴이나 정갈한 종이 위의 자소 배열에서 끝나지 않는다. 진짜 매력은, 정밀한 정보 구조와 이산 수학적 규칙성 속에 숨어 있다.


    ... 더 보기

    2025 쿠팡이츠 테크 신입 개발자 공개 채용

    ... 더 보기

    2025 쿠팡이츠 테크 신입 개발자 공개 채용

    Coupang Careers

    2025 쿠팡이츠 테크 신입 개발자 공개 채용

    AI(LLM) 애플리케이션의 발전 속도가 AI 지능(능력)의 발전 속도를 따라가지 못하고 있는 상태가 되었다. 즉, 이제 AI가 부족한 것이 문제가 아니라, AI의 능력을 100% 활용하지 못하고 있는 것이 문제인 상태가 되었다는 이야기.