우리가 C, C++, Python 등 어떤 프로그래밍 언어로 코딩하든지 간에 컴퓨터는 이것을 이해할 능력이 없습니다. 근본적으로 컴퓨터는 0과 1만 이해할 수 있는 친구입니다. 전기적 신호가 켜졌으면 1(on), 아니면 0(off).
그렇기 때문에 우리가 작성한 소스코드를 컴퓨터가 이해할 수 있는 기계어로 번역해줄 번역가가 필요합니다. 이 번역가의 역할을 해주는 것은 두 종류가 있는데 하나는 컴파일러(compiler)이고 또 다른 하나는 인터프리터(interpreter)입니다. 컴파일러에 의해 번역이 이뤄지는 프로그래밍 언어를 컴파일(compile) 언어라 부르고, 인터프리터에 의해 번역이 이뤄지는 언어는 인터프리트(interpret) 언어라고 부릅니다. 대표적인 컴파일 언어에는 C, C++ 등이 있고, 인터프리트 언어에는 Python, Javascript 등이 있습니다.
이 둘의 차이에 대해서 제가 이해하고 있는 것들에 대해 정리해보겠습니다.
1) 컴파일러라는 번역가는 실행 이전에 전체 코드를 한번에 기계어로 번역해버립니다. 그 결과 오브젝트파일이 생성됩니다. 반면, 인터프리터라는 번역가는 실행 이후에 한 줄씩 한 줄씩 번역을 해갑니다. 인터프리터는 오브젝트파일을 생성하지 않습니다.
2) 컴파일 언어는 실행 전에 컴파일러에 의해 생성된 오브젝트파일을 이용해서 프로그램을 실행하기 때문에, 실행 속도가 빠릅니다. 반면, 인터프리트 언어는 실행할 때마다 한 줄씩 번역을 진행하기 때문에 컴파일 언어에 비해 실행 속도가 느린 편입니다.
3) 컴파일 언어는 에러가 한군데라도 있으면 컴파일에 실패하여 프로그램을 실행시킬 수 없지만, 인터프리트 언어는 어딘가에 에러가 있더라도 실행이 가능합니다. 한 줄씩 코드가 명령하는 바를 수행하다가 에러를 만나면 멈춥니다.
4) 컴파일 언어를 배우는 것이 인터프리트 언어를 배우는 것에 비해 좀 더 어렵습니다. 코딩을 할 때 좀 더 디테일한 요소들을 고려하면서 해야하기 때문입니다. 하지만 어려운 만큼 더 배울 것이 많고, 산업 현장에서 더 많이 사용됩니다. 하지만 처음 코딩을 접할 때는 인터프리트 언어로 시작하는 것이 좋습니다. 코딩에 어느 정도 흥미와 지식이 생겼을 때 슬슬 컴파일 언어에 다가가는 것도 하나의 좋은 방법이라고 봅니다.
여러분이 주로 사용하시는 프로그래밍 언어는 컴파일 언어인가요? 아니면 인터프리트 언어인가요?
<참고자료>
[1] https://hieroglyph.tistory.com/4, "컴퓨터 이야기", 컴파일러와 인터프리터의 차이
[2] https://jins-dev.tistory.com/entry/Compiler-%EC%99%80-Interpreter-%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%B0%A8%EC%9D%B4%EC%A0%90, Jin's Dev Inside, "컴파일러와 인터프리터의 개념과 차이점"
[3] https://brunch.co.kr/@insuk/11, 조인석, "어떤 프로그래밍 언어를 배워야 하죠?"
'Research > IT 지식' 카테고리의 다른 글
구글링할 때 2022년 이후의 자료만 검색되게 하고 싶다면? (2) | 2022.04.29 |
---|---|
LG U+ 공유기 포트포워드 설정 방법 (8) | 2020.11.25 |
쉽게 따라하는 ipTIME 공유기 포트포워드 설정하기 (2) | 2020.10.07 |
삼성 오디세이 노트북 램 교체(업그레이드)하기 (3) | 2020.07.28 |
헷갈리는 코딩용어, 매개변수(parameter)와 인수(argument) (2) | 2020.06.05 |
티스토리 블로그 및 웹사이트 도메인 제공 사이트 추천 (10) | 2020.01.18 |
32비트, 64비트 운영체제의 차이 (8) | 2017.10.09 |
램(RAM)이란 무엇인가? (6) | 2017.07.09 |