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
하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.
... 더 보기나는 가끔 조합형 한글의 아름다움에 대해 생각한다.
그 아름다움은 단순히 예쁜 글꼴이나 정갈한 종이 위의 자소 배열에서 끝나지 않는다. 진짜 매력은, 정밀한 정보 구조와 이산 수학적 규칙성 속에 숨어 있다.
안
... 더 보기AI(LLM) 애플리케이션의 발전 속도가 AI 지능(능력)의 발전 속도를 따라가지 못하고 있는 상태가 되었다. 즉, 이제 AI가 부족한 것이 문제가 아니라, AI의 능력을 100% 활용하지 못하고 있는 것이 문제인 상태가 되었다는 이야기.