응용 프로그램 두루 망라…‘프로그래밍 언어의 총아’로 부상?
동적 타이핑, 객체 지향 및 구조화된 프로그래밍 완벽 지원
기능 및 측면 지향 프로그래밍도 전폭 지원, 다양한 사례에 적용
표준 라이브러리, 파이썬 기반 오픈소스 ML 라이브러리도 강점
[애플경제 이보영 기자] “파이썬(Python)이 세상을 집어삼키고 있다….” 다수의 개발자들 사이에서 요즘 흔히 회자되는 표현이다. 처음엔 한낱 프로그래밍을 위한 사이드 프로젝트였던 파이썬이 이젠 국내에서도 가장 인기 있는 프로그래밍 언어가 된 것이다. 파이썬은 이미 세계적으로 1천만명 이상의 개발자들이 사용하는 범지구적 프로그래밍 언어로 자리잡았다. 이에 개발업계와 전문가들의 평가와 의견을 바탕으로 파이썬의 알파와 오메가를 짚어보면, 가히 ‘프로그래밍 언어의 총아’라고 해도 과언이 아닐 정도다.
1990년 첫 출시 이후 파이썬은 학계와 기업, IT업계 등에서 대중적 지지를 얻으며 부상했다. 특히 클라우드 운영을 위한 오픈스택의 기반이 되었고, 클라우드 파일 스토리지 서비스 ‘드롭박스’에 힘을 실어주었다는 평가를 얻으면서 인기가 급상승했다. 이러한 확장성으로 인해 파이썬은 초보 개발자에게 훌륭한 프로그래밍 언어가 될 수 있었다. 그러나 실제 응용 프로그램에 광범위하게 사용되기 때문에 다양한 개발자들이 다양한 용도와 규모에 따라 두루 사용할 수 있는 언어이기도 하다.
그렇다면 파이썬 프로그래밍 언어의 실체는 무엇일까? 파이썬은 본래 네덜란드의 프로그래머 귀도 반 로섬이 교육에 초점을 맞춘 ABC 언어를 연구한 경험을 바탕으로 1990년에 만든 인터프리터 프로그래밍 언어다. 이는 파이썬은 동적으로 타이핑되고, 참조 카운터나 주기 탐지를 통해 가비지를 수집한다. 또 객체 지향과 구조화된 프로그래밍을 완벽하게 지원하며, 기능이나 측면 지향 프로그래밍도 전폭적으로 지원하므로 다양한 용도나 경우의 수에 적용할 수 있다.
특히 ‘표준 라이브러리’는 일반적으로 파이썬의 가장 큰 강점 중 하나로 간주되는데, 이를 통해 프로그래머들은 주어진 애플리케이션의 기본적인 설계 단계에서 외부 패키지에 크게 의존하지 않고도 프로젝트를 빠르게 개발할 수 있다. 현재는 ‘표준 라이브러리’를 보완하기 위해 ‘파이썬 패키지 인덱스(PyPI)’에 의해 다양한 기능을 제공하는 30만 개 이상의 패키지를 분류하고 있다.
파이썬은 어떤 용도에 가장 적합할까. 일단 언어로서 파이썬의 디자인과 구성은 개발 프로젝트에 적합하게 짜여져 있다. 프로그래밍 언어다운 특유의 가독성이 돋보인는데, 이로 인해 코드를 선택하고 어떻게 작동하는지를 명확하게 이해할 수 있게 한다. 그래서 “파이썬은 강력한 프로그래밍 언어이며, 컴퓨터 과학의 거의 모든 것이 그렇듯이 초보 개발자들도 많은 것을 성취하며, 성장할 수 있게 한다”는게 업계 전문가들의 평가다.
가산 디지털 단지의 SW관련업체인 E사 관계자는 “파이썬은 현재 사람들이 학습할 수 있는 가장 인기 있는 프로그래밍 언어 중 하나로, 머신 러닝(ML)과 데이터 과학 속성으로 널리 선호되고 있다.”고 단언했다. 클라우드 운영체제를 개발하고 있는 이 업체는 특히 파이썬을 적극 도입, 적용한 바 있다. 해당 관계자는 “파이썬은 마이크로소프트의 비주얼 스튜디오 코드의 가장 인기 있는 확장이기도 하며, 애저와 윈도우 스토어의 쉬운 설치 옵션을 지원하기도 한다”면서 “특히 파이썬 기반의 오픈소스 ML 라이브러리는 급속도로 확산되고 있다”고 전했다.
실제로 각종 조사에 의하면 파이썬 언어의 스키킷 학습 ML 라이브러리는 지난 2020년 한 해 동안에 11%나 증가했고, 딥 러닝에 사용되는 파이토치 ML 프레임워크는 무려 159%나 늘어났다. 또 구글의 텐서플로 프레임워크도 파이썬 모듈을 포함하고 있으며, 케라스와 스키킷-러닝 등도 마찬가지다. 또한 “페이스북의 파이토치는 AWS와 애저(Azure)에서 모두 지원되면서 점점 더 인기가 있다.”는 얘기다.
기술매체 ‘테크리퍼블릭’은 실제로 “기계 학습을 위해 데이터를 준비하고자 하는 데이터 과학자들을 위한 ‘아나콘다 프로젝트’야말로 수치적 방법과 통계 분석에 중점을 둔 과학적 컴퓨팅에 최적화된 파이썬에 의한 것”이라고 강조했다. 파이썬 기반의 데이터 분석에 필요한 오픈소스를 모아놓은 개발 플랫폼으로서 최적의 기능을 발휘한다는 얘기다. 이에 따르면 또 IBM의 키스킷(Qiskit)과 디[웨이브(D-Wave)의 오션(Ocean) 학습 플랫폼도 파이썬을 사용하여 양자 컴퓨터를 프로그래밍한다.
파이썬은 또 장고, 체리파이, 피라미드, 플래시, 웹2py, 웹앱2를 포함한 웹 개발 프레임워크에서도 인기가 있다. 그래픽스 편집 프로그램들 또한 인라인 파이썬 스크립트를 사용한다. 예를 들어 3D 애니메이션 소프트웨어인 오토데스크 3ds 맥스, 마야, 모션빌더, 시네마 4D, 라이트웨이브, 후디니, 모도, 누크 컴포지터, 오픈 소스 블렌더 도구 세트 등이 그런 것들이다.
그렇다면 굳이 다른 프로그래밍 언어와 비교하면 어떠할까. 파이썬은 다른 고급 언어(C/C++, 자바스크립트, PHP 등)가 사용될 수 있는 거의 모든 사용 사례에 사용될 수 있다. 특히 유연성이 뛰어나서 UI 툴킷과 함께 사용할 때 시제품 제작을 위한 인기 있는 도구가 되기도 한다. 또한 “현대의 마이크로 컨트롤러를 위한 구현체들이 존재하며, 32비트 이상의 명령어 집합에 초점을 맞추고 있다.”는게 전문가들의 설명이다.
파이썬은 또한 인터프리터를 흔히 사용하여 실행되지만 다른 언어로 컴파일하거나 코드를 기계화할 수 있는 도구들도 있다. 여기에는 자바스크립트 트랜필러, C, C++ 컴파일러가 포함된다. 이러한 접근 방식을 사용하면 파이썬 코드를 다른 언어로 작성된 코드와 함께 사용할 수 있는 라이브러리와 모듈로 사용할 수도 있다.
IT업계에 따르면 파이썬 3.x 시리즈는 2008년 12월에 도입되어 근본적인 설계 결함을 해결하고 언어를 현대화하는데 성공했다. 파이썬 3은 ‘과거 작업 방식을 제거하여 기능 중복을 줄인다’는 목적으로 개발되었다. 이로 인해 파이썬 3은 파이썬 2와 완전한 역호환은 불가능하다. 그래서 개발자들이 새로운 버전에서 실행하기 위해 코드를 현대화해야 했다. 그런 가운데 파이썬 2.7 지원은 2020년 1월 1일에 종료되었다.
파이썬의 최신 릴리스는 버전 3.8.13, 3.9.13, 3.10.5 등이다. 파이썬 3.11은 현재 베타 버전이 나와있고, 베타 버전 3은 2022년 6월 초에 출시되며 2022년 10월에 출시될 예정이다. 현재 업계로선 파이썬의 속도를 높이는 것이 주요 관심사이지만, 이에 응답할 만한 파이썬 3.11은 2027년 말까지 지원될 것으로 예상된다.
파이썬은 특히 컴퓨터 공학을 별도로 공부하지 않아도 배울 수 있다는 것이 장점이다. 사용자가 프로그래밍 언어를 시작하는 데 도움이 되는 풍부한 리소스를 온라인에서 활용할 수 있기 때문이다. 실제로 구글은 코세라에서 파이썬 전문 자격증이 있는 구글 IT 자동화 교육 과정을 개설했다.
프로그래밍에 익숙한 개발자라면, 파이썬을 기본적으로 지원하거나 플러그인을 사용하여 지원을 추가할 수 있는 IDE(Integrated Development Environment, 통합개발환경)를 선택할 수도 있다. 프로그래머들에게 파이썬을 지원하는 무료 IDE를 사용하는 것은 큰 지원군과도 같다. 현재 개발자들을 위한 파이썬 IDE는 대체로 Atom, PyCharm, Geany, Sublime Text, Visual Studio Code 등이 있다. 그 중에서도 “가장 인기 있는 파이썬 프로그래밍 도구는 마이크로파이썬과 같은 사투리를 지원하는 ‘크로스 플랫폼 토니’일 것”이라는 의견도 있다.
또한 REP(Read Evaluate Print Loop) 도구를 사용하여 편집기 또는 브라우저에서 새로운 파이썬 명령을 사용해 볼 수도 있다. 특히 이 방법을 쓰면 선택한 개발 환경을 떠나지 않고도 새 코드를 작성할 때 쉽게 테스트할 수 있다. 또한 코딩 컴퓨터인 주피터 노트북과 같은 디바이스들은 공유 가능한 문서에 파이썬 인터프리터를 내장하고 있다. “이를 통해 동료와 코드를 공유하거나 실험할 준비가 된 대화형 환경을 제공하여 기계 학습이나 수치 분석을 실험할 수 있다”는 얘기다.
