불가능한 상태를 표현할 수 없게: 타입으로 만드는 안전한 코드
·
Typescript
프로그래밍에서 상태를 다루다 보면, 발생해서는 안 되는 상태가 종종 생깁니다. 이런 상태는 버그로 이어지기 쉬우며, 대부분 런타임에서야 문제를 발견하게 됩니다. 이 글에서는 불가능한 상태가 런타임에 나타나는 것을 아예 설계 단계에서 방지하는 방법, 즉 타입으로 안전성을 확보하는 접근을 소개하겠습니다. 1. 불가능한 상태란 무엇인가?불가능한 상태란, 시스템이 정상적으로 동작한다면 절대 나타나서는 안 되는 모순된 상태를 의미합니다.결제 완료 && 배송 대기중 → 가능한 상태결제 미완료 && 배송 중 → 불가능한 상태두 번째 경우는 실제 비즈니스 규칙상 절대 일어나선 안 되지만, 코드 구조가 안전하지 않다면 이런 상태가 런타임에서 발생할 수 있습니다. 2. 왜 불가능한 상태를 표현할 수 없게 해야 할까?불가..