Medium 노트

파이썬이 느리지만 대중적인 이유

Jonchann 2019. 1. 7. 10:48

원문 기사: https://medium.com/@trungluongquang/why-python-is-popular-despite-being-super-slow-83a8320412a9

Why Python is Popular Despite Being (Super) Slow

이 글에 사용된 사진은 모두 원글이 출처입니다.


파이썬이 느린 이유:

  • 고급 프로그래밍 언어(High-Level Programming Language)이기 때문이다: 파이썬은 인간의 사고와 비슷한 구조를 갖는다. 이를 위해 메모리 관리, 포인터 등과 같은 컴퓨터의 상세한 사정은 추상적으로 표현될 필요가 있다. 따라서 저급 프로그래밍 언어인 C언어보다 느릴 수 밖에 없다.
  • 파이썬은 해석형 언어(Interpreted)이며 컴파일되지 않는다: 파이썬 코드는 컴파일 시간에 자연어 코드로 컴파일하는 대신 실행하면서 해석된다.
  • 파이썬은 동적 프로그래밍 언어(Dynamically Typed Language)이다: 정적 프로그래밍 언어인 C, C++, 자바와 달리 string, boolean, int 등을 선언할 필요가 없다. 하지만 선언하지 않으면 않을수록 컴퓨터는 할 일이 늘어난다. 각 속성에 접근해 다 알아봐야 할 필요가 있기 때문이다. 그리고 아주 동적이게 하는 것은 파이썬을 아주 활용하기 힘들게 만든다.
  • 전역 인터프리터 락(Global Interpreter Lock; GIL): GIL은 기본적으로 인터프리터가 한 번에 하나의 스레드(thread)만 처리하도록 하는 것인데 파이썬 인터프리터가 그렇다.


그런데도 파이썬이 대중적인 이유:

  • 최종 사용자(End-User)는 상관하지 않는다: 솔직히 아무도 0.001초와 0.01초의 차이를 느끼지 못할 것이다. 때문에 이 정도 차이로 느려진다 해도 사용자는 상관없다 생각한다. 너무 느려질 경우에 대비(In case)해 파이썬은 horizantal scaling(서버 확장)[각주:1]으로 해결할 수 있게 되어있다.
  • 더 생산적이다: 이것이 파이썬을 많이들 사용하는 가장 큰 이유이다. 파이썬은 C++나 자바보다 더 생산적이다. 파이썬은 더 간결하고 표현하기 쉬운 언어이기 때문에 코드를 짜기 위한 시간, 노력, 코드 수 등이 덜 필요하다. 덕분에 파이썬은 배우기 쉬운 언어가 되었으며 실행 시간은 자바보다 느리지만 개발하는 시간 자체가 짧아졌다[각주:2].  그리고 영어와 같은 구조이기 때문에 더 쉽고 더 효율적이다.



  • 비지니스 스피드에 비하면 실행 속도는 별 것 아니다: 컴퓨터 실행 시간은 가장 비싼 자원으로 회자되어왔다. 하지만 컴퓨터, 서버, 하드웨어 등은 더 저렴해졌으며 실행 속도 자체는 그리 중요한 요소가 아니게 되었다. 대신 개발 속도가 더 중요하게 되었다. 인건비 등 때문이다. 사실 horizontal scaling이 그리 어려운 일이 아니기 때문에 속도와 퍼포먼스 등의 문제는 쉽게 해결할 수 있다. 하지만 인건비는 그러질 못한다. 따라서 개발 절차/시간이 짧아지는 것은 돈을 굳히면서도 경쟁력을 높일 수 있다.
  • 속도 만이 당신이 고려해야 하는 문제는 아니다: 개발을 위한 프로그래밍 언어를 고를 때 고려해야만 하는 요소는 정말 많고 속도 문제는 그 중 겨우 하나의 문제에 불과하다. 파이썬은 큰 커뮤니티를 갖고 있다. 때문에 파이썬 개발자나 서포터를 쉽게 찾을 수 있다. 또한, 라이브러리와 프레임워크가 정말 많이 제공되어있다. TensorFlow, pandas, Django, Flask 등등등.


  1. https://www.techopedia.com/definition/7594/horizontal-scaling [본문으로]
  2. 파이썬은 자바보다 코드가 3~5줄 정도 더 짧다. [본문으로]