구글링을 하다 보니 '인터프리터 언어라서...'라는 말이 자주 보여 인터프리터 언어는 무엇인가 정리해 보려 한다.
원시코드를 기계어로 변환하는 과정없이 한줄 한줄 해석하여 바로 명령어를 실행하는 언어
EX) JavaScript, R, Python, Ruby
1> 한 줄씩 읽고 따로 기계어로 변환하지 않기 때문에 빌드 시간이 없음
2> Runtime 상황에서는 한 줄씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느림
3> 코드 변경시 빌드 과정없이 바로 실행이 가능
4> 오류가 있는 코드를 만나기 전까지는 실행이 가능
원시코드를 모두 기계어로 변환한 후 실행하는 언어
EX) C, C++
1> 소스코드를 기계어로 번역하는 빌드 과정에서는 인터프리터 언어에 비해 시간이 소요
2> 런타임 상황에서는 이미 기계어로 모든 소스코드가 변환되어 있기 때문에 빠르게 실행
3> 코드를 수정하면 다시 컴파일 과정을 거쳐야 함
4> 오류가 있는 코드가 존재하면 아예 실행이 안됨
소스파일을 실행파일로 생성하는 과정 (고급언어 --> 저급언어 과정을 거쳐 실행파일 생성)
Java는 컴파일 언어와 인터프리터 언어를 혼합한 하이브리드 언어이다.
처음에는 인터프리터 언어로서 사용되다 성능 향상을 위해 컴파일 언어의 장점을 가져왔다고 한다.
코딩을 하면서 JSP 파일을 수정했을 땐 서버 재시작을 안 하고 controller를 수정했을 때 재시작을 한 이유를 이젠 알겠다.👍