본문으로 이동
ts-pattern은 더 멋진 if문이 아니다
문서

ts-pattern은 더 멋진 if문이 아니다

허민 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

복잡한 조건 분기에서 타입 누락으로 버그가 생기는 문제를 줄이기 위해 ts-pattern을 사용했지만, 실제 코드에서는 단순한 분기에도 적용돼 오버엔지니어링이 될 수 있음을 발견했습니다. ts-pattern은 `exhaustive()`로 모든 케이스를 타입 검사할 수 있지만, 클래스와 함수 체이닝을 사용하는 구현 특성상 기본 `if/else`나 `switch`보다 성능이 낮을 수 있습니다. 글은 단순한 로직에는 early return이나 `switch`와 `never` 검증을, JSX에는 IIFE나 `SwitchCase`를 대안으로 제시합니다. 도구를 일괄 적용하기보다 분기의 복잡도와 성능 요구를 따져 적절한 방식을 선택하는 것이 핵심입니다.

  • 분기 로직이 단순하다면 early return이나 switch로 조건을 명확히 표현하세요.
  • 유니온 타입의 누락된 케이스는 `never` 검증으로 컴파일 단계에서 확인할 수 있습니다.
  • JSX에서 선언적 분기가 필요하면 IIFE나 `SwitchCase` 같은 대안을 고려할 수 있습니다.
  • 성능이 중요한 경로에서는 라이브러리 도입 전 실제 사용 패턴과 벤치마크를 확인하세요.

소개

ts-pattern 라이브러리는 패턴 매칭을 기반으로 하고 있으며, 복잡한 조건부 분기를 간결하게 작성할 수 있게 도와줘요. 하지만 성능이 비교적 떨어지기 때문에 실제로 ts-pattern을 어떻게 사용하고 있는지 확인할 필요가 있습니다.

비슷한 학습 자료

문서 강민우

'접근성은 어려운 것' 이라고 느끼는 분들을 위해 실무에서 바로 적용할 수 있는 접근성의 핵심 개념과 실수하기 쉬운 패턴을 알려주는 문서, A11y Fundamentals 을 소개합니다.

UI/UX

문서 토스 프론트엔드 챕터

모닥불 10화 특집: 캠프파이어 에피소드 🔥 이번 모닥불은 특별히 시청자 여러분과 함께하는 시간으로 준비했어요. 사전에 접수된 시청자 여러분의 다양한 사연과 질문 그리고 코드 리뷰까지! 지금 바로 확인해보세요!

소프트웨어 테스트 개발 도구

문서 강현구

매일 “사용”만 하는 transpiler, 토스뱅크에서는 한 단계 더 잘 “활용”해 보기로 했어요. 오늘은 transpiler로 로깅 과정을 개선한 사례를 소개 드릴게요.

프론트엔드 프로그래밍 언어

문서 전성

ESLint와 AST로 토스에서 코드 퀄리티를 높인 방법에 대해 소개드려요.

프론트엔드 개발 도구

문서 김병묵

타입호환성은 무엇이며 왜 필요할까요? 타입호환이 지원되지 않는 경우가 존재한다는 것을 아셨나요? 평소 익숙했던 개념들에 대해 질문을 던져가며 TypeScript 타입 시스템에 관해 심도있게 알아보고자 합니다.

프로그래밍 언어

문서 박서진

TypeScript 코드베이스의 타입 안전성을 한 단계 올려줄 수 있는 Template Literal Type의 뜻과 응용에 대해 알아봅니다.

프로그래밍 언어