[JAVA] Runtime & Compile time 비교

2021. 7. 22. 16:32Web


잘 몰라도 적당히 쓸 수 있다.

근데 당장은 몰라도 메모리 단위의 이야기가 나왔다 하면 발목을 잡는 이야기 중 하나가 Runtime과 Compiletime이다.

물론 잠깐 멈칫했다가 적당히 이해하지만 어디까지나 적당히다.

 

음..! 사실 이번주는 평일에 너무 바빠서 주제들과 참고 사이트만 비공개로 나열해놨더니 하나하나 왜 이 주제를 선정했는지 기억이 안난다.

게다가 당황했던 기억은 있는데 이번주를 지내면서 완전히 익숙해져서 딱히 모르는 이야기가 내가 원하는 레벨에서는 안보이는걸.

아마... 에러에 대해 이야기하고 싶었던 것 같다.


일단 순서는 compile -> runtime이다.

 

Compile time

 

2021.07.18 - [Web] - [JAVA] 컴파일러와 인터프리터, 그리고 hotspot  <- 여기서 이미 자바의 컴파일이 무엇인지는 다뤘다.

간단하게 말하면 개발자가 쓴 코드를 기계가 읽을 수 있는 기계어로 바꾼다.

.c는 .out이 되고 .java 는 .javac가 되는게 컴파일이다.

 

여기서는 Syntax error, Type check error등 문법적 에러가 터진다.

 

Run time

프로그램을 run시킨다고 한다. 말 그대로 사용자가 컴파일된 프로그램을 실행시키는 시간이다.

컴파일하다 터진 에러는 똑똑이 컴파일러들이 다 알려주지만 실행중 에러는 개발자가 찾아야한다.

실행이 아에 안되면 몰라도 잘 되는 줄 알았는데 배포하고 서비스하다 나오는 에러들이 여기 포함된다.

작은 에러는 문명의 Be폭력 간디가 있겠고, 큰 에러는 실행 중에 생긴 심각한 에러가 발생해 강제 종료 당하는 정도...?

 

주로 logical error, nullExceptionError, 메모리 부족 등이 있다.

0-1 연산 결과로 255가 튀어나온 결과.

 

 

참고 자료

https://dd-corp.tistory.com/9