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

"파이썬"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(각주)
(참고자료)
 
(사용자 7명의 중간 판 53개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''파이썬'''<!--파이선-->(Python)은 1990년 [[네덜란드]] [[암스텔담]]의 [[귀도 반 로썸]](Guido van Rossum)이 개발한 객체 지향 [[스크립트 언어|스크립트]] [[프로그래밍 언어]]이다. 별도의 [[컴파일]] 과정이 필요 없어 개발기간이 단축되고, [[리눅스]]나 [[윈도우]] 등 특정 [[플랫폼]]에 의존적이지 않고 독립적이다. 주로 [[장고]](Django) [[프레임워크]] 기반으로 개발한다.
+
[[파일:파이썬 로고.png|썸네일|200픽셀|'''파이썬'''(Python)]]
 +
[[파일:파이썬 글자.png|썸네일|300픽셀|'''파이썬'''(Python)]]
 +
[[파일:귀도 반 로썸.jpg|썸네일|200픽셀|'''[[귀도 반 로썸]]'''(Guido van Rossum)]]
 +
 
 +
'''파이썬'''<!--파이선-->(Python)은 1990년 네덜란드의 '''[[귀도 반 로썸]]'''(Guido van Rossum)이 개발한 객체 지향 [[스크립트 언어|스크립트]] [[프로그래밍 언어]]이다. 별도의 [[컴파일]] 과정이 필요 없어 개발기간이 단축되고, [[리눅스]]나 [[윈도우]] 등 특정 [[플랫폼]]에 의존적이지 않고 독립적이다. 주로 [[장고]](Django) [[프레임워크]] 기반으로 개발한다. 영어로 'python'은 '비단뱀'이라는 뜻이다. 파이썬의 이름은 개발자인 귀도 반 로썸이 즐겨보던 영국 BBC사의 코미디 시리즈 중 하나인 'Monty Python's Flying Circus'에서 따왔으며, 그리스 신화에 나오는 뱀의 이름과는 관계없다. 귀도 반 로썸은 짧고, 특별하고, 미스터리한 느낌의 단어를 찾았다고 파이썬 홈페이지에 명시되어 있다.
  
 
== 개요 ==
 
== 개요 ==
[[파일:파이썬.png|썸네일|200픽셀|파이썬(Python)로고]]
+
파이썬은 1991년에 귀도 반로썸(Guido van Rossum)이 발표한 대화형 프로그래밍 언어이다. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다. 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능하다. 파이썬은 대부분의 프로그래밍 언어가 하는 일을 쉽고 깔끔하게 처리한다. 파이썬은 시스템 유틸리티 제작, GUI 프로그래밍, C/C++와의 결합, 웹 프로그래밍, 수치 연산 프로그래밍, 데이터베이스 프로그래밍, 데이터 분석, 사물 인터넷 등 다양한 활용이 가능하다. 파이썬은 다른 언어에서 사용하는 문장 부호 대신 더 적은 수의 구문 구조를 가지고 있다.<ref>슬레이라, 〈[https://blog.naver.com/slayra?Redirect=Log&logNo=221460389158 파이썬 개요 정리]〉 , 《네이버 블로그》, 2019-02-07</ref>
파이썬은 1991년에 [[귀도 반로썸]](Guido van Rossum)이 발표한 대화형 프로그래밍 언어이다.
 
다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 실제 파이썬은 많은 상용 응용 프로그램에서 [[스크립트 언어]]로 채용되고 있다. 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능하다. 파이썬은 기본적으로 해석기(인터프리터) 위에서 실행될 것을 염두에 두고 설계되었다. 파이썬을 주로 사용하는 대표적인 프로젝트는 인스타그램, 유튜브, 레딧, 비트토렌트나 드롭박스 등이 있으며, 프레임워크인 장고와 플라스크가 있다.
 
게임 쪽에선 월드 오브 탱크의 상당 부분이 파이썬으로 구현되어 있고, EVE 온라인이 Stack less Python을 기반으로 개발되었다.
 
프로그램 외적으로는 구글이 자체 언어인 [[Go]]로 넘어가기 전에 파이썬을 주력으로 사용하고 있었으며, 카카오가 파이썬 기반으로 유명하다.
 
파이썬은 다른 언어에서 사용하는 문장 부호 대신 더 적은 수의 구문 구조를 가지고 있다.<ref>[https://blog.naver.com/slayra?Redirect=Log&logNo=221460389158 파이썬 개요 정리]〉</ref> , 《네이버 블로그》
 
 
 
* Python is Interpreted: 이것은 인터프리터에 의해 실행 시에 처리되고 실행하기 전에 프로그램을 컴파일할 필요가 없다. 이는 PERL과 PHP와 유사하다.
 
* Python is Interactive: 이것은 실제로 직접 프로그램을 작성하는 파이썬 프롬프트를 통해 인터프리터와 상호 작용을 할 수 있다.
 
* Python is Object-Oriented: 이것은 객체지향 스타일 또는 개체 내에서 코드를 캡슐화하는 프로그래밍 기술을 지원한다.
 
* Python is Beginner's Language: 파이썬은 초보 프로그래머를 위한 훌륭한 언어이며 게임, 웹, 간단한 텍스트 처리에서 다양한 애플리케이션의 개발까지 지원한다.
 
 
 
== 배경 ==
 
파이썬은 네덜란드 수학자 [[귀도 반로썸]](Guido van Rossum)에 의해 개발되었다. 원래 파이썬이라는 이름은 그리스 신화에 나오는 뱀을 뜻하지만 이와는 관계없다.  [[귀도 반로썸]](Guido van Rossum)은 자신이 좋아하는 코미디 프로그램 "Monty Python's Flying Circus"(몬티 파이썬의 날아다니는 서커스)에서 착안해 이름을 붙였다. 프로그래밍 언어 중에서도 무척 오래된 [[포트란]](Fortran)이 1954년에, 지금도 폭넓게 사용하는 [[C 언어]]가 1972년에 공개됐다는 것을 생각하면 1991년에 나온 파이썬은 비교적 최신 언어라고 할 수 있다. 프로그래밍 언어에는 파이썬뿐만 아니라 [[C언어]], [[자바]], [[자바스크립트]] 등 여러 가지가 있다. 하지만 그중에서 파이썬이 가장 널리 사용되고 있는 것으로 알려져 있다.
 
  
 
== 역사 ==
 
== 역사 ==
 +
파이썬은 ABC, Modula-3, C, C++, Algol-68, SmallTalk, Unix shell과 다른 스크립트 언어를 포함하여 많은 다른 언어에서 파생되었다.
  
 
=== 파이썬2 ===
 
=== 파이썬2 ===
파이썬 2.0은 2000년 10월 16일 배포되었고, 많은 기능이 추가되었다. 그중 전면적인 쓰레기 수집기(GC, Garbage Collector)탑재와 유니코드 지원이 특징적이다. 그러나 가장 중요한 변화는 개발 절차 그 자체로, 더 투명하고 공동체 지원을 받는 형태가 되었다.
+
파이썬 2.0은 2000년 10월 16일 배포되었고, 많은 기능이 추가되었다. [[쓰레기 수집기]](GC, Garbage Collector)가 탑재되었고 [[유니코드]]를 지원한다.  
  
 
=== 파이썬3 ===
 
=== 파이썬3 ===
파이썬3000이라는 코드명을 지닌 파이썬의 3.0버전의 최종판이 긴 테스트를 거쳐 2008년 12월 3일자로 발표되었다. 2.x대 버전의 파이썬과 하위호환성이 없다는 것이 가장 큰 특징이다. 파이썬 3의 주요 기능 다수가 이전 버전과 호환되게 2.6과 2.7 버전에도 반영되기도 하였다.
+
파이썬 3.0 최종판은 2008년 12월 3일에 발표되었다. 2.x대 버전의 파이썬과 하위호환성이 없다는 것이 가장 큰 특징이다. 파이썬 3의 주요 기능 다수가 이전 버전과 호환되게 2.6과 2.7 버전에도 반영되기도 했다.
파이썬 공식 문서에서는 파이썬2를 낡은 기술이라 했다. 처음 배우는 프로그래머들은 파이썬 3으로 시작하는 것을 권장하고 있다.
+
 
2.x대 버전 과의 차이를 간략히 요약하면 다음과 같다.
+
=== 파이썬2와 파이썬3의 차이 ===
* 한글 변수 사용 가능.
+
* 모든 변수가 [[객체]]로 처리된다.  
* print 명령문이 print() 함수로 바뀌게 되었다.
+
* 한글 변수를 사용할 수 있다.
* 사전형과 문자열형과 같은 내장자료형의 내부적인 변화 및 일부 구형의 구성 요소 제거.
+
* print 명령문이 print() 함수로 바뀌었다.
* 표준 라이브러리 재배치.
+
* 사전형과 문자열형과 같은 내장자료형이 내부적으로 변화했고 및 일부 구형의 구성 요소가 제거됐다.
* python 3. x 부터 모든 문자는 유니코드 처리한다. 유니코드 특성상 2바이트 혹은 4바이트를 차지하는데 2. x 는 기본 1바이트이기 때문에 속도 차이는 당연히 날 것이고 이 문제를 해결하기 위해 3.3 버전 이후부터 문자열 객체에서 가장 많은 바이트를 차지하는 문자를 기준으로 각 문자가 차지할 공간을 정하도록 변경되었다.
+
* 표준 라이브러리가 재배치됐다.
 +
* 모든 문자를 유니코드로 처리한다. 유니코드의 특성 상 2바이트 혹은 4바이트를 차지하는데 2. x 는 기본 1바이트를 차지함으로 이로 인해 일어난 속도 차이를 해결하기 위해 3.3 버전 이후부터 문자열 객체에서 가장 많은 바이트를 차지하는 문자를 기준으로 각 문자가 차지할 공간을 정하도록 변경되었다.
  
 
== 특징 ==
 
== 특징 ==
 +
* '''객체 지향 프로그래밍 언어''' : 파이썬은 [[객체]]를 중심으로 [[메소드]]가 [[데이터]]에 접근해서 객체의 속성을 조작하는 형태의 [[객체 지향 프로그래밍 언어]]이다.
 +
 +
* '''범용 프로그래밍 언어''' : 파이썬은 다양한 도메인의 소프트웨어를 개발하기 위해 설계된 [[범용 프로그래밍 언어]]이다.
  
# 범용 프로그래밍 언어 : 파이썬은 간결하면서 효율적인 프로그램을 빠르게 작성할 수 있다.
+
* '''생산성''' : 파이썬은 [[인터프리터 언어]]로 [[인터프리터]]에 의해 실행 시에 처리되고 실행하기 전에 프로그램을 컴파일할 필요가 없으며 여러 모듈을 지원하기 때문에 생산성이 높고 개발 속도가 빠르다.
# 인터프리터 언어 : 키워드가 적고 구조가 단순하며 구문이 명확하기 때문에 초보자에게 좋은 컴퓨터 언어 중 하나이다.
 
# 직관적 문법 : 다른 프로그래밍 언어와 비교했을 때 파이썬은  인간이 사용하는 언어와 유사하여 읽기 쉽다.
 
# 생산성이 매우 높다.
 
# 빠른 개발 속도 : 초보자들에게도 배우기 쉬운 언어인 만큼 개발 기간이 매우 단축된다.  
 
  
=== 주요기능 ===
+
* '''가독성과 디자인''' : 다음은 파이썬의 공식 홈페이지에서 발췌한 디자인 원리의 일부이다.
* Easy-to-learn: 파이썬은 상대적으로 몇 가지 키워드, 구조가 간단하고, 명확하게 정의된 구문이 있다. 이는 비교적 짧은 시간에 언어를 선택할 수 있다.
+
Beautiful is better than ugly. 아름다운 것이 추한 것보다 낫다.
* Easy-to-read: 파이썬 코드는 훨씬 더 명확하게 정의되어 있고 눈에 잘 들어온다.
+
Explicit is better than implicit. 명시적인 것이 묵시적인 것보다 낫다.
* Easy-to-maintain: 파이썬의 성공은 소스 코드가 상당히 유지 관리가 쉽다는 데 있다.
+
Simple is better than complex. 간결한 것이 복잡한 것보다 낫다.
* A broad standard library: 파이썬의 가장 큰 장점 중 하나는 [[UNIX]], [[Windows]] 및 [[Macintosh]]의 플랫폼 위에서 매우 휴대하기 쉽고 크로스 플랫폼 호환이 되는 라이브러리가 대부분 존재한다.
+
Complex is better than complicated. 복잡한 것이 난해한 것보다 낫다.
* Interactive Mode: 코드의 테스트와 디버깅 그리고 결과를 터미널에서 바로 확인할 수 있는 상호 작용을 하는 대화형 모드를 지원한다.
+
Flat is better than nested. 수평적인 것이 계층적인 것보다 낫다.
* Portable: 파이썬은 다양한 하드웨어 플랫폼에서 실행되며, 모든 플랫폼에서 동일한 인터페이스를 가지고 있다.
+
Readability counts. 가독성이 중요하다.
* Extendable: 파이썬 인터프리터에 낮은 수준의 모듈을 추가할 수 있다. 이 모듈들은 자신의 도구에 추가하거나 수정해서 좀 더 효율적인 프로그래머가 되게 할 수 있다.
+
이러한 디자인 원리를 바탕으로 만들어진 파이썬은 타 언어들에 비해 문법이 엄격하다. 들여쓰기를 의무화하고 있으며 들여쓰기 자체로 하나의 코드가 블럭화되며 직관적인 문법을 갖고 있기 때문에 파이썬은 가독성이 뛰어나다.  
* Databases: 파이썬은 모든 주요 상용 데이터베이스에 대한 인터페이스를 제공한다.
 
* GUI Programming: 파이썬은 많은 시스템 호출, 라이브러리와 같은 [[윈도우 MFC]], [[매킨토시]] 및 [[유닉스]]의 X 윈도우 시스템과 윈도우 시스템을 만들어 이식할 수 GUI 응용 프로그램을 지원한다.
 
* Scalable: 파이썬은 더 나은 구조와 셸 스크립트보다 큰 프로그램에 대한 지원을 제공한다.
 
  
추가적으로 기능 및 구조적 프로그래밍 방법뿐만 아니라 OOP를 지원한다.
+
=== 주요 기능 ===
이는 스크립트 언어로 사용할 수 있고 또는 큰 응용 프로그램을 구축하기 위한 바이트 코드로 컴파일 할 수 있다.  
+
* 파이썬은 실제로 직접 프로그램을 작성하는 파이썬 프롬프트를 통해 인터프리터와 상호 작용할 수 있다.
매우 높은 수준의 동적 데이터 유형과 동적 유형 검사를 지원한다. 자동 가비지 컬렉션(GC)을 지원한다.  
+
* 파이썬은 객체 지향 스타일 또는 객체 내에서 코드를 캡슐화하는 프로그래밍 기술을 지원한다.  
그것은 쉽게[[C]], [[C++]], [[COM]], [[ActiveX]], [[CORBA]] 및 [[Java]]와 통합될 있다.
+
* 파이썬은 [[UNIX]], [[Windows]] 및 [[Macintosh]]의 플랫폼 위에서 매우 휴대하기 쉽고 크로스 플랫폼 호환이 되는 라이브러리가 대부분 존재한다.
 +
* 코드의 테스트와 디버깅 그리고 결과를 터미널에서 바로 확인할 수 있는 상호 작용을 하는 대화형 모드를 지원한다.
 +
* 파이썬은 다양한 하드웨어 플랫폼에서 실행되며, 모든 플랫폼에서 동일한 인터페이스를 가지고 있다.
 +
* 파이썬 인터프리터에 낮은 수준의 모듈을 추가할 수 있다. 이 모듈들은 자신의 도구에 추가하거나 수정해서 좀 더 효율적인 프로그래머가 되게 할 수 있다.
 +
* 파이썬은 모든 주요 상용 [[데이터베이스]]에 대한 [[인터페이스]]를 제공한다.
 +
* 파이썬은 많은 시스템 호출, 라이브러리와 같은 [[윈도우 MFC]], [[매킨토시]] 및 [[유닉스]]의 X 윈도우 시스템과 윈도우 시스템을 만들어 이식할 GUI 응용 프로그램을 지원한다.<ref>WikiDocs, 〈[https://wikidocs.net/833 파이썬이란?]〉 , 《wikidocs》, 2014-04-08</ref>
  
 
== 종류 ==
 
== 종류 ==
''' 해석 프로그램의 종류'''
+
===해석 프로그램의 종류===
=== CPython ===
+
* '''CPython''' : C로 작성된 인터프리터
C로 작성된 인터프리터
+
* '''스택리스 파이썬''' : C 스택을 사용하지 않는 인터프리터
 +
* '''Jython''' : 자바가상머신용 인터프리터
 +
* '''lronPython''' : .NET 플랫폼용 인터프리터
 +
* '''PyPy''' : 파이썬으로 작성된 파이썬 인터프리터
  
=== 스택리스 파이썬 ===
+
== 활용 ==
C 스택을 사용하지 않는 인터프리터
+
파이썬을 주로 사용하는 대표적인 프로젝트는 인스타그램, 유튜브, 레딧, 비트토렌트나 드롭박스 등이 있으며, 프레임워크인 장고와 플라스크가 있다.
 +
게임 쪽에선 월드 오브 탱크의 상당 부분이 파이썬으로 구현되어 있고, EVE 온라인이 Stack less Python을 기반으로 개발되었다.
 +
프로그램 외적으로는 구글이 자체 언어인 [[Go]]로 넘어가기 전에 파이썬을 주력으로 사용하고 있었으며, 카카오가 파이썬 기반으로 유명하다.<ref>WikiDocs, 〈[https://wikidocs.net/833 파이썬이란?]〉 , 《wikidocs》, 2014-04-08</ref>
  
=== Jython ===
+
또한 파이썬은 4차 산업혁명, 즉 빅 데이터와 인공지능 AI, 머신 러닝같은 분야에 적합하다.
자바가상머신용 인터프리터
 
  
=== lronPython ===
+
파이썬 언어를 사용하여 만든 [[암호화폐]]에는 [[이더리움]] 등이 있다.
.NET 플랫폼용 인터프리터
 
  
=== PyPy ===
+
== 평가 ==
파이썬으로 작성된 파이썬 인터프리터
+
세계 최대 온라인 개발자 커뮤니티인 [[스택오버플로]]에서 인기 언어별로 사용자 활동량을 집계했을 때, 지난 5년간 가장 폭발적으로 관심이 증가한 언어라는 결과를 받았고 프로그램이 언어 인기 지수인 티오베 인덱스에서 3위를 얻어냈다. 또 국내 기업인 삼성전자가 신입사원 대졸공채 전형에 파이썬을 추가한 것에 모자라 인문계열의 지원자들에게도 파이썬을 쓸 수 있는지 질문했다고 알려져 파이썬의 인기와 주목도는 더욱 올라가고 있다.
 
 
== 활용 ==
 
파이썬 언어를 사용하여 만든 [[암호화폐]]에는 이더리움 등이 있다.
 
  
* '''[[이더리움]]'''(Ethereum) : 이더리움은 [[블록체인]] 기술을 기반으로 [[스마트 계약]] 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다. [[스위스]]를 거점으로 하는 [[이더리움 재단]](Ethereum Foundation)에서 개발했다.
+
== 전망 ==
 +
[[4차 산업혁명]]의 핵심 기술인 [[딥러닝]]의 프레임 워크들 중 최초의 딥러닝 라이브러리 [[테아노]], 가장 인기 있는 딥러닝 라이브러리 [[텐서플로우]], 오픈 소스 신경망 라이브러리 [[케라스]] 모두 파이썬 기반이기 때문에 전망 역시 좋게 평가 받고 있다.
  
== 평가 ==
+
== 개발 프로세스의 발전 ==
프로그래밍 언어 파이썬을 향한 개발자들의 관심이 뜨겁다. 세계 최대 온라인 개발자 커뮤니티인 스택오버플로에서 인기 언어별로 사용자 활동량을 집계한 결과, 파이썬이 지난 5년 간 가장 폭발적으로 관심이 증가한 언어로 나타났다.
+
다음은 개발 프로세스의 발전 과정과 향후에 대해 파이썬의 개발자인 [[귀도 반 로썸]]이 직접 언급한 내용을 발췌한 것이다.
  
== 각주 ==
+
{{인용문|
 +
"파이썬 언어는 계속 변화하고 있다. 우리는 언어와 라이브러리에 새 기능을 추가해 왔다. 가장 큰 변화라면 역시 인기가 높아진 것이다. 5년 전만 해도 파이썬은 이만큼 영향력 있는 언어가 아니었다. 그러나 이후 데이터 과학자를 위한 주요 툴로써 엄청난 인기를 얻었다. 동시에 코어 개발자 입장에서는 완벽한 결정을 내려야 한다는 부담이 더 커졌다. 그러나 전반적으로 일을 수행하는 방식, 개발하는 방식, 파이썬 언어를 내놓는 방식은 매우 안정적이다. 예를 들어 릴리즈 매니저가 있고, 주요 릴리즈 사이에는 1년 6개월 정도의 기간을 둔다. 버그 픽스 릴리즈는 필요할 때 몇 개월 혹은 분기마다 이루어진다. 파이썬 개선 제안 프로세스도 안정적이다. 이번 PEP 관련 논란이 큰 대립처럼 보이는 것은 소셜 미디어를 통해 크게 확산한 것이 한 이유라고 본다. 몇 년 전 코드 관리를 [[머큐리얼]](Mercurial)에서 [[깃]](Git)으로 전환한 것을 빼면, 매우 안정적으로 운영됐고 특별한 이상징후는 없다고 생각한다."}}
  
* D.O의〈[https://dany-it.tistory.com/16 파이썬(Python)의 역사와 특징에 대하여]〉 , 《티스토리》, 2017.07.23
+
{{각주}}
* WikiDocs 〈[https://wikidocs.net/833 파이썬이란?]〉 , 《wikidocs》, 2014.04.08
 
  
 
== 참고자료 ==
 
== 참고자료 ==
91번째 줄: 86번째 줄:
 
*〈[https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC 파이썬]〉 , 《위키백과》
 
*〈[https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC 파이썬]〉 , 《위키백과》
 
*〈[https://namu.wiki/w/Python 파이썬]〉 , 《나무위키》
 
*〈[https://namu.wiki/w/Python 파이썬]〉 , 《나무위키》
*〈[https://blog.naver.com/slayra?Redirect=Log&logNo=221460389158 파이썬 개요 정리]〉 , 《네이버 블로그》
+
*〈[https://zetawiki.com/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC 파이썬]〉 , 《제타위키》
* D.O의〈[https://dany-it.tistory.com/16 파이썬(Python)의 역사와 특징에 대하여]〉 , 《티스토리》, 2017.07.23
+
* 슬레이라, 〈[https://blog.naver.com/slayra?Redirect=Log&logNo=221460389158 파이썬 개요 정리]〉 , 《네이버 블로그》, 2019-02-07
* WikiDocs 〈[https://wikidocs.net/833 파이썬이란?]〉 , 《wikidocs》, 2014.04.08
+
* D.O, 〈[https://dany-it.tistory.com/16 파이썬(Python)의 역사와 특징에 대하여]〉 , 《티스토리》, 2017-07-23
* 임유경 기자, 〈[http://www.zdnet.co.kr/view/?no=20170913005946 프로그래밍 언어 '파이썬' 인기 폭발…왜?]〉, 《지디넷》, 2017.09.14
+
* WikiDocs, 〈[https://wikidocs.net/833 파이썬이란?]〉 , 《wikidocs》, 2014-04-08
* 돌이 〈[https://soul0.tistory.com/436 파이썬_Python에 대한 개념 및 이해하기]〉 , 《티스토리》, 2017.06.27
+
* 임유경 기자, 〈[http://www.zdnet.co.kr/view/?no=20170913005946 프로그래밍 언어 '파이썬' 인기 폭발…왜?]〉, 《지디넷》, 2017-09-14
 +
* 돌이, 〈[https://soul0.tistory.com/436 파이썬_Python에 대한 개념 및 이해하기]〉 , 《티스토리》, 2017-06-27
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2022년 4월 22일 (금) 23:37 기준 최신판

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