파이썬 기초 01: 입문

1장에서는 파이썬의 기본적인 특징과 파이썬을 배우는데 필요한 기본적은 내용들을 간단히 다룬다.

학습목표

  • 파이썬의 특징을 알아본다.
  • 파이썬의 기능 및 용도에 대해 알아본다.

파이썬이란?

파이썬은 네덜란드 출신의 개발자인 귀도 반 로섬(Guido van Rossum)에 의해 1989년에 개발을 시작하여, 1991년 2월에 출시한(v0.9.0) 프로그래밍 언어이다 [1].

파이썬의 특징

고수준 언어이다.

파이썬은 자연어에 가까워 인간이 이해하기 쉬운 고수준 언어이다. 저수준 언어는 기계어에 가까워 이해가 쉽지 않고 기계적인 처리와 관련한 개발에 많은 시간 투자를 해야 하는데 반해, 고수준 언어인 파이썬은 다른 부분에 많은 에너지를 들이지 않고 문제를 해결하는 것에 집중할 수 있다.

배우기 쉽다.

누구나 쉽게 프로그램을 작성할 수 있도록 만들어져 있어 프로그램 개발 경험이 없는 초보자들도 비교적 어렵지 않게 익힐 수 있는 스크립트 언어이다.

생산성이 높다.

개발에 필요한 다양한 라이브러리가 존재하고, 원하는 프로그램을 단시간에 빠르게 개발할 수 있다.

재미있다.

귀도는 파이썬을 개발한 목적 중 하나로 사용하기 재밌는 언어를 만들이 위함이라고 하였고, 파이썬이라는 이름도 이러한 배경으로 몬티 파이썬의 날아다니는 서커스(Monty Python’s Flying Circus) 에서 따왔다고 한다 [2].

파이썬의 용도

위의 특징 및 장점을 배경으로 하여, 파이썬은 웹 개발, 과학 및 수학적 목적, 교육 등 다양한 분야에서 널리 쓰이고 있다 [3]. 쓰이는 용도에 대한 예시를 간단하게 나열해 보았다.

프로토타이핑 및 간단한 도구 제작

개인이 간단하게 몇 줄짜리 스크립트를 만들어 사용하기 편리하다. 예를 들어, 웹 주소로부터 html 소스를 받아오는 간단한 툴을 제작한다고 한다면, 다른 언어들은 웹 클라이언트를 직접 제작하거나, 해당 OS에서 제공하는 라이브러리로 직접 구현해야 한다. 이에 반해, 파이썬은 내장되어 있는 라이브러리를 사용하거나 3자에서 개발한 다양한 패키지(라이브러리)를 사용하여 간단한 코드 몇줄을 작성하여 제작할 수 있다. 이러한 편리함은 프로토타입 제작에도 많은 장점으로 작용한다.

웹 개발

파이썬에 내장되어있는 표준 라이브러리는 웹 프레임워크, HTML, JSON 등 다양한 마크업 언어와 HTTP, FTP, IMAP 등 다양한 인터넷 프로토콜을 편리하게 사용할 수 있도록 하여 다양한 웹 개발에 편리하도록 하였다.

공학 및 과학 계산

SciPy는 수학, 과학 및 공학 계산에 필요한 기능들을 모아놓은 패키지이다. 이러한 패키지의 제공으로 복잡한 계산에 용이하도록 하였다.

GUI 개발

파이썬의 표준 패키지로 포함되어 있는 Tk를 활용하여 GUI 개발은 손쉽게 할 수 있다.

다른 언어로의 확장

파이썬은 플랫폼에 구애받지 않고, 확장성이 용이하다. 쉽고 간단한 문법의 장점으로, C언어로의 확장을 위한 Cython, .NET을 기반으로 한 IronPython 등 표준 Python 이외에도 다양한 버전의 인터프리터가 존재하여, 필요한 상황에 맞게 사용할 수 있다.

References

[1] Python Foundation, "Python source distribution."
[2] Python Software Foundation, "General Python FAQ – Why is it called Python?," Python 2.7.12 Documentation, 2016. [Online]. Available: https://docs.python.org/2/faq/general.html#why-is-it-called-python.
[3] Python Software Foundation, "Applications for Python," Python.org, 2016. [Online]. Available: https://www.python.org/about/apps/.

Leave a Reply

Your email address will not be published. Required fields are marked *