1. 인터프리터 언어
인터프리터가 코드를 한 줄씩 읽어 즉시 실행합니다.
- 특징
- 실시간 실행: 코드를 실행할 때마다 한 줄씩 해석하며 즉시 실행.
- 디버깅 용이: 코드 수정 후 바로 결과를 확인할 수 있어 디버깅이 빠름.
- 플랫폼 독립성: 인터프리터만 있으면 어디서든 실행 가능.
- 속도: 실행 시마다 해석하므로 초기 실행 속도가 느림.
- 예시 언어: Python, JavaScript, Ruby, PHP, R 등.
- 장점:
- 코드 수정 후 즉각 반영 가능.
- 개발 속도가 빠름.
- 단점:
- 실행 속도가 느릴 수 있음.
- 배포 시 소스 코드가 노출될 가능성이 있음.
2. 컴파일 언어
코드를 한 번에 기계어로 번역한 후 실행합니다.
- 특징
- 사전 번역: 전체 코드를 기계어로 번역(컴파일)한 후 실행.
- 빠른 실행 속도: 컴파일 후 실행 시 기계어가 바로 실행되어 속도가 빠름.
- 에러 탐지: 컴파일 시 에러를 한 번에 확인할 수 있음.
- 예시 언어: C, C++, Java (JVM 사용), Kotlin, Go, Rust 등.
- 장점:
- 최적화된 코드로 실행 속도가 빠름.
- 소스 코드가 보호됨(기계어로 변환됨).
- 에러를 사전에 발견할 가능성이 높음.
- 단점:
- 코드 변경 시마다 재컴파일 필요.
- 디버깅 속도가 느림.
3. 차이점 요약
구분 | 인터프리터 언어 | 컴파일 언어 |
실행 방식 | 한 줄씩 해석하며 실행 | 전체 코드를 번역 후 실행 |
속도 | 실행 속도가 느림 | 실행 속도가 빠름 |
에러 탐지 | 실행 중에 에러 발견 가능 | 컴파일 시 에러 발견 |
배포 방식 | 소스 코드 제공 필요 | 기계어로 변환 후 배포 가능 |
유연성 | 코드 수정 후 즉시 실행 가능 | 재컴파일 필요 |
예시 언어 | Python, JavaScript, PHP 등 | C, C++, Kotlin, Rust 등 |
반응형
'Develop > Coding' 카테고리의 다른 글
DRY, KISS, YAGNI 프로그래밍 원칙 (2) | 2024.12.02 |
---|---|
보일러플레이트 코드란 (0) | 2024.12.01 |
DTO, VO, Entity, POJO 의 특징과 차이점 (0) | 2024.11.30 |