본문 바로가기

ASP.net with C# (웹폼)

런타임이란? 컴파일타임 과의 차이는?

런타임(Runtime)과 컴파일타임(Compiletime)의 차이점은 무엇인가?

런타임과 컴파일타임에 대해 가장 쉽게 설명한 글이 있어 번역해 보았습니다. 원문보기


런타임(Runtime)과 컴파일타임(Compiletime)은 소프트웨어 프로그램개발의 서로 다른 두 계층의 차이를 설명하기 위한 용어이다. 프로그램을 생성하기 위해 개발자는 첫째로 소스코드를 작성하고 컴파일이라는 과정을 통해 기계어코드로 변환 되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일타임(Compiletime) 이라고 부른다.

컴파일과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프로그램이 동작되어지는 때를 런타임(Runtime)이라고 부른다.

"런타임"과 "컴파일 타임"이라는 용어는 종종 서로다른 두 가지 타입의 에러를 나타내기 위해 사용되어지곤 하는데, 컴파일 타임 에러는 프로그램이 성공적으로 컴파일링되는 것을 방해하는 신택스에러(Syntax error)나 파일참조 오류와 같은 문제를 말하며, 이런 경우 컴파일러는 컴파일 타임 에러를 발생시키고 일반적으로 문제를 일으킨 소스코드 라인을 지시해준다.

만약, 어떤 소스코드가 이미 실행가능한 프로그램으로 컴파일 되었다 할지라도 이것은 여전히 프로그램의 실행중에 버그를 일으킬 수 있다. 예를 들자면, 예상치 못한 오류 또는 충돌로 동작하지 않을 수 있는데 이렇게 프로그램이 실행중에 발생하는 형태의 오류를 런타임오류 라고 한다.

컴파일타임 오류의 유형

  • 신택스 오류
  • 타입체크 오류

런타임 오류의 유형

  • 0나누기 오류
  • 널(Null)참조 오류
  • 메모리 부족 오류

웹프로그래밍에서는 프론트엔드(Front End)와 백엔드(Back End) 또는 클라이언트 사이드(Client Side)와 서버 사이드(Server Side)로 더욱 세분화 되는데, 프론트엔드는 사용자의 브라우저에서 해석되는 소스코드를 의미하며, 서버사이드는 웹서버에서 해석되는 소스코드를 의미합니다.