[TYPESCRIPT] 타입 가드를 붙이기 시작하면 자주 겪는 일들 (is, in, instanceof)
TypeScript를 쓰면서 외부 입력을 다루기 시작하면, 타입이 생각보다 빨리 무너지는 걸 보게 됩니다. HTTP 요청 바디, 외부 API 응답, 큐 메시지, 캐시에서 꺼낸 값 같은 것들입니다. 처음에는 “타입만 잘 잡으면 되겠지”라고 생각하다가, 운영에서 한두 번 이상한 값이 들어오면 그 생각이 바뀝니다. 이때부터는 런타임에서 값을 확인하는 코드가 필요해지고, 자연스럽게 타입 가드를 붙이기 시작합니다. is, in, instanceof는 자주 쓰이는 도구인데, 쓰다 보면 오래 버티는 방식이 있고, 경계만 넘으면 바로 의미가 없어지는 방식도 있습니다. 그 차이가 어디서 생기는지 위주로 적어봅니다. 타입 가드는 타입을 증명하지 않는다타입 가드를 붙이면 코드가 안전해졌다고 느끼기 쉬운데, 실제로는 “이 정..