본문 바로가기

프로그래밍/Python

파이썬(Python)이란 무엇인가?

파이썬은 귀도 반 로썸(Guido van Rossum)이라는 네덜란드 사람이 1989년 크리스마스 연휴동안 취미로 만든 프로젝트로부터 탄생되었다고 합니다. 

파이썬은 간결하고 쉬운 문구 덕분에 프로그래밍을 처음 접하는 초보자에게 적합한 언어이며, 실제로 미국에 상당수의 대학에서 프로그래밍 교육 과정의 첫 번째 교육 과정으로써 가장 많이 선택한 언어입니다. 아래는 미국 상위 컴퓨터공학부 39개를 대상으로 컴퓨터 공학부의 기초과정인 CS Zero와 CS One에서 사용되고 있는 프로그래밍 언어에 대해서 조사한 결과입니다. 한 눈에 보아도 파이썬을 가장 많이 사용하고 있다는 것을 볼 수 있습니다. 

프로그래밍 언어 선호도


○ 파이썬의 간결한 문구

모든 프로그래밍 언어를 처음 접할 때 대부분 가장 먼저 하는 게 "Hello World"를 출력하는 것으로 생각됩니다. 다른 언어와의 문구에서 간결성을 비교하기 위해 C++로 Hello World를 출력하는 코드를 보겠습니다. 콘솔 창에 결과로써 "Hello World"를 출력하는 아주 간단한 프로그래밍이지만, C++로 이 프로그램을 만드려면 아래와 같이 4줄의 코드가 필요합니다. 

#Include stdout

int main() {
	std::cout << "Hello World";
}

 하지만 파이썬으로 같은 프로그램을 만들 때에는 다음과 같이 단 한 줄의 코드로도 충분히 동일한 결과를 얻을 수 있습니다.

print("Hello, World")

○ 파이썬의 특성

파이썬은 하이 레벨 언어(High Level Language)입니다. 하이 레벨 언어란 수준이 높은 언어라는 뜻이 아니며, C, Java, Python 등과 같이 기계보다는 사람이 더 쉽게 이해할 수 있는 언어를 의미합니다. 반대로 어셈블리 언어(Assmbly Language)와 같이 사람이 이해하기 어렵고 기계언어에 더 가까운 언어를 로우 레벨 언어(Low Level Language)라고 합니다. 

파이썬은 인터프레티드 언어(Interpreted Language)입니다. 프로그래밍 언어는 크게 컴파일드 언어(Compiled Language)와 인터프레티드 언어로 구분할 수 있는데, 컴파일드 언어에는 대표적으로 C, C++ 등이 있으며, 인터프레티드 언어에는 파이썬, PHP, 자바스크립트(JavaScript), 루비(Ruby) 등이 있습니다. 인터프레티드 언어는 순수한 인터프레디트 언어와 하이브리드 언어로 분리되는데, 파이썬은 하이브리드 언어에 해당됩니다.

파이썬은 객체지향적 프로그래밍, 절차지향적 프로그래밍, 함수적 프로그래밍이라는 패러다임을 모두 지원합니다. 프로그래밍 패러다임이란 어떤 문제를 프로그래밍을 통해서 해결하기 위한 접근 방법이라고 생각하시면 됩니다. 한 언어가 반드시 한 가지의 패러다임에 국한되지는 않으며, 파이썬과 같이 여러가지 패러다임을 지원할 수도 있습니다. 

파이썬은 다이나믹 타이핑 언어입니다. 변수를 정의할 때 항상 데이터 타입을 지정해 주어야 하는 스태틱 타이핑 언어와는 반대로 파이썬은 데이터 타입의 지정없이 변수를 정의할 수 있습니다. 거의 대부분의 현대 스크립트 언어는 모두 다이나믹 타이핑을 사용하고 있습니다. 마지막으로 파이썬의 다섯 번째 특성입니다. 파이썬은 강력한 스탠다드 라이브러리를 포함하고 있습니다. 이러한 이유로 파이썬에는 배터리가 포함(Battery Included)되어 있다고 자주 언급됩니다. 


○ 파이썬은 어디에 쓰이는가?

프로그래밍 언어를 선택할 때 자신의 목적에 맞는 언어를 선택하는 것이 매우 중요합니다. 그러기 위해서는 그 언어의 특성 및 장점을 파악해야 합니다. 파이썬은 다방면에 널리 사용되는 이유로 맥가이버 칼이라고 부르는 스위스 아미 나이프라는 별명을 가지고 있습니다. 파이썬 하나만 정통하게 되면 다른 프로그래밍 언어로 할 수 있는 거의 대부분을 파이썬으로 구현할 수 있습니다. 

파이썬이 가장 많이 사용되는 분야는 웹 개발 분야 입니다. 하지만, 우리가 일반적으로 웹 개발이라고 하면 자신의 홈페이지를 만들어 사진을 올리고, 디자인하는 것을 상상하는데, 파이썬으로는 그러한 것을 구현할 수 없습니다. 웹 개발은 크게 프론트 엔드 개발과 백 엔드 개발이라는 두 가지 분야로 나뉘고, 웹 디자인은 프론트 엔드 개발에 포함됩니다. 백 엔드 개발에서 사용되는 언어는 파이썬을 포함하여 여러 가지 언어가 사용되고 있는데, 요즘 인기가 많은 PHP와 루비, Java, C# 등이 있습니다. 

두 번째로 파이썬이 쓰이는 곳은 GUI를 이용한 데스크탑 어플리케이션(Desktop Application) 분야입니다. 파이썬의 기본적인 라이브러리(Standard Library)인 Tkinter을 시작하여, PyQt, PyGUI 등 여러가지 라이브러리가 있습니다. 파이썬을 통해 처음 GUI를 사용하실 때에는 Tkinter로 하는 것을 권장하고 있으며, 중급 및 고급 개발자 과정에서는 PyQt에 사용을 권장합니다. 

세 번째로 파이썬이 쓰이는 곳은 서버 자동화 분야입니다. 파이썬은 거의 모든 리눅스 배포판과 맥북에 기본으로 설치되어 있습니다. 서버 관리자들 사이에 파이썬의 인기도는 계속 높아지고 있으며, 간단한 스크립트부터 시작하여, shell 스크립트로 만들기 힘든 복잡한 프로그램 등이 파이썬으로 만들어지고 있습니다. 또한, 파이썬 라이브러리인 Fabric, 프레임워크인 Ansible의 등장으로 서버 자동화 분야에서의 파이썬의 위치는 점점 높아지고 있는 추세입니다. 파이썬은 이 밖에도 서버 가상화(OpenStack 사용), 데이터 분석(NumPy, Pandas 등 라이브러리 제공), 게임 개발(PyGame, Panda3D, Blender Game Engine 라이브러리 제공) 등의 분야에도 널리 사용되고 있습니다.