TypeScript Branded Types로 런타임 타입 안정성 개선하기
Medium
타입스크립트의 Branded Types
에 대해 알고 계셨나요? Branded Type
이란 타입스크립트 커뮤니티에서 개발된 일종의 안전성 패턴 인데요. 이 패턴은 기존 타입 시스템을 활용하여 더 구체적이고 안전한 타입을 만드는 방법 입니다. 이 기법은 기존 타입에 고유한 식별자를 추가하여 더 구체적이고 안전한 새로운 데이터 타입을 생성하는데요. 쉽게 말해 원시 타입(string, number)에 추가적인 타입 정보를 ‘브랜딩’하는 기법입니다.
구현 예시:
type Brand<K, T> = K & { __brand: T }
type UserID = Brand<string, "UserId">
type PostID = Brand<string, "PostId">
위 예시에서 UserID
와 PostID
는 string
타입이지만 Brand
타입으로 인해 컴파일러 수준에서 구별 됩니다.
이렇게 동일한 string
타입이더라도 구별이 가능해지면 함수 인자 순서를 잘못 전달했을때 기존 타입스크립트는 동일한 string
이기 때문에 에러를 감지하지 못했지만 Brand 타입은 에러를 잡아낼 수 있습니다.
따라서 Branded Types
을 통해서 도메인 모델링, 유효성검사, API응답 요청 등에서 더 표현력 높고, 안정성 높은 코드를 작성할 수 있습니다.
추가로unique symbol
을 활용한 더 강력한 패턴 및 다양한 활용사례를 확인하고 싶으시면 블로그를 참고해보세요.
https://siosio3103.medium.com/typescript-branded-types로-런타임-타입-안정성-개선하기-768222c8df0d
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 9월 20일 오전 1:09
원티드 하이파이브 2025 컨퍼런스에서 <데이터 해상도를 높이는 3가지 방법>이라는 주제로 발표를 진행하게 되었습니다. 데이터를 수집하고 관리하는 프로세스가 어느정도 잘 만들어진 회사라고 할지라도, 구체적으로 이를 어떻게 활용해서 제품과 비즈니스에 의미있는 성장을 만들어 낼 수 있는가 하는 부분에서는 어려움을 겪는 경우가 많습니다. '데이터 해상도'라는 키워드를 바탕으로, 알라미의 다양한 데이터 활용 사례에 대해 이야기를 나눠보려고 합니다. 컨퍼런스 오시는 분들, 5월에 코엑스에서 인사 나누시죠~
제
... 더 보기잘
... 더 보기