런타임

사람이 작성한 코드를 컴퓨터가 실행할 수 있는 형태로 변환하는 것입니다.

과정

소스 코드 (.java)  →  컴파일러  →  실행 파일 (.class)
   사람이 읽음           변환          컴퓨터가 실행
// Main.java (사람이 작성)
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}
javac Main.java  # 컴파일
java Main        # 실행

컴파일 vs 런타임

컴파일 타임런타임
언제코드 변환 시점프로그램 실행 시점
에러 예시문법 오류, 타입 오류NullPointerException
// 컴파일 에러: 문법이 틀림
int x = "hello";  // 컴파일 시점에 발견됨, 실행 자체가 안 됨

// 런타임 에러: 문법은 맞지만 실행 중 문제 발생
String str = null;
str.length();  // 컴파일은 됨, 실행하면 터짐

언어별 차이

언어방식
Java, C, Go컴파일 언어 (미리 변환)
Python, JavaScript인터프리터 언어 (실행하면서 변환)

컴파일 언어는 실행 전에 오류를 잡을 수 있고, 실행 속도가 빠릅니다.

CSLOG에서 보기