Java

컴파일 타임과 런타임의 차이

오개발 2024. 10. 10. 22:27

컴파일(Compile)이란?

 

 개발자가 작성한 소스 코드를 프로세서가 이해할 수 있는 기계어로 번환하는 작업

 

 

런타임(Runtime)이란?

 

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

 

예를 들어, JavaScript가 Web Browser에서 실행된다면 런타임 환경은 Web Browser가 되고 JavaScript가 Node.js에서 동작한다면 런타임 환경은 Node.js이 된다.

 

 

 

컴파일 에러

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

  • Syntax Error
  • Type 체크 에러
  • 파일 참조 오류

런타임 에러

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

  • 0 나누기 오류
  • Null 참조 오류
  • 메모리 부족 오류

 


바이트 코드 역할 

 

자바 바이트코드는 자바 소스 코드를 컴파일한 결과물로, 자바 가상 머신(JVM)에서 실행되기 위한 중간 언어입니다. 자바 컴파일러는 자바 소스 코드를 직접 기계어로 변환하지 않고, 플랫폼 독립적인 바이트코드로 변환합니다. 이 바이트코드는 특정 운영체제나 하드웨어에 종속되지 않기 때문에, 자바 프로그램은 한 번 컴파일되면 다양한 플랫폼에서 실행될 수 있습니다.

 

 

 

 

1. 자바의 컴파일 타임과 런타임의 차이

- 컴파일은 개발자 작성한 코드를 컴퓨터에서 실행 시킬수 있게 변환하는 과정이고 런타임은 컴퓨터가 실행 시킬수 있게 변환한 내용을 동작시키는 내용이다.

2. 컴파일 타임과 런타임 에러의 차이점 및 해결 방법은?

3. JIT 컴파일러의 역할과 특성에 대해 설명해 보세요.

4. 컴파일러 최적화 수준을 조정할 때 주의해야 할 점은?

5. 런타임 시 성능을 향상시키기 위한 JVM 튜닝 방법은?

6. 컴파일 타임에 최대한 오류를 검출하기 위한 전략은 무엇인가요?

'Java' 카테고리의 다른 글

테스트 코드 커버리지  (0) 2024.10.16
자바 default 접근 제어자  (0) 2024.10.16
자바 변수 네이밍 컨벤션  (1) 2024.10.10
코딩 컨벤션  (2) 2024.10.10
[java] Integer 캐싱  (1) 2024.10.06