[Python] 파이썬을 쓰는 이유
<[Python] 파이썬을 쓰는 이유>
안녕하세요.
파이썬을 쓰는 이유 로 돌아온, 개발자 김모씨 입니다.
가장 '우아한' 언어라고 불리는 프로그래밍 언어죠. 파이썬 입니다.
파이썬은 네델란드 출신의 '귀도 반 로섬'이라는 분에 의해 개발되었는데요.
Microsoft와의 인터뷰에 따르면,
'심심한 김에' 만들었다고 하죠.....(천재는 심심하면 세상을 바꾼다!)
크리스마스 주에 연구실이 닫혀있어서, 집에서 만들었다고 합니다. ㄷㄷㄷㄷㄷ
비슷한 사례로, 리눅스를 만든 '리누스' 라는 분도 계십니다.
리눅스도 핀란드 헬싱키 공대의 대학생이었던 리누스 토르발스가 심심해서 만든 OS로 유명합니다. (천재X들....)
초기에는 다소 불안정했지만, 대기업들이 리눅스 개발을 지원하는 등 발전을 거듭해 갓급의 OS로 재탄생했죠!
귀도반로섬은 유럽 쪽에서는 '애덤스미스'에 비교할 정도로 유명하신 분입니다ㅋㅋㅋㅋㅋ
'보이지 않는 손' 애덤스미스 다들 아시죠?
애덤스미스는 국부론을 처음 적을 당시,
친구에게 "나는 요즘 시간을 때우려고 책을 한권 쓰고 있다네."라는 편지를 보냈다고 합니다....(겸손의 끝은 어디인가...)
귀도반로섬의 그런 겸손함에 프로그래밍 계의 경제학자 라고 불린다죠....
최근에는 '파이썬 붐'이라고 할 정도로, 주변에 파이썬 배우는 사람들이 많아졌네요.
그래서 오늘은, 수많은 프로그래밍 언어 중에서도
왜 파이썬인가? 파이썬은 어떤 장점을 가지고 있는가?
에 대해 알아보려 합니다.
파이썬 최근 경향
TIOBE의 프로그래밍 언어 지표에 따르면,
파이썬이 이제 C++보다 사용 빈도가 높군요. 10%로 자그마치 3위입니다!!
실제 미국의 공대들에서는 컴공은 물론이고, 전자/전기/기계 쪽 학과들도
파이썬을 의무로 배운다고 하네요.
우리나라 대학들에서도 첫 언어로 파이썬을 가르치는 학교들이 점점 생겨나고 있고요.
제가 대학생 때만 해도, 첫 언어는 무조건 C언어 였는데....(20살에게 포인터란....ㅠㅠ)
강산이 변하는군요 참...
Cause 1. 배우기 쉽다!
코딩 교육이 초등학생~고등학생까지 의무화 될 정도로,
4차산업혁명에 힘입어 코딩 붐이 일어나고 있습니다.
당연히, 생전 처음으로 코딩을 경험하게 되는 사람들이 늘어나겠죠???
그런 사람들에게 파이썬은 진입장벽이 매우 낮은 언어입니다. (다른 언어에 비해서 입니다...C/C++이나 JAVA에 비해서)
변수의 선언도 매우 쉽고, 형변환이 자유로우며,
'포인터가 없는'!!!! (많은 컴퓨터공학 학생들이 C언어의 포인터 때문에 좌절과 전과를 선택하죠....)
또한, 파이썬은 인터프리터 언어 입니다.
인터프리터 언어란, 프로그래밍 언어를 한줄씩 바로 실행하는 것을 의미해요.
실제로, 파이썬에서 많이 쓰는 IDE 툴인 Jupyter Notebook에서 파이썬을 실행하는 예를 들면,
이런식으로, 코드의 결과를 바로바로 알 수 있습니다.
코딩을 처음 배우는 사람들에게 더할 나위 없이 좋은 환경이죠.
Cause 2. 다양한 분야에서의 활용 (Feat. 넘쳐나는 라이브러리와 모듈)
파이썬의 라이브러리와 모듈은 정말 다양합니다.
그 끝을 알 수 없을 정도죠.
Numpy, PyBrain, Sklearn(scikit-learn) 등을 사용한 머신러닝(ML),
statsmodels를 사용한 데이터 통계,
Pandas, Matplotlib를 사용한 데이터 시각화,
Flask, Django를 사용한 웹 프로그래밍
등등등
다양한 분야에서 파이썬을 사용하고 있습니다.
범용성이 매우 높죠.
이를 사용해서 최근에는
게임, 보안, 데이터 사이언스, 웹, 업무 자동화, 스마트팩토리 등
수많은 분야에서 파이썬을 사용한 다양한 시도들이 이루어지고 있습니다.
이러한 서드파티 라이브러리들은 매일, 시시각각으로 늘어나고 있으니,
앞으로도 분야를 가리지 않고 파이썬의 적용이 가능해지겠죠?
Cause 3. 개발이 빠르다!
때때로 우리 개발자들에게 중요한 것은
"얼마나 빨리 개발해 낼 수 있느냐"
하는 데드라인 입니다.
특히 프리랜서가 아닌 회사원일수록,
회사 규모가 클수록
개발자 본인의 역량과는 별도로 데드라인이 촉박하게 잡히는데요...
그런 개발자들에게 파이썬은 한줄기 빛과도 같은 희망입니다.
개발자들 사이에 파이썬은
"맘대로 때려박아도 다 되는 언어"라는 이미지가 있습니다.
GC(garbage collection)을 포함하고 있으며,
포인터 등이 따로 없기 때문에,
들여쓰기(파이썬은 이게 핵심이죠!)에만 신경 쓰면 잘 동작하는 언어입니다.
뿐만 아니라, 파이썬은 함수형 언어와 비교해서도 가장 간결한 '코드 라인 수'를 특징으로 합니다.
오죽하면,
Life is Short, You need Python!
라는 유명한 말까지 있을 정도죠.
그래서 보통 회사에서는 대규모의 시스템을 만들어야 할 때,
"기능의 검증을 위한 프로토타입"
의 목적으로 파이썬이 많이 사용됩니다.
빠르게 핵심 모듈을 구현하여 기능 테스트 및 제안 자료로 사용하는 거죠.
실제로 파이썬은 "속도가 느리다"라는 단점을 가지고 있습니다.
개발은 빠르지만, 파이썬으로 개발된 결과물을 서비스에 적용하는 것은 다소 부적합하다는 거죠.
그래서 프로토타입으로 기능적 테스트만 하고,
실제 적용해야할 서비스는 C++, Java 등으로 개발하는 사례가 많습니다.
근래에는
Cython (Python을 C언어로 변환하여 실행),
Jython(Java 플랫폼에 맞추어 파이썬을 구현, JVM 위에서 동작) 등이 등장하면서,
파이썬으로 구현하고,
연산 등의 속도 이슈가 있을법한 코드만 다른 언어로 변환하여 구현하는 경우도 많죠.
하지만 분명한 건,
파이썬으로 개발하면 빠른 시간 안에 원하는 결과물을 얻을 수 있다!
라는 점입니다.
이상으로, 파이썬을 쓰는 이유 에 대해 알아봤습니다.
왜 이런 글을 올렸을까요?
맞습니다!
파이썬 관련 포스팅을 하기 위해서죠.
앞으로
파이썬의 Native 기본 함수 부터,
ML라이브러리를 활용한 코드 예제까지
다양한 분야의 파이썬 포스팅을 할 예정입니다.
감사합니당당당