컴파일과 런타임의 차이

흔히 코드 작업을 하다 10에 8할은 에러를 맞닥뜨려 조치하는 작업에 많은 시간을 기울이고 있다.

여기서 발생한 에러가 컴파일 혹은 런타임 환경에서 발생하였는지 구분 짓는 것은 매우 중요하므로 두 가지 차이점에 대해 알아보자.


컴파일 환경

  • 소스코드를 작성한 후 실행 과정을 통해 기계어코드로 잠시 변환 되며, 이러한 편집 과정을 컴파일타임(Compiletime) 이라고 부른다.

런타임 환경

  • 컴파일 과정(기계어 번역)을 마친 소스코드는 최종 실행되어, 실제 구현한 코드가 동작될 때를 런타임(Runtime)이라고 부른다.

이 둘의 차이는?

런타임(Runtime)과 컴파일타임(Compiletime)은 소프트웨어 프로그램 개발의 서로 다른 구현 단계 명확한 분별을 위해 나누었고,

소스 코드의 에러 상태가 서로 각자 다르다.

컴파일 에러

  1. Syntax error
  2. Type check error

런타임 에러

  1. 0 나누기 오류
  2. NULL 참조 오류
  3. 메모리 부족 오류

Javascript 런타임 에러의 주의점

컴파일은 개발 환경에서 미리 디버그가 잡히므로 실제 서비스 단계에서의 문제를 보완할 수 있다.

그러나 런타임 환경에서는 브라우저에서 사용자의 사용에 따라 갑자기 발생할 수 있는

에러이므로 결제, 계정 관리 등등 중요 정보를 다루는 도중에 발생하다 손상될 수도 있어 매우 위험하다.

이러한 문제를 사전에 개발 환경에서 컴파일 에러로 디버깅을 잡기 위해 등장한 프로그래밍 언어가 바로 TypeScript 이다.