본질에 집중하기: ts-pattern 사용에 대한 재고

"simple is the best"라는 말을은 단순함이 가진 힘을 잘 대변합니다. 개발 역시도, 불필요한 복잡성을 제거하고 본질에 집중하는 것이야말로 좋은 코드의 시작이라고 생각하는데요. 이런 맥락에서 "ts-pattern은 더 멋진 if문이 아니다"라는 토스에서 발행한 아티클을 재미있게 읽었습니다. 새로운 도구를 도입하기 전에 그것을 정말 필요로 하는지, 더 단순한 해결책은 없는지 생각하게 만드는 글이었기 때문인데요.


ts-pattern은 타입스크립트 기반의 패턴 매칭(pattern matching) 라이브러리입니다. 패턴 매칭을 통해 복잡한 조건부 분기를 더 간결하고 선언적으로 작성할 수 있습니다.

복잡한 조건문이나 분기 로직에 타입 체크가 필요한 상황에서는 유용할 수 있습니다.

import { match } from 'ts-pattern';

match(choice)
  .with('가위', () => <div>✌️ 가위를 선택하셨습니다!</div>)
  .with('바위', () => <div>✊ 바위를 선택하셨습니다!</div>)
  .with('보', () => <div>🖐 보를 선택하셨습니다!</div>)
  .exhaustive()

하지만 저자는 "ts-pattern을 사용해야 할 만큼 복잡한 분기가 자주 필요한가?"라는 의문을 제기합니다. 복잡한 분기문이 발생하는 상황에서 "오히려 코드를 더 간결하게 만들 수 있는 방법을 고민하는 것"이 본질적인 해결책이 아닌가 하는 생각을 던지죠.


복잡한 분기는 if/else, switch 또는 early return 패턴을 사용하고, 타입스크립트의 satisfies 키워드를 사용하여 타입이 특정 조건을 만족하는지 확인할 수 있습니다. 또한 ts-pattern의 match 인터페이스와 체이닝을 쓰는 대신, TypeScript 기존 조건 분기문에 IIFE 함수를 통한 선언적인 코드를 활용하거나 별도의 SwitchCase 컴포넌트를 만들어 활용하는 것을 추천합니다. 이런 식으로도 타입 안전성을 유지하면서도, 선언적인 방식으로 코드를 작성할 수 있기 때문이죠.


라이브러리가 쏟아져 나오는 시기에 좀 더 간결하고 본질적으로 단순한 방법을 고민하는 아티클이라 인상 깊었는데요. 언제나 유연한 사고를 통해서 도구에 의존하기보다는 본질적인 문제 해결 방식을 고민하고 탐구하는 자세가 중요한 것 같습니다.


https://toss.tech/article/ts-pattern-usage

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

toss.tech

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

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 11월 9일 오전 1:57

댓글 0

    함께 읽은 게시물

    < 1등을 베끼는 당신이 1등이 될 수 없는 이유 >

    1. 당신 자신을 믿어라. 결코 모방하지 마라.

    ... 더 보기

    야근의 관성

    제가 한국에서 직장 생활을 시작하고 가장 먼저 배운 것은 아이러니하게도 야근이었습니다. 신입이었던 제게 야근은 선택의 문제가 아니었거든요. 선배들에게 야근은 너무나 당연한 루틴이었고, 저녁 5시가 되면 "퇴근 안 해?"가 아니라 "저녁 뭐 먹을까?"라는 질문을 던졌습니다. 누가 정해놓은 것처럼 부장님이 퇴근해야 과장님이, 과장님이 퇴근해야 대리님이, 대리님이 퇴근해야 비로서 저 같은 신입도 퇴근 생각을 할 수 있었습니다.

    ... 더 보기

     • 

    저장 16 • 조회 4,378



    컨텍스트 스위칭 - AI 코딩 부작용

    ... 더 보기

    컨텍스트 스위칭 - AI 코딩 부작용

    K리그 프로그래머

    컨텍스트 스위칭 - AI 코딩 부작용

    인프라 엔지니어의 교과서 개정 2판

    ... 더 보기

    조회 555


    [비전공자에서 독학으로 시니어 엔지니어가 된 이야기 1탄]

    20대 중반에 나를 만나 코딩을 알게 되어 2년 독학으로 엔지니어가 된 남편 이야기. 독학 준비 중인 사람들에게 도움되고자 공부 팁을 공유할 겸 독학 현실 이야기도 함께 해봅니다. 남편은 패키징 산업 공학 전공으로 졸업 후 IT 감사원으로 컨설팅 회사에 입사했습니다. (IT 감사원 경력이 엔지니어가 되는데 큰 도움이 되었는데, 그건 나중에..) 개발자인 저를 만나고 테크 쪽에 관심을 갖기 시작했고, 코딩 독학을 결정하게 되었습니다. 하지만 혼자 공부해서 개발자가 되기에는 버거웠고, 무엇보다도 남동생이 컴공 공부하다가 어려워서 포기한 것을 알기에, 선뜻 개발자가 되는 건 망설여졌습니다. 또한 이미 경력이 좀 있어서 “이걸 살려서 할 수 있는 방법이 없을까?”라는 고민을 하게 되었습니다. 당시 근무하던 회사는 커리어에 도움되지 않다고 판단하고 이직을 결정합니다. 약 3개월의 준비 후 경력을 살리면서 보안에 대해 배울 수 있는 사이버 컴플라이언스 컨설턴트로 테크 컨설팅 회사에 입사했습니다. 전 회사는 IT 기업이 아니어서 듣는 정보가 부족했지만, 테크/IT 쪽으로 이직하면서 많은 정보를 듣기 시작합니다. 직장 동료... 더 보기

     • 

    댓글 1 • 저장 60 • 조회 6,349