1. 컴파일 타임(Compile time)이란?
- 우리가 작성한 소스코드가 컴파일(compile)이라는 과정을 통해 기계가 읽을 수 있는 형태로 변환되는 과정을 컴파일 타임이라고 한다.
- JAVA의 경우 컴파일을 하면 바이트 코드가 생성되며 이는 컴퓨터(HW)가 이해할 수 없는 언어
-> JAVA가 컴파일한 언어를 이해할 수 있는 기계가 바로 JVM(Java Virtual Machine)
-> 즉, JAVA 언어를 컴파일한 바이트 코드를 이해할 수 있는 기계는 바로 JVM을 의미
ex) .exe 파일
컴파일 에러(Compile error)란?
- 컴파일 중 발생되는 에러를 의미한다.
- 일반적으로 컴파일 에러 발생시 컴파일러는 문제를 일으킨 소스코드 라인을 지적해 줌
ex) syntax error : 우리가 사용하는 언어 문법에 맞지 않는 코딩을 했을 경우 발생하는 에러로, IDE에서 실행 전에 빨간 줄로 오류를 알려주기도 한다.
ex) Type 체크 에러
ex) 파일 참조 오류
2. 런타임(Runtime)이란?
- compile time 후 프로그램이 동작되어지는 때를 runtime이라고 한다.
- 컴파일 과정을 마친 컴퓨터 프로그램이 실행되고 있는 환경 또는 동작되는 동안의 시간을 말한다.
ex) .exe 파일을 동작시키는 과정
ex) JS가 Web Browser에서 실행된다면 런타임 환경은 Web Browser가 되고 JS가 Node.js에서 동작한다면 런타임 환경은 Node.js가 된다.
런타임 에러(runtime error)란?
- runtime에러는 실행이 되어야만 확인이 가능한 에러
- 즉, compile 중에는 감지하지 못하는 에러들(IDE에서 빨간 줄로 뜨지 않는 것들)
-> 문법적(syntax)으로는 오류가 없지만 실행 해보니 발생하는 에러
ex) 0으로 값을 나누는 경우 -> 문법적으로는 오류가 없지만 실행하니 발생하는 오류
ex) Null 참조 오류
ex) 메모리 부족 오류
참고
'프로그래밍' 카테고리의 다른 글
[MySQL Workbench] Could not acquire management access for administration 에러 (0) | 2023.12.19 |
---|---|
HTTP, Web Server, WAS (0) | 2023.12.11 |
[OOP] 객체 지향 프로그래밍의 5가지 설계 원칙 (1) | 2023.11.29 |
[HTTPS] HTTP와 HTTPS (0) | 2023.11.29 |
[REST API] REST API란? (1) | 2023.11.28 |