검수요청.png검수요청.png

파이썬

해시넷
이동: 둘러보기, 검색
파이썬(Python)
파이썬(Python)
귀도 반 로썸(Guido van Rossum)

파이썬(Python)은 1990년 네덜란드의 귀도 반 로썸(Guido van Rossum)이 개발한 객체 지향 스크립트 프로그래밍 언어이다. 별도의 컴파일 과정이 필요 없어 개발기간이 단축되고, 리눅스윈도우 등 특정 플랫폼에 의존적이지 않고 독립적이다. 주로 장고(Django) 프레임워크 기반으로 개발한다. 영어로 'python'은 '비단뱀'이라는 뜻이다. 파이썬의 이름은 개발자인 귀도 반 로썸이 즐겨보던 영국 BBC사의 코미디 시리즈 중 하나인 'Monty Python's Flying Circus'에서 따왔으며, 그리스 신화에 나오는 뱀의 이름과는 관계없다. 귀도 반 로썸은 짧고, 특별하고, 미스터리한 느낌의 단어를 찾았다고 파이썬 홈페이지에 명시되어 있다.

개요

파이썬은 1991년에 귀도 반로썸(Guido van Rossum)이 발표한 대화형 프로그래밍 언어이다. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다. 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능하다. 파이썬은 대부분의 프로그래밍 언어가 하는 일을 쉽고 깔끔하게 처리한다. 파이썬은 시스템 유틸리티 제작, GUI 프로그래밍, C/C++와의 결합, 웹 프로그래밍, 수치 연산 프로그래밍, 데이터베이스 프로그래밍, 데이터 분석, 사물 인터넷 등 다양한 활용이 가능하다. 파이썬은 다른 언어에서 사용하는 문장 부호 대신 더 적은 수의 구문 구조를 가지고 있다.[1]

역사

파이썬은 ABC, Modula-3, C, C++, Algol-68, SmallTalk, Unix shell과 다른 스크립트 언어를 포함하여 많은 다른 언어에서 파생되었다.

파이썬2

파이썬 2.0은 2000년 10월 16일 배포되었고, 많은 기능이 추가되었다. 쓰레기 수집기(GC, Garbage Collector)가 탑재되었고 유니코드를 지원한다.

파이썬3

파이썬 3.0 최종판은 2008년 12월 3일에 발표되었다. 2.x대 버전의 파이썬과 하위호환성이 없다는 것이 가장 큰 특징이다. 파이썬 3의 주요 기능 다수가 이전 버전과 호환되게 2.6과 2.7 버전에도 반영되기도 했다.

파이썬2와 파이썬3의 차이

  • 모든 변수가 객체로 처리된다.
  • 한글 변수를 사용할 수 있다.
  • print 명령문이 print() 함수로 바뀌었다.
  • 사전형과 문자열형과 같은 내장자료형이 내부적으로 변화했고 및 일부 구형의 구성 요소가 제거됐다.
  • 표준 라이브러리가 재배치됐다.
  • 모든 문자를 유니코드로 처리한다. 유니코드의 특성 상 2바이트 혹은 4바이트를 차지하는데 2. x 는 기본 1바이트를 차지함으로 이로 인해 일어난 속도 차이를 해결하기 위해 3.3 버전 이후부터 문자열 객체에서 가장 많은 바이트를 차지하는 문자를 기준으로 각 문자가 차지할 공간을 정하도록 변경되었다.

특징

  • 범용 프로그래밍 언어 : 파이썬은 다양한 도메인의 소프트웨어를 개발하기 위해 설계된 범용 프로그래밍 언어이다.
  • 생산성 : 파이썬은 인터프리터 언어인터프리터에 의해 실행 시에 처리되고 실행하기 전에 프로그램을 컴파일할 필요가 없으며 여러 모듈을 지원하기 때문에 생산성이 높고 개발 속도가 빠르다.
  • 가독성과 디자인 : 다음은 파이썬의 공식 홈페이지에서 발췌한 디자인 원리의 일부이다.
Beautiful is better than ugly. 아름다운 것이 추한 것보다 낫다.
Explicit is better than implicit. 명시적인 것이 묵시적인 것보다 낫다.
Simple is better than complex. 간결한 것이 복잡한 것보다 낫다.
Complex is better than complicated. 복잡한 것이 난해한 것보다 낫다.
Flat is better than nested. 수평적인 것이 계층적인 것보다 낫다.
Readability counts. 가독성이 중요하다.

이러한 디자인 원리를 바탕으로 만들어진 파이썬은 타 언어들에 비해 문법이 엄격하다. 들여쓰기를 의무화하고 있으며 들여쓰기 자체로 하나의 코드가 블럭화되며 직관적인 문법을 갖고 있기 때문에 파이썬은 가독성이 뛰어나다.

