반응형

Python은 객체 지향 언어이자, 인터프리터 언어라고 하였습니다.

이전 포스팅에서 객체 지향에 대해 간략하게 설명을 했습니다.
1. 파이썬은 무엇일까요? - 프로그래밍의 종류

그렇다면 인터프리터가 무엇일까요?

인터프리터는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말합니다.

무슨 말일까요?

컴퓨터는 기계어라는 언어를 사용하고 있습니다. 이는 0과 1로 이루어진 언어이죠. 우리가 만약 컴퓨터와 소통을 하고싶다면 바로 기계어를 이용하여 소통을 하면 됩니다.

그러나... 가능할까요?

이러한 문제점을 해결하기 위해 대단하신 분들이 프로그래밍 언어를 만드셨습니다. 초창기에는 파스칼, 어셈블리어와 같은 저수준의 언어부터 현재는 파이썬, 자바와 같은 인간의 언어 체계와 매우 유사한 언어가 개발되었습니다.

그렇다면, 컴퓨터는 기계어로 소통을 할 수 있는데 저희는 고수준의 프로그래밍 언어를 사용한다면, 저희가 현재 미숙한 영어를 쉽게 읽기위해 사용하는 파파고 또는 구글 번역기와 같은 언어 번역 프로그램이 필요하겠죠?

그러한 언어 번역 프로그램이 컴파일러인터프리터입니다.

갑자기 인터프리터 얘길 하다가 컴파일러?

컴파일러

아래 블로그에 정말 자세하게 컴파일러 동작 원리에 대해 나와있습니다. 그러나 우리는 파이썬에 대해 알면 되므로 컴파일러에 대해 간략하게 알아봅시다.
https://bradbury.tistory.com/226

컴파일러의 특징은 전체 코드를 한 번에 번역하여 처리하는 것입니다. 따라서, 완성된 코드를 빌드하게 되므로 첫번째 빌드에서는 시간이 다소 걸리지만, 이후부터는 이미 번역이 된 상태이므로 실행 속도가 빠르다는 장점이 있습니다.

따라서 실시간 서비스(게임, 자동 매매 시스템 등)은 대체로 컴파일러로 개발이 이루어집니다.

인터프리터

그렇다면 인터프리터는 무엇일까요?

위에서 설명하였듯 소스 코드를 바로 실행하는 프로그램입니다. 컴파일러와의 차이점은 소스코드 한 줄 단위로 바로 번역하여 바로 실행시키는 것입니다.

줄 단위로 번역 후 실행하기 때문에 컴파일러보다 실행속도가 많이 뒤쳐집니다. 속도가 뒤쳐지는 대신 줄단위 코드 변경이 빈번하게 이루어지는 데이터 분석, 딥러닝 분야 등에 자주 사용됩니다.

정리하자면 아래 표와 같습니다.

  컴파일러 인터프리터
번역단위 전체
목적 프로그램 생성 생성하지 않음
실행속도 빠름 느림
번역속도 느림 빠름
언어 C, JAVA Python, BASIC

파이썬의 특장점

파이썬의 특장점을 정리해보자면 고수준의 언어이기 때문에 인간 친화적인 성격을 띄고 있고, 그렇기 때문에 러닝커브가 낮습니다. 이러한 부분에서 비 전공자분들도 스타트 언어로 파이썬을 선택하는 것일 것입니다.

또한, 번역 속도가 빠르므로 줄 단위로 파라미터 및 여러 값들을 변경하면서 프로그래밍 해야하는 작업에 유리합니다.

반응형

+ Recent posts