프로그래밍 언어의 하나인 파이선(Python)의 인기가 파죽지세로 상승하고 있다. 2018년 티오베(TIOBE) 인덱스(티오베 인덱스 8월 보고서)에 따르면 파이썬이 4위에 올라있다. 파이썬은 1991년 만들어졌으며 올해로 27년된 언어다. C++은 만들어진지 33년 됐다. 파이썬은 입문자도 이해하기 쉽고, 간결하면서도 높은 생산성을 낼 수 있다는 점에서 인기를 끈다. 국내는 전공과목에 파이선이 교과로 들어 있는 대학교는 거의 없다. 미국 내 대학교 프로그래밍 교양과정의 70%가 파이썬일 정도다. 파이썬이 지금처럼 인기를 얻게 된 건 데이터 과학과 머신러닝의 붐 때문이다. 진입장벽이 낮기 때문에 많은 입문자를 만들어냈고, 그에 따라 수많은 머신러닝 라이브러리가 파이썬으로 만들어져 인기를 가속하고 있다. 인공지능과 임베디드 시스템에서 C가 여전히 많이 쓰이긴 한다. 반면, 티오베 인덱스 1위인 자바는 AI와 임베디드 시스템에서 많이 쓰이지 않는다. 파이썬의 성장세가 앞으로도 높아질 것이라 전망하는 주된 이유다.
문서 가장 아래 링크를 참고해 파이선의 특징을 전체적으로 정리한다. 잘못된 점이나 추가 할 내용은 보완이 필요하다.
파이썬은 인간다운 언어이다.
프로그래밍이란 인간이 생각하는 것을 컴퓨터에 지시하는 행위라고 할 수 있다. 앞으로 살펴볼 파이썬 문법에서도 보게 되겠지만, 파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있는 언어이다. 따라서 프로그래머는 굳이 컴퓨터의 사고 체계에 맞추어서 프로그래밍을 하려고 애쓸 필요가 없다. 이제 곧 어떤 프로그램을 구상하자마자 머릿속에서 생각한 대로 술술 써 내려가는 여러분의 모습에 놀라게 될 것이다.
파이썬은 문법이 쉬워 빠르게 배울 수 있다.
어려운 문법과 수많은 규칙에 둘러싸인 언어에서 탈피하고 싶지 않은가? 파이썬은 문법 자체가 아주 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있다. 배우기 쉬운 언어, 활용하기 쉬운 언어가 가장 좋은 언어가 아닐까? 유명한 프로그래머인 에릭 레이먼드(Eric Raymond)는 파이썬을 공부한 지 단 하루 만에 자신이 원하는 프로그램을 작성할 수 있었다고 한다.
파이썬은 무료이지만 강력하다.
오픈 소스인 파이썬은 당연히 무료이다. 사용료 걱정없이 언제 어디서든 파이썬을 다운로드하여 사용할 수 있다. ※ 오픈 소스(Open Source)란 저작권자가 소스 코드를 공개하여 누구나 별다른 제한 없이 자유롭게 사용 · 복제 · 배포 · 수정할 수 있는 소프트웨어이다. 또한 프로그래머는 만들고자 하는 프로그램의 대부분을 파이썬으로 만들 수 있다. 물론 시스템 프로그래밍이나 하드웨어 제어와 같은 매우 복잡하고 반복 연산이 많은 프로그램은 파이썬과 어울리지 않는다. 하지만 파이썬은 이러한 약점을 극복할 수 있게끔 다른 언어로 만든 프로그램을 파이썬 프로그램에 포함시킬 수 있다. 파이썬과 C는 찰떡궁합이란 말이 있다. 즉 프로그램의 전반적인 뼈대는 파이썬으로 만들고, 빠른 실행 속도가 필요한 부분은 C로 만들어서 파이썬 프로그램 안에 포함시키는 것이다(정말 놀라우리만치 영악한 언어가 아닌가). 사실 파이썬 라이브러리 중에는 순수 파이썬만으로 제작된 것도 많지만 C로 만든 것도 많다. C로 만든 것은 대부분 속도가 빠르다. ※ 파이썬 라이브러리는 파이썬 프로그램을 작성할 때 불러와 사용할 수 있는 미리 만들어 놓은 파이썬 파일 모음이다.
파이썬은 간결하다.
귀도는 파이썬을 의도적으로 간결하게 만들었다. 만약 펄(Perl)과 같은 프로그래밍 언어가 100가지 방법으로 하나의 일을 처리할 수 있다면 파이썬은 가장 좋은 방법 1가지만 사용하는 것을 선호한다. 이 간결함의 철학은 파이썬 문법에도 그대로 적용되어 파이썬 프로그래밍을 하는 사람들은 잘 정리되어 있는 소스 코드를 볼 수 있다. 다른 사람이 작업한 소스 코드도 한눈에 들어와 이해하기 쉽기 때문에 공동 작업과 유지 보수가 아주 쉽고 편하다.
파이썬은 프로그래밍을 즐기게 해준다.
이 부분이 가장 강조하고 싶은 부분이다. 파이썬만큼 필자에게 프로그래밍을 즐기게 해 준 언어는 없었다. 파이썬은 다른 것에 신경 쓸 필요 없이 내가 하고자 하는 부분에만 집중할 수 있게 해준다. 파이썬을 배우고 나면 다른 언어로 프로그래밍하는 것에 지루함을 느끼게 될지도 모른다. 조심하자!
파이썬은 개발 속도가 빠르다.
마지막으로 재미있는 다음 문장으로 파이썬의 특징을 마무리하겠다. "Life is too short, You need python." (인생은 너무 짧으니 파이썬이 필요해.) 파이썬의 엄청나게 빠른 개발 속도를 두고 유행처럼 퍼진 말이다.
파이선의 대표적인 특징들을 추상적인 상위 단계에서 알아보았다. 실제적으로 어떤 언어인지 기능적인 프로그래밍 언어 관점에서 말하는 파이선의 장점을 알아보자
파이썬(python)은 어떤 언어인가?
- 대화 기능의 인터프리터 언어 파이썬은 객체지향 기능을 강력히 지원하는 대화형 인터프리터 언어다. 인터프리터 언어는 사용하기 쉬우며 컴파일하고, 실행해 보고, 에러를 고치는 기존의 절차에서 벗어나 작성한 다음 바로 테스트하는 간단한 언어다.
- 동적인 데이터 타입 결정 지원 파이썬은 동적으로 데이터 타입을 결정하므로 데이터 타입에 관계없는 일반화된 코드를 작성할 수 있다. - 플랫폼 독립적 언어 파이썬은 리눅스, 유닉스, 윈도우 95/98/NT/2000, 도스, 등등 대부분의 운영 체제에서 동작한다. 플랫폼에 독립적이며 컴파일하지 않고도(내부적으로 자동 수행됨) 동작하기 때문에 사용하기도 쉽다. 자바와 같이 파이썬 바이트 코드를 생성하므로 소스 코드 없이도 다른 컴퓨터에서 즉시 수행된다.
- 개발 기간 단축에 초점을 둔 언어 파이썬은 실행의 효율성보다는 개발 기간 단축에 초점을 둔 언어다. 실행 속도로 말하자면 어셈블리 언어를 제외하고는 C에 견줄 만한 프로그래밍 언어는 없다. C는 효율적인 코드 생성에 큰 의미를 둔 언어이기 때문이다. 반면 파이썬은 개발의 효율성에 무게 중심을 두고 있다.
- 간단하고 쉬운 문법 파이썬의 간단한 문법과 깨끗하고 깔끔한 구문은 프로그래머는 물론, 프로그래머가 아닌 사람도 배우기 쉽고, 사용하기 쉽다. 일반적인 수학 기호나 다른 프로그래밍 언어에 약간의 경험이 있으면 쉽게 배울 수 있다. 객체지향 언어로서 파이썬은 재사용 가능한 코드를 쉽게 만들 수 있다.
- 고수준의 내장 객체 자료형 제공 파이썬은 일반적으로 사용되는 리스트(List), 사전(Dictionary) 및 문자열(String), 튜플(Tuple) 등의 자료 구조를 제공한다. 이러한 자료형들을 상당히 유연하게 그리고 쉽게 상요할 수 있다.
- 메모리 자동 관리 파이썬은 쓰레기 수집(Garbage Collection) 기능을 사용하여 필요할 때 메모리를 자동 할당하고 사용이 끝났을 때 자동으로 해제한다.
- 팀워크에 유용 파이썬은 모듈 단위의 코드를 쉽게 작성하고 결합할 수 있게 되어 있다. 각 모듈은 메인 프로그램이기도 하면서 다른 모듈의 라이브러리로 사용된다. 독립적으로 테스트된 모듈을 모으면 큰 프로그램이 된다.
- 쉬운 유지 보수 프로그램이란 한 사람에 의해서 완성되는 것이 아니라 여러 사람들에 의하여 유지되고 보수된다. 파이썬의 깔끔함 코드는 이해하기 쉬워서 코드의 유지 보수가 용이하다.
- 많은 수의 라이브러리 제공 파이썬은 이미 만들어진 많은 수의 라이브러리를 제공한다. 정규식 매칭부터 네트워킹까지 프로그래머들이 원하는 웬만한 기능은 라이브러리에서 찾을 수 있다. 또한 서드파티에서 제공하는 수많은 외부 모듈이 있다.
- 짧아지는 코드 파이썬은 일급함수(First Class Function : 1. 함수 객체를 변수에 저장 가능하고, 2. 함수에서 리턴 값으로 사용 가능하며, 3. 함수에 인수로 전달 가능한 함수)를 지원하며, 다중 상속과 지연 바인딩 기능을 지원하는 객체지향 언어다. 예외 처리를 하는 try..except.. 명령어를 제공하며 함수의 인수 전달 방식으로 선택적 인수, 키워드 인수 혹은 임의의 개수의 인수를 지원한다.
- 높은 확장성 파이썬은 일명 접착제 언어(Glue Language)라고도 한다. 다른 언어나 라이브러리에 쉽게 접근해 그들을 사용할 수 있기 때문이다. 가장 보편적인 언어인 C와는 아주 잘 결합된다. 기존의 C 프로그램을 파이썬과 결합시킬 수 있으며 소스 없는 라이브러리도 랩퍼(Wrapper) 함수(라이브러리의 함수를 중간에서 호출해주는 간단한 인터페이스 함수)만 써 주면 파이썬에서 사용할 수 있다.
- 확장(Extending) 및 내장(Embedding) 기능 파이썬은 매우 단순한 응용 프로그램 인터페이스(API)처럼 볼 수 있다. C 등 다른 언어에서 파이썬을 호출 할 수 있고, 그 응용 프로그램에서 내장시켜 사용할 수 있다. 파이썬에서 C 모듈을 호출하는 것도 물론 가능하다.
- 무료 파이썬은 저작권 등록이 되어 있지만 자유롭게 사용하고 배포할 수 있다. 상용으로 사용할 경우에도 마찬가지이다. 물론 소스도 공개되어 있다. 파이썬은 C로 만들어진 언어이다.
참고자료
"개발언어 '파이썬' 인기몰이...C++도 앞지를 기세" https://www.zdnet.co.kr/view/?no=20180904132825
점프 투 파이선 https://wikidocs.net/6
파이선 언어의 특징 https://jjinfotech.tistory.com/21
나름 유명한 책 - 번역서 존재
'파이선' 카테고리의 다른 글
파이썬(python) 프로그래밍 교육 과정 (0) | 2020.02.06 |
---|---|
라즈베리파이 기반 IoT(사물인터넷) 설계 실습 교육 과정 (0) | 2020.02.05 |
python list 값 중복 제거하기 (0) | 2019.10.03 |