✔️ 한 줄 요약
인터프리터 언어(Interpreter Language) : 소스 코드를 한 줄씩 읽고, 즉시 실행하는 언어
컴파일 언어(Compiled Language) : 소스 코드를 실행하기 전에 한 번에 기계어로 컴파일하여 실행 파일을 생성하는 언어
인터프리터 언어(Interpreter Language)
인터프리터(Interpreter)가 프로그램이 실행될 때 소스 코드를 한 줄씩 읽고 해석하여 즉시 실행하는 언어다.
대표적인 언어로는 파이썬(Python), 자바스크립트(JavaScript), 루비(Ruby)가 있다.
특징
1. 소스 코드를 한 줄씩 읽고 해석하며 실행하므로 별도의 컴파일 과정 없이 즉시 실행할 수 있다. 빠른 프로토타이핑과 테스트가 가능하다. API 엔드포인트를 빠르게 수정하고 결과를 즉시 확인할 수 있다.
2. 오류 발생 시 해당 줄에서 멈추기 때문에, 디버깅에 용이하다. 런타임 에러 발생 시 스택 트레이스를 통한 트러블 슈팅에 용이하다.
3. 프로그램을 실행할 때마다 소스 코드를 해석해야 해서 실행 속도가 비교적 느리다. 요청 처리 속도가 중요한 경우, 성능상 불리하다.
컴파일 언어(Complie Language)
소스 코드를 실행하기 전 한 번에 기계어로 컴파일하여 실행 파일을 생성하는 언어이다.
대표적인 언어로는 C, C++, 자바(Java) 등이 있다.
특징
1. 소스 코드가 기계어로 컴파일 된 실행 파일로 실행하므로, 실행 속도가 빠르다. 높은 성능을 요구하는 애플리케이션에 적합하다. ex) 고속 트랜잭션 처리, 실시간 데이터 처리
2. 코드 수정 후 새로 실행할 때, 수정된 코드를 새로 컴파일 하는 과정이 필요하다. 개발 속도가 느려질 수 있다.
3. 컴파일 시 모든 코드를 한 번에 처리하기 때문에, 컴파일 과정에서 오류를 미리 발견할 수 있다. 타입 안정성과 컴파일 시점의 오류 검출로, 런타임 오류를 줄일 수 있다.
인터프리터 언어(Interpreter Language) vs 컴파일 언어(Complie Language)
인터프리터 언어 | 컴파일 언어 | |
실행 속도 | 느리다 | 빠르다 |
실행 방식 | 소스 코드를 한 줄씩 해석하고 실행 | 소스 코드를 한 번에 컴파일하여 실행 파일을 생성하여 진행 |
테스트 | 빠르다 | 느리다 (재컴파일이 필요) |
트러블 슈팅 | 디버깅 시점에서 빠른 트러블 슈팅 가능 | 컴파일 시점에 오류를 검출하므로, 런타임 오류를 줄일 수 있다 |