주요 기능

  • 파이썬은 실제로 직접 프로그램을 작성하는 파이썬 프롬프트를 통해 인터프리터와 상호 작용할 수 있다.
  • 파이썬은 객체 지향 스타일 또는 객체 내에서 코드를 캡슐화하는 프로그래밍 기술을 지원한다.
  • 파이썬은 UNIX, WindowsMacintosh의 플랫폼 위에서 매우 휴대하기 쉽고 크로스 플랫폼 호환이 되는 라이브러리가 대부분 존재한다.
  • 코드의 테스트와 디버깅 그리고 결과를 터미널에서 바로 확인할 수 있는 상호 작용을 하는 대화형 모드를 지원한다.
  • 파이썬은 다양한 하드웨어 플랫폼에서 실행되며, 모든 플랫폼에서 동일한 인터페이스를 가지고 있다.
  • 파이썬 인터프리터에 낮은 수준의 모듈을 추가할 수 있다. 이 모듈들은 자신의 도구에 추가하거나 수정해서 좀 더 효율적인 프로그래머가 되게 할 수 있다.
  • 파이썬은 모든 주요 상용 데이터베이스에 대한 인터페이스를 제공한다.
  • 파이썬은 많은 시스템 호출, 라이브러리와 같은 윈도우 MFC, 매킨토시유닉스의 X 윈도우 시스템과 윈도우 시스템을 만들어 이식할 수 GUI 응용 프로그램을 지원한다.[2]

종류

해석 프로그램의 종류

  • CPython : C로 작성된 인터프리터
  • 스택리스 파이썬 : C 스택을 사용하지 않는 인터프리터
  • Jython : 자바가상머신용 인터프리터
  • lronPython : .NET 플랫폼용 인터프리터
  • PyPy : 파이썬으로 작성된 파이썬 인터프리터

활용

파이썬을 주로 사용하는 대표적인 프로젝트는 인스타그램, 유튜브, 레딧, 비트토렌트나 드롭박스 등이 있으며, 프레임워크인 장고와 플라스크가 있다. 게임 쪽에선 월드 오브 탱크의 상당 부분이 파이썬으로 구현되어 있고, EVE 온라인이 Stack less Python을 기반으로 개발되었다. 프로그램 외적으로는 구글이 자체 언어인 Go로 넘어가기 전에 파이썬을 주력으로 사용하고 있었으며, 카카오가 파이썬 기반으로 유명하다.[3]

또한 파이썬은 4차 산업혁명, 즉 빅 데이터와 인공지능 AI, 머신 러닝같은 분야에 적합하다.

파이썬 언어를 사용하여 만든 암호화폐에는 이더리움 등이 있다.

평가

세계 최대 온라인 개발자 커뮤니티인 스택오버플로에서 인기 언어별로 사용자 활동량을 집계했을 때, 지난 5년간 가장 폭발적으로 관심이 증가한 언어라는 결과를 받았고 프로그램이 언어 인기 지수인 티오베 인덱스에서 3위를 얻어냈다. 또 국내 기업인 삼성전자가 신입사원 대졸공채 전형에 파이썬을 추가한 것에 모자라 인문계열의 지원자들에게도 파이썬을 쓸 수 있는지 질문했다고 알려져 파이썬의 인기와 주목도는 더욱 올라가고 있다.

전망

4차 산업혁명의 핵심 기술인 딥러닝의 프레임 워크들 중 최초의 딥러닝 라이브러리 테아노, 가장 인기 있는 딥러닝 라이브러리 텐서플로우, 오픈 소스 신경망 라이브러리 케라스 모두 파이썬 기반이기 때문에 전망 역시 좋게 평가 받고 있다.

개발 프로세스의 발전

다음은 개발 프로세스의 발전 과정과 향후에 대해 파이썬의 개발자인 귀도 반 로썸이 직접 언급한 내용을 발췌한 것이다.

"파이썬 언어는 계속 변화하고 있다. 우리는 언어와 라이브러리에 새 기능을 추가해 왔다. 가장 큰 변화라면 역시 인기가 높아진 것이다. 5년 전만 해도 파이썬은 이만큼 영향력 있는 언어가 아니었다. 그러나 이후 데이터 과학자를 위한 주요 툴로써 엄청난 인기를 얻었다. 동시에 코어 개발자 입장에서는 완벽한 결정을 내려야 한다는 부담이 더 커졌다. 그러나 전반적으로 일을 수행하는 방식, 개발하는 방식, 파이썬 언어를 내놓는 방식은 매우 안정적이다. 예를 들어 릴리즈 매니저가 있고, 주요 릴리즈 사이에는 1년 6개월 정도의 기간을 둔다. 버그 픽스 릴리즈는 필요할 때 몇 개월 혹은 분기마다 이루어진다. 파이썬 개선 제안 프로세스도 안정적이다. 이번 PEP 관련 논란이 큰 대립처럼 보이는 것은 소셜 미디어를 통해 크게 확산한 것이 한 이유라고 본다. 몇 년 전 코드 관리를 머큐리얼(Mercurial)에서 (Git)으로 전환한 것을 빼면, 매우 안정적으로 운영됐고 특별한 이상징후는 없다고 생각한다."

각주

  1. 슬레이라, 〈파이썬 개요 정리〉 , 《네이버 블로그》, 2019-02-07
  2. WikiDocs, 〈파이썬이란?〉 , 《wikidocs》, 2014-04-08
  3. WikiDocs, 〈파이썬이란?〉 , 《wikidocs》, 2014-04-08

참고자료

같이 보기


  검수요청.png검수요청.png 이 파이썬 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.