프로그래밍을 하시는 분이라면, 아니, 알고리즘과 프로그래밍을 초등학교부터 시키고자 하는 최근 경향을 본다면 뉴스에서나 신문에서 파이썬이라는 단어를 한번 쯤은 보셨으리라 생각합니다.
저는 프로그래밍을 업으로 삼게 되면서, 자연스럽게 파이썬에 대해서 알게 되었습니다. 물론, 주 언어가 아니고, 스크립트를 짤 때만 사용하기 때문에 그 수준은 낮습니다. 어찌되었든, 파이썬은 한때 엄청난 인기를 끌 정도로 사용하기도 편하고, 배우기도 쉬워서 각광을 받았습니다. 요즘은 잘 모르겠네요. 워낙 언어들이 많이들 나오는 추세라서 말입니다. 어찌되었든 이번에는 이러한 파이썬에 대해서 정리하겠습니다.
파이썬이란 무엇인가요.
파이썬은 1991년에 발표된 프로그래밍 언어 중 하나입니다. 파이썬을 만든 사람은 귀도 판 로썸이라는 사람으로 1989년도 크리스마스가 있던 주에 연구실이 닫혀있어서, 심심한 차에 만들었다고 하네요. 하.. 이런 얘기를 들을 때면 항상 한 가지를 느낍니다. 역시, 천재는 천재다. 근데 즐기는 천재는 엄청나다라는 걸 말입니다.
이러한 파이썬의 문법은 굉장히 쉬운 편입니다. 따라서 초보자들이 처음으로 프로그래밍을 배울 때 주로 추천되는 언어입니다. 요즘, 초등학교도 파이썬으로 학습하는 곳이 있다고 들었으니, 그 수준이 어느정도인지 알겠죠.
파이썬은 어떻게 구현되었나요.
파이썬은 C언어로 구현되었습니다. 그리고 다른 구현체와 구분하여 언급할 때는 CPython이라고 표기한다고 합니다. C#으로 구현된 닷넷 프레임워크 위에서 동작하는 IronPython도 있고, CPython에서 C 스택을 없앤 Stackless Python도 있습니다. 또한, Java로 구현된 Jython도 있고, 파이썬 자체로 구현된 PyPy 등이 있다고 합니다.
Python 2와 Python 3 중, 어떤게 더 좋은건가요.
일단 위키에서의 글을 보자면, 이제는 Python 3이 낫다고 합니다. 음.. 먼저, 파이썬을 접해본 분들이라면 다들 아실 것입니다. Pyhon 2와 Python은 비슷한 부분 만큼이나 호환되지 않는 부분도 많다는 것을 말입니다. 그래서 저 같은 경우에는 제대로 문법을 숙지하지 않아서인지, 많은 혼란이 있었습니다. 아무튼 이러한 점 때문에 파이썬을 학습, 구현을 목표로 할 때, 둘 중에 하나를 선택해야 하는 문제가 발생했다고 합니다. 그리고 Python 2부터 대중화가 시작된 만큼 계속해서 누적된 코드들은 Python 2를 기반으로 한 코드들이 많았다고 합니다. 하지만, Python 2는 2.7에서 Python 3과 호환되도록 언어를 보완한 이후로 더이상의 기능을 추가하지 않았다고 하네요. 그래서 Python 2를 주로 하던 사람들은 강제 이주행이 되었습니다. 아무튼, Python 3.4 부터는 Python 2에 비해서 강력한 기능들을 제공하기 시작했다고 합니다.
파이썬의 장점은 무엇인가요.
1. 높은 생산성입니다.
파이썬은 인터프리터 언어면서 우수한 자료형과 다양한 모듈 등을 제공합니다. 따라서 개발기간이 매우 단축되는 것이 파이썬의 특징이라고 합니다. 또한, C언어와 접착성도 좋기 때문에 Python으로 빠르게 구현하고, 나머지 시간에 속도에 병목이 되는 부분을 C로 전환하는 전략을 세우기도 한다고 합니다.
2. 반복 가능한 객체입니다.
파이썬은 반복 가능한 객체라는 강력한 기능을 제공합니다. 이 객체는 집합, 문자열, 리스트, 튜플, 딕셔너리, 함수까지도 반복이 가능합니다. 또한, for 구문에서 사용할 수도 있습니다. 리스트와 튜플 등은 약간의 편해짐 정도라고 한다면, 함수의 값을 반복할 수 있다는 것은 큰 장점이라고 할 수 있습니다.
3. 파이썬만의 디자인 철학이 있습니다.
파이썬의 문법은 굉장히 엄격한 편이라고 합니다. 예를 들면, 들여쓰기가 의무입니다. 들여쓰기 자체로 하나의 코드 블럭이 됩니다. 이러한 코드 블럭을 명시적으로 표시하지 않아도 되기 때문에 비주얼 면에서는 굉장히 깔끔하지만, 반면에 자유도를 제약한다는 평도 있다고 합니다.
파이썬의 단점은 무엇인가요.
1. 멀티스레딩에 문제가 있습니다.
파이썬은 멀티스레딩을 지원하기 위해서 GIL(Global Interpreter Lock), 즉 전역 인터프리터 락을 도입하여 사용하게 되었다고 합니다. 따라서 python 스레드 10개를 만든다고 하더라도 실제 Pthread/윈도우 스레드가 10개가 만들어지긴 하지만, GIL 때문에 동시에 하나만 돌아가는 이상한 구조를 갖게 되었다고 합니다.
이러한 구조는 구현이 매우 쉬워지고 빠른 개발을 할 수 있다는 장점이 있지만, 다중 코어 CPU가 보편화된 이후에는 다중 코어를 제대로 활용하지 못하는 구조적인 문제로 성능에서 밀린다는 평가를 받고 있다고 합니다.
파이썬의 라이브러리 및 프레임워크에는 무엇이 있나요.
1. Django
Django도 프로그래밍을 하시는 분이라면 한번 쯤은 꼭 들어볼 법한 용어입니다. 이것은 Python 기반 웹 프레임워크 중에서 가장 널리 퍼져있는 것입니다. 일반적으로는 파이썬을 웹 서비스에 쓴다고 하면 Django 또는 Flask를 쓴다고 생각하시면 되겠습니다.
이상 파이썬에 대한 개요? 특징? 비슷하게 정리해보았습니다. 저도 요즘 스크립트를 짜기 위해서 파이썬 문법을 공부하고 있습니다. 역시, 명성대로 굉장히 쉽네요. 뭔가 탭 들여쓰기, 내어쓰기만 잘하면 굉장히 편하게 프로그래밍을 할 수 있다는 느낌도 받게 되었구요. 글을 읽는 분들도 한번 쯤은 써보시기 바랍니다.
출처 : 나무위키
https://namu.wiki/w/Python
[금융] CMA이란? 자산관리계좌란? (0) | 2017.07.02 |
---|---|
[스포츠] UFC 이란? [UFC 정리] (0) | 2017.07.01 |
[상식] 공기업이란 (0) | 2017.06.30 |
[금융] 보험이란? (0) | 2017.06.30 |
[금융] 제 1금융권/제 2금융권/제 3금융권 차이 및 특징 (0) | 2017.06.29 |
댓글 영역