경계에서 타입을 좁히는 원칙의 결
제가 가장 중요하게 두는 원칙은 불확실한 데이터는 들어오는 경계에서 한 번에 타입을 좁힌다입니다. 서버 응답이나 외부 입력을 any에 가깝게 흘려보내면, 타입이 있어도 사실상 없는 것과 같아 사고가 멀리서 터집니다. 한 프로젝트에서 서버가 가끔 빈 값을 주는 걸 화면 깊은 곳까지 안 좁힌 채 흘려보냈다가, 엉뚱한 컴포넌트에서 터져 원인 찾는 데 한참 걸린 경험이 있습니다. 그 뒤로 경계에서 응답을 검사해 좁은 타입으로 바꾼 뒤에야 안으로 보냅니다. 그러면 문제가 경계에서 일찍, 한 곳에서 잡힙니다. 이게 안정성으로 가는 이유는 틀린 데이터가 멀리 못 가게 막아 디버깅 거리를 줄이기 때문입니다. 다만 이 원칙은 경계마다 검사 코드를 짜는 비용이 있어, 자주 안 바뀌는 내부 데이터까지 다 적용하진 않습니다. 핵심은 불확실이 들어오는 입구에만 무겁게 두는 것입니다.