컴파일이란 개발자가 작성한 소스코드를 기계가 이해할 수 있는 2진수의 바이너리 코드로 바꿔주는 과정이다. 흔히 하는 JAVA, C, C++ 등이 컴파일 언어이며 실행되기 전에 반드시 컴파일이 되어야한다.
컴파일이 완려된 이후 사용자에 의해서 응용프로그램이 동작되어지는 때를 런타임이라고 한다.
컴파일 에러는 컴파일 과정에서 컴파일러가 이해하지 못하는 문법적 오류등에 의해서 발생하는 에러이다.
ex) Syntax error, Typ check error
이런 경우 컴파일러는 컴파일 타임 에러를 발생시키고 일반적으로 문제를 일으킨 소스코드 라인을 지시해준다. 따라서 오류를 찾고 해결하는것이 비교적 쉽다.
런타임 에러는 컴파일이 완료된 이후 애플리케이션이 작동시에 발생하는 에러다.
ex) 0 나누기 오류, 널 참조 오류(NPE), 메모리 부족 오류
이렇게 프로그램이 실행중에 발생하는 형태의 오류를 런타임오류 라고 한다.
Reference