티스토리 뷰

▶컴파일(Compile)과 런타임(Runtime)

 

🔎 컴파일(Compile) ?


개발자가 프로그램을 위해 작성한 소스코드를 다른 프로그램이나 기계(H/W)가 처리하기 용이한 형태로 바꾸는 과정을 말한다.

 

Java, C, C++ 같은 언어들이 컴파일 언어이며

실행(런타임)되기 위해서는 반드시 컴파일 과정을 거쳐야 합니다.

 

반면에, Javascript, Python 같은 언어들은 스크립트 언어이며

이런 언어들은 컴파일 과정 없이 기계어로 번역되는 즉시 동작하도록 되어 있습니다.

따라서 컴파일 과정은 필요하지 않지만 작동 시에는 컴파일 언어에 비해 느리다는 단점이 있습니다.

 

이런 컴파일을 진행하는 일련의 과정을 컴파일 타임이라고 합니다.

 

📌 Java 언어와 컴파일

기본적으로 컴파일(Compile)은 소스코드를 기계(H/W)가 이해할 수 있는 기계어로 바꿔주는 역할을 하지만

자바(Java)언어 같은 경우는 조금 다르게 생각해야 합니다.

 

자바 언어를 컴파일 하면 바이트코드가 생성됩니다.

이는 컴퓨터(H/W)가 이해할 수 없는 언어인데요.

자바가 컴파일한 언어를 이해할 수 있는 기계는 바로 JVM(Java Virtual Machine)입니다.

 

즉, 자바 언어를 컴파일한 바이트 코드를 이해할 수 있는 기계는 바로 JVM을 의미한다는 것을 알 수 있습니다.

 

📌 컴파일 에러

컴파일 에러는 프로그램이 컴파일링되는 과정에서 발생하는 에러로
일반적으로 컴파일 에러 발생 시 컴파일러는 문제를 일으킨 소스코드 라인을 지적해준다.

 

ex. Syntax Error, Type 체크 에러, 파일 참조 에러

 

🔎 런타임(Runtime) ?


컴파일 과정을 마친 컴퓨터 프로그램이 실행되고 있는 환경 또는 동작되는 동안의 시간을 말한다.

 

위키피디아의 런타임은 런타임과 런타임 환경을 구분해서 말하고 있는데

우리가 대부분 이야기하는 런타임은 위키피디아의 런타임 환경을 의미하는 것 같습니다.

 

예를 들어, Javascript가 브라우저에서 실행된다면 런타임 환경은 브라우저가 되고

Javascript가 Node.js에서 동작한다면 런타임 환경은 Node.js이 됩니다.

 

📌 런타임 에러

소스코드가 이미 실행가능한 프로그램으로 성공적으로 컴파일이 되었더라도
여전히 프로그램의 실행 중에 버그를 일으킬 수 있다.
이렇게 프로그램의 실행 중에 발생하는 형태의 오류를 런타임 에러라고 한다.

 

ex. 0 나누기 오류, Null 참조 오류, 메모리 부족 오류

728x90
LIST
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함