질문 115 · 실전 면접 답변
TypeScript를 도입하면 어떤 오류를 줄이고 무엇은 검증하지 못하나요?
이렇게 답해 보세요 (핵심 답변)
TypeScript는 JavaScript 코드에 정적 타입 검사를 추가해, 오타로 인한 잘못된 프로퍼티 접근이나 함수 인자 타입 불일치, 처리하지 않은 union 분기 같은 실수를 코드를 실행하기 전(컴파일 및 에디터 단계)에 미리 잡아 줍니다. 또한 IDE의 자동완성과 안전한 리팩터링을 크게 도와주어 협업 시 코드의 계약을 명확하게 만듭니다. 다만 TypeScript의 타입 표기는 트랜스파일 과정에서 모두 제거되므로, 실제 런타임에 네트워크로 들어오는 API 응답이나 사용자 입력값이 선언한 타입과 일치하는지는 별도의 런타임 검증 로직으로 확인해야 합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 공통 타입 계약을 정의해 두면 한 모듈의 데이터 구조를 바꿀 때 영향받는 모든 호출 지점을 컴파일러가 즉시 알려 줍니다.
- 외부 JSON 데이터나 localStorage 값은 컴파일러가 실제 내용을 알 수 없으므로 unknown으로 받고 타입 가드나 스키마 검증을 거치는 것이 안전합니다.
면접에서 자주 하는 실수
TypeScript 컴파일이 통과했다고 해서 런타임 에러가 0%가 되거나 JavaScript 실행 속도가 자동으로 빨라지는 것은 아닙니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 115번을 바탕으로 질문과 답변을 새로 정리했습니다.