파이썬(python)이란?
파이썬은 1991년 발표된 인터프리터 언어로 귀도 반 로섬(Guido Van Rossum)이 창시하였습니다.
C나 Java와 같은 다른 언어에 비해 문법이 쉽고 직관적이기 때문에 프로그래밍 입문자에게 권장되는 언어이며 딥러닝, 데이터 사이언스 관련 프레임워크와 라이브러리가 잘 구비되어 있기 때문에 해당 분야에 관심있는 사람들에게도 각광받는 언어입니다.
파이썬의 특징
1. 쉬운 난이도
- 상기했듯 프로그래밍 입문자에게 권장되는 만큼 매우 쉬운 문법 체계를 가지고 있습니다.
"Hello, World!" 출력을 기준으로 C와 비교를 해 볼까요?
#include <stdio.h>
int main(){
printf("Hello, World!\n");
return 0;
}
C언어로 작성한 "Hello, World!" 출력 코드입니다.
프로그래밍에 익숙하지 않은 분들이라면 직관적으로 이해할 수 없을 부분이 꽤 보입니다.(#include는 뭐고 stdio.h는 또 뭐고 return 0이니 뭐니 등등..)
필자 또한 고등학생때 C로 처음 프로그래밍에 입문했는데 헤더파일이니 뭐니 좀 헷갈렸었던 기억이 있습니다.
print("Hello, World!")
파이썬으로 작성한 "Hello, World!"출력 코드입니다.
한 눈에 봐도 직관적이죠? 프로그래밍을 아예 모르는 사람이 봐도 print라는 단어를 통해 무슨 역할을 하는지 유추해 볼 수 있습니다.
이처럼 문법이 직관적이고 쉽다는 특징을 가지고 있습니다.
2. 유지보수 및 협업에서의 용이함
- 파이썬은 문법 체계가 통일되어 있습니다. 이는 곧 코드를 알아보기 쉽다는 뜻이고 그만큼 추후 프로그램을 유지보수할때 편리합니다. 특히 같은 파이썬 개발자들끼리 피드백을 주고 받기 편하기 때문에 이는 협업을 할 때에도 큰 이점으로 작용합니다.
3. 높은 생산성 및 확장성
- 파이썬은 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary)등과 같은 다양한 자료구조를 기본 내장으로 지원하며 다양하고 폭넓은 라이브러리, 프레임워크가 존재하기 때문에 난이도에 비해 높은 생산성을 자랑합니다. 또한 C나 C++같은 다른 언어와 접착성이 좋아 프로그램을 확장하는데도 용이합니다.
4. 순수 객체지향
- 파이썬은 모든 것을 객체로 취급합니다. 단순히 변수 뿐만 아니라 함수, 클래스, 심지어는 상수 또한 객체로 취급합니다.
5. 플랫폼에 종속적이지 않음
- 파이썬은 윈도우, 리눅스, 맥 등 어떤 플랫폼에서든 동일하게 동작합니다.
파이썬이 사용되는 분야
파이썬은 특유의 간결하고 쉬운 문법과 더불어 다양한 라이브러리와 프레임워크를 보유하고 있어 넓은 분야에서 사랑받고있습니다.
대표적으로 몇 가지만 기술해보겠습니다.
1. GUI 프로그래밍
- GUI 프로그래밍을 위한 다양한 모듈을 지원하기 때문에 쉽게 GUI 프로그램을 만들 수 있습니다. 대표적인 모듈로는 기본으로 제공되는 Tkinter가 있습니다.
2. 웹 프로그래밍
- Django, Flask와 같은 막강한 웹 개발 프레임워크를 가지고 있기 때문에 웹 개발에 자주 이용됩니다. 물론 국내에서는 아직 파이썬으로 웹 개발을 하는 기업은 많지 않지만 해외에서는 이미 주류로 자리잡았습니다. 대표적으로 instagram도 파이썬(Django)로 개발된 웹 사이트입니다.
3. 데이터 분석
- numpy, pandas, matplotlib 등의 데이터 분석을 위한 모듈이 다수 존재하며 이를 통하여 데이터를 분석하고 시각화할 수 있습니다. 아직까지는 데이터 분석에 R을 사용하는 경우가 더 많은 것으로 보이지만 점점 파이썬 이용자도 늘어나고 있는 추세입니다. 특히 위에서 말한 웹 프레임워크와 쉽게 결합해서 사용할 수 있다는 장점이 있습니다.
4. 머신러닝
- 데이터 분석과 같은 맥락으로 텐서플로우(TensorFlow)나 파이토치(Pytorch)와 같은 막강한 라이브러리들을 지원하고 위에 특징 문단에서 서술했듯이 다른 언어와의 접착성이 좋아 머신러닝 분야에 있어 강점을 지니고 있습니다.
이 외에도 DB 프로그래밍, 시스템 유틸리티 프로그램 제작 등에도 파이썬이 사용되고 있습니다.
'파이썬' 카테고리의 다른 글
파이썬(python) - 네임 맹글링(name mangling) (5) | 2020.10.30 |
---|---|
파이썬(python) - _(언더바, 언더스코어) (4) | 2020.10.30 |
파이썬(python) - 데코레이터(Decorator) (2) | 2020.10.09 |
파이썬(python) - 클로저(Closure) (0) | 2020.10.09 |
파이썬(python) - 일급 객체(first-class citizen) (1) | 2020.10.09 |