컴파일러와 인터프리터의 차이는 무엇일까?

박승우·2024년 4월 19일

자 이번키워드는 컴파일러와 인터프리터의 차이점이다.

이 부분을 알기 위해서는 우선 컴파일러의 개념과 인터프리터의 개념을
알고 넘어가야한다.

컴파일러는 이전 게시물에 정리해둔것이 있으니 간략하게 정의 해보자.

컴파일러가 뭐에요?


위 이미지가 컴파일러의 뜻을 담고있다.

즉, 컴퓨터는 사람의 언어를 이해를 못하기 때문에(프로그래밍 언어)
컴퓨터가 알아들을 수 있는 언어(0, 1의 기계어, 어셈블리어 등등)으로
번역을 해준다고 생각하면 된다.

https://velog.io/@ci___der/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
위 링크는 저번에 정리해둔 컴파일러의 내용이다.

자 그러면 인터프리터로 넘어가보자.

인터프리터가 뭐에요?

고등학교와 대학교 시절에 배운 내용을 되짚어 보겠다.

한번에 번역하여 실행파일을 만드는 컴파일러가 있는 반면,
한줄씩 번역하고 실행하는 인터프리터라고 알고있다.
언어마다 어떤걸 쓰는지 다르지만, 대표적으로 Python이
인터프리터를 쓰는걸로 기억한다.

[코딩 - 번역 - 실행]

자, 알고있는 지식과 인터넷에 나와있는 내용을 대조 해보자.

다들 많이 찾는 위키백과에서는 다음과 같이 정의를 하고있다.

우선 내가 알고 있는 지식과 크게 다르지 않다고 볼 수 있다.

하지만, 여기서 끝나면 겉핥기 이기때문에 더 알아보자...

인터프리터 같은 경우 한줄을 번역하고 번역한 한줄을 실행하기 때문에
부분 부분마다 결과값을 볼 수 있어 생산속도는 빠르지만, 한줄한줄
실행을 하기 때문에 프로그램이 커질수록 그만큼 실행속도가 느려지는 점이 있다.

두가지의 차이점이 뭐에요?

컴파일러와 인터프리터를 알아 보았으니, 두개의 차이점을 비교하여 알아보겠다.

위 사진이 정말 두가지의 차이점을 모두 담고 있다.

두가지의 특징을 글로 적어보자.

  • Compiler
    • 수정을 한다면 자유롭지 못하다.
    • 실행이 빠르다.
    • 과정이 복잡하다
    • C, C++, C# 등등
  • Interpreter
    • 수정을 한다면 자유롭다.
    • 실행이 느리다.
    • 과정이 단순하다.
    • Python, HTML, JaveScript

더 많은 특징들이 있지만, 위처럼 나타낼 수 있다.

위 차이점때문에 실행속도 여부나 각종 특징을 고려하여 개발을 진행
한다고 한다.

결론 - 느낀 점

이번 키워드로는 'Compiler와 Interpreter의 차이점'을 알아보았다.

고등학교 시절에도 배우고, 대학교 시절에도 배웠다.
저번 키워드를 알아보며 글을 작성할 때 정보를 찾아본것이 기억을
되살리고 지식을 내 것으로 만드는 것에 도움이 되었다.

확실한건 얇팍한 지식을 굵직하게 만드는 것이 중요하다는 것을
느낀다.

작성글은 부족해보일 수 있지만, 더욱 글을 쓰는 법이나
내용 부분에서 어떤것이 들어가는게 좋을지 공부하고
더 깊게 공부하며 키워드에 대한 연구를 할 것이다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글