프로그래밍을 공부하거나 코드를 직접 짜다 보면 컴파일 타임(Compile Time)과 런타임(Runtime)이라는 용어를 자주 접하게 된다.
둘의 개념을 명확히 알아보도록 하자!
컴파일 타임(Compile Time)
컴파일 타임은 컴파일러가 소스 코드를 기계어로 변환하는 과정을 의미한다.
※ 소스 코드: C, Java 등과 같은 고급 언어로 작성된 코드
확장자가 .c인 소스 코드는 → 컴파일 과정을 거쳐 기계어로 번역된 실행 파일(.exe)을 생성한다.
확장자가 .java인 소스 코드는 → 컴파일 과정을 거쳐 JVM이 이해할 수 있는 바이트 코드 파일(.class)을 생성한다.
- 컴파일 타임에 발생하는 오류는 문법 오류, 타입 오류, 선언되지 않은 변수, 잘못된 메소드 호출 등이 존재한다.
- 만약 오류가 발생하게 된다면 컴파일러는 오류 메시지를 띄우기 때문에
→ 개발자는 오류가 발생한 코드를 직접 수정해야 한다.
런타임(Runtime)
런타임은 프로그램이 실제로 실행되는 과정을 의미한다.
앞서 .c파일을 컴파일하여 생성된 .exe 파일은 런타임에 실행되어 CPU에 의해 처리된다.
마찬가지로, .java파일을 컴파일하여 생성된 바이트 코드 파일(.class)은 런타임에 JVM에 의해 처리된다.
런타임 오류(Runtime Error)
런타임 중에는 컴파일 타임에서 검출하지 못한 오류들이 발생한다.
컴파일 타임과는 달리, 런타임 오류는 미리 오류 메시지가 표시되지 않고 프로그램 실행 도중에 감지된다.
대표적인 런타임 오류로는 0으로 나누기(Division by Zero), 널 포인터 참조 오류(NullReferenceException) 등이 있다.
따라서 런타임에 오류가 발생하면 프로그램이 비정상적으로 종료될 수 있다.
컴파일 타임은 실행 전에 오류를 확인할 수 있어 비교적 코드를 수정하기 쉽지만,
런타임은 실행 중에 오류가 발생하므로 이에 대한 예외 처리가 필요하다!
:)
'Development > 개발 공부' 카테고리의 다른 글
| [Test] Stub을 이용한 단위 테스트(with JUnit) (0) | 2025.09.30 |
|---|---|
| [Test] 단위 테스트(Unit Test) (0) | 2025.09.27 |
| WEB / WAS(Web Application Server) (0) | 2025.09.17 |
| 가상 머신(VM, Virtual Machine) (0) | 2025.08.27 |
| 쿠키(Cookie)/세션(Session)/토큰(Token)(+JWT) (0) | 2025.08.23 |