프로그래밍

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

aSpring 2023. 12. 6. 08:27
728x90
728x90

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) 메모리 부족 오류

 

참고

https://yeko90.tistory.com/entry/compile-time%EC%BB%B4%ED%8C%8C%EC%9D%BC-%ED%83%80%EC%9E%84-vs-runtime%EB%9F%B0%ED%83%80%EC%9E%84-%EC%B0%A8%EC%9D%B4

 

compile time(컴파일 타임) vs runtime(런타임) 차이

이번 포스팅을 통해 컴파일 타임(compile time)과 런타임(runtime)의 의미가 무엇인지 알아보고, 각 타임에 해당되는 compile error와 runtime error도 함께 알아보도록 하겠습니다. 1. compile time 이란? 우리가

yeko90.tistory.com

https://velog.io/@alkwen0996/CS-%EC%BB%B4%ED%8C%8C%EC%9D%BCCompile%EA%B3%BC-%EB%9F%B0%ED%83%80%EC%9E%84Runtime

 

[CS] | 컴파일(Compile)과 런타임(Runtime)

컴파일(Compile)이란? > 개발자가 프로그램을 위해 작성한 소스코드를 다른 프로그램이나 기계(H/W)가 처리하기 용이한 형태로 바꾸는 과정을 말한다. Java, C, C++ 같은 언어들이 컴파일 언어이며 실

velog.io

 

728x90
728x90