codestates / codestates/ds-blog
[문승태] Python 너는 누구니?
- Dominant language
- No language data
- Stars
- 2
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
Python 너는 누구니?
Python의 정체를 알아보자
데이터 사이언스, 빅 데이터, AI, 기계 학습 등을 들어본적이 있을 것이다. 요즘 4차 산업혁명이라하여 매우 핫한 분야들이고, 정부에서도 많이 거론하고 지원한다는 분야들이다. 이들의 가장 큰 공통점 중에 하나는 Python이라는 컴퓨터 프로그래밍 언어를 사용한다는 사실이다. 그렇다면 Python은 도대체 무엇일까? 사실 Python이라는 언어를 심도있게 설명하기에는 매우 많은 시간과 자료를 필요로 한다. 그러므로, 여기에서는 기술적으로 복잡한 내용을 다루기 보다는, Python의 역사와 그 것의 장단점에 대해 간단히 소개하도록 하겠다. 그래서 누군가가 당신이 Python이 뭐야라고 물었을 때, 몇 마디의 기본적이면서도 간단한 대답은 할 수 있기를 바란다. 그리고 Python이라는 언어에 흥미를 가지고 더 알아보고 싶어하는 마음이 생기기를 바란다.
Python의 유례
Python은 1991년 구글에서 일하던 Guido Van Rossum이라는 개발자에 의해 배포되었다. 그는 개발자 중심으로 좀 더 논리적이고 직관적인 코드를 짤 수 있는 언어가 필요하다고 느꼈고, 그러한 부분에서 단점을 가지고 있던 기존의 'ABC 언어(1)'를 대체할 목적으로, 처음에는 사이드 프로젝트로 시작을 했다. 재미있는 사실은 그는 영국의 유명한 코미디 그룹인 Monty Python's Flying Circus의 팬이어서, 그 프로젝트의 이름을 "Python" 이라 칭하였고, 이 것이 나중에 언어의 공식적이 이름이 되어 배포되었다는 것이다.
Python의 장점
기존에 존재하던 다른 프로그래밍언어들(C, C++ 등등)과 비교하여 코드의 신뢰성을 중심으로 개선하였으며, 논리적이고 명확한 코딩을 하기에 좋은 언어로 만들어졌다. 그런 만큼 초보자들이 배우기 쉽고, 소규모의 프로젝트를 진행하는데 상당히 좋은 언어이다. 또한 매우 방대한 라이브러리를 가지고 있어, 수학적 연산에 유리하며, 데이터 사이언스 등에 널리 사용되고 있다(2). C++ 처럼 객체지향적(object-oriented) 언어이지만, C++ 와 달리 memory management를 수동으로 하지 않다도 된다는 장점이 있다.
Python의 단점
안타깝게도, C 및 C++ 언어와 비교하였을 때 속도가 느린편이다. 이러한 점 때문에 모바일 앱 개발 등에서는 잘 쓰이지 않는 편이다. 또한 memory management를 수동으로 하지 않아도 된다는 장점은, 사실 Python이 다양한 data-type을 지원하기 때문에 그만큼 메모리를 많이 쓸 수 밖에 없기 때문이기도 하다. 이 때문에 고사양의 메모리를 요구하는 어플리케이션에 적합하지 않다는 단점이 되기도 한다. (3)
위 단점에도 불구하고, Python은 그 접근성 때문에 세계에서 가장 활발하고 많은 커뮤니티들이 존재한다. 이 사실은 Python을 배울 수 있는 리소스와, 서포트를 받을 수 있는 커뮤니티와 개발자들의 수를 매우 방대하게 한다. 또한 python을 위한 라이브러리 역시 오픈소스로 방대하게 생성되어 있어, 조금만 검색해도 당신이 원하는 기능을 가진 라이브러리를 쉽게 찾아 쓸 수 있다는 장점이 있다. 당신이 프로그래밍을 입문하고 싶은 사람이거나, 재미있는 언어를 배우고 싶다면, 아주 적극적으로 Python을 추천한다. 이제 Python에 관심을 가지게 되었는가? 그렇다면 지금 당장 인터넷에서 python에 관한 자료들을 검색하라, 당신 앞에는 매우 흥미로운 세계가 열릴 것이다!
Reference:
(1) https://en.wikipedia.org/wiki/ABC_(programming_language)
(2) https://en.wikipedia.org/wiki/ABC_(programming_language)
(3) http://net-informations.com/python/iq/disadvantages.htm
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.