본문 바로가기
CS 지식

[CS 스터디 질문] 컴파일(Compile), 런타임(Runtime)

by CSEGR 2024. 9. 12.
728x90

✔️ 컴파일(Compile) 이란?

컴파일(compile)은 개발자가 프로그램을 위해 작성한 소스 코드를 다른 프로그램 또는 기계(Hardware)가 처리하기 용이한 형태로 바꾸는 과정을 의미한다. 

 

  • 컴파일 언어에는 Java, C, C++ 등이 있으며, 실행(런타임)되기 위해서는 반드시 컴파일(Compile) 과정을 거쳐야한다. 
    • C, C++ 컴파일러에서는 기계어로 번역된 실행 파일(예: .exe 파일)이 생성된다.
    • 자바 같은 경우는 소스 코드가 바이트코드로 변환되어 .class 파일로 저장된다. 
    • 반면에, JavaScript, Php, Python 같은 언어들은 스크립트 언어이며 컴파일 과정없이 기계어로 번역되는 즉시 동작된다. 
  • 컴파일을 진행하는 일련의 과정을 컴파일 타임이라고 한다.
  • 언제 발생?: 프로그램 실행 이전에 발생
  • 컴파일 오류(Compile Error) : 컴파일(Compile) 도중 발생하는 오류
    • 주로 문법 오류, 타입 오류로 인해 일어난다.

컴파일 오류

ex) 변수를 선언했지만 그 변수의 데이터 타입을 명시하지 않았을 때, 즉 문법이 틀렸을 때 SyntaxError이 발생한다. 

 

✔️ 런타임(Runtime) 이란?

런타임(Runtime)은 컴파일(compile) 과정을 마친 응용 프로그램이 사용자에 의해 실행되어 지는 때 즉, exe파일을 동작시키는(실행 버튼을 누를때) 과정
  • 프로그램이 실행되면서 발생하는 모든 동작(메모리 관리, 예외 처리, 함수 호출, 객체 생성, 가비지 컬렉션 등)이 런타임에 이루어진다. 
  • 프로그램이 실행될 때 운영체제와 런타임 환경(JVM)이 관리한다. 
  • 언제 발생? : 프로그램 실행되는 동안 발생한다. 
  • 런타임 오류(Runtime Error): 런타임(Runtime) 프로그램 실행 도중 발생하는 오류.
    • 예를 들어, 배열의 범위를 넘는 인덱스 접근, 0으로 나누기, 메모리 부족 등이 있다.

런타임 오류

ex) 0 으로 값을 나누는 경우 런타임 에러를 발생시킨다. 

 

➕ vs 프로그램 실행

런타임은 프로그램이 실행되는 동안의 상태나 환경을 의미하며, 프로그램이 코드를 실행할 때 발생하는 모든 일들을 포괄한다.

프로그램 실행은 컴퓨터가 프로그램의 코드를 실제로 실행하는 과정을 의미하며, 프로그램의 실행은 런타임 환경에서 이루어진다. 

728x90

'CS 지식' 카테고리의 다른 글

VPN이란? IPsec VPN vs SSL VPN  (0) 2025.04.04
[CS 스터디 질문] 자바의 메모리 & 변수  (1) 2024.09.05