Python 기초

Python으로 무엇을 할 수 있나요?

프로그래밍이 어디에 도움이 될까?

우리가 프로그래밍을 배우면 무엇을 할 수 있을까요?

 

컴퓨터를 단순히 사용하는 것에서 한 걸을 더 나아가 컴퓨터를 마음대로 제어할 수 있습니다.

자신의 웹사이트에서 자바스크립트를 사용하여 원하는 동작을 구현할 수 있거나 컴퓨터를 이용하여 자신의 문서나 이미지를 자동적으로 처리하게 할 수 있습니다.

 

자신이 해결해야 하는 일에 알맞은 프로그램을 작성할 수 있습니다.

다른 사람이 만든 소프트웨어를 사용하면 그 사람이 만든 기능만을 이용할 수 있지만 우리가 프로그래밍할 수 있다면 자신에게 필요한 기능을 스스로 추가할 수 있습니다.

예를 들어, 엑셀을 사용할 때 스크립트 언어를 이용하여 자신에게 필요한 기능을 추가할 수 있습니다.

자연 과학에서 많이 사용되는 매트랩에서도 스크립트 언어를 이용하면 자신에게 필요한 기능을 구현할 수 있습니다.

 

프로그래밍을 하면 더 창의적인 사람이 됩니다.

프로그래밍은 아무것도 없는 상태에서 새로운 것을 창조하는 작업이기 때문입니다.

 

프로그래밍을 하면 논리적으로 문제를 해결하는 능력을 배양할 수 있습니다.

프로그래밍 자체가 어떤 문제를 논리적으로 해결하는 과정이기 때문입니다.

프로그래밍을 열심히 하게 되면 더 정확하게 생각할 수 있으면 좀 더 논리적인 사람이 됩니다.

 

 

파이썬으로 할 수 있는 일

시스템 유틸리티 제작

파이썬은 운영체제(윈도우, 리눅스 등)의 시스템 명령어들을 이용할 수 있는 각종 도구를 갖추고 있기 때문에

이를 바탕으로 갖가지 시스템 유틸리티(컴퓨터 이용에 도움이 되는 여러 소프트웨어)를 만드는 데 유리합니다.

실제로 시스템에서 사용 중인 서로 다른 유틸리티성 프로그램들을 하나로 뭉쳐서 큰 힘을 발휘하게 하는 프로그램들을 무수히 만들어낼 수 있습니다.

 

GUI 프로그래밍

GUI (Graphic User Interface) 프로그래밍이란 쉽게 말해 윈도우 창처럼 화면을 보며 마우스나 키보드로 조작할 수 있는 프로그램을 만드는 것입니다.

파이썬으로 GUI 프로그램을 만드는 것은 다른 언어를 이용해 만드는 것보다 훨씬 쉽습니다.

대표적인 예로 파이썬 프로그램을 설치할때 함께 설치되는 기본 모듈인 Tkinter(티케이인터)를 이용해 만드는 GUI 프로그램을 들 수 있습니다.

 

실제로 Tkinter를 이용한 파이썬 GUI 프로그램의 소스 코드는 매우 간단합니다. Tkinter를 이용하면 단 5줄의 소스 코드만으로도 윈도우 창을 띄울 수 있습니다. (ㄷㄷ)

파이썬에는 wxPython, PyQT, PyGTK 등과 같이 Tkinter보다 빠른 속도와 보기 좋은 인터페이스를 자랑하는 것들도 있습니다.

 

C/C++와의 결합

파이썬은 접착(glue) 언어라고도 부르는데, 그 이유는 다른 언어들과 잘 어울려 다른 언어와 결합해서 사용할 수 있기 때문입니다.

C나 C++로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C나 C++에서 사용할 수 있습니다.

 

웹 프로그래밍

일반적으로 익스플로러나 크롬, 파이어폭스와 같은 브라우저를 이용해 인터넷을 사용하는데,

누구나 한 번쯤 웹 서핑을 하면서 게시판이나 방명록에 글을 남겨 본 적이 있을 것입니다.

 

그러한 게시판이나 방명록을 바로 웹 프로그램이라고 합니다.

파이썬은 웹 프로그램을 만들기에 매우 적합한 도구이며 실제로 파이썬으로 제작된 웹사이트는 셀 수 없을 정도로 많습니다.

 

수치 연산 프로그래밍

사실 파이썬은 수치 연산 프로그래밍에 적합한 언어는 아닙니다. 수치가 복잡하고 연산이 많다면 C 같은 언어로 하는 것이 더 빠르기 때문입니다.

하지만 파이썬에는 Numeric Python이라는 수치 연산 모듈이 제공됩니다.

이 모듈은 C로 작성되었기 때문에 파이썬에서도 수치 연산을 빠르게 할 수 있습니다.

 

데이터베이스 프로그래밍

파이썬은 사이베이스(Sybase), 인포믹스(Infomix), 오라클(Oracle), 마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL) 등의 데이터베이스에 접근할 수 있게 해주는 도구들을 제공합니다.

또한 이런 굵직한 데이터베이스를 직접 이용하는 것 외에도 파이썬에는 재미있는 모듈이 하나 더 있습니다. 바로 피클(pickle)이라는 모듈이다.

피클은 파이썬에서 사용되는 자료들을 변형없이 그대로 파일에 저장하고 불러오는 일들을 맡아 합니다.

 

데이터 분석, 사물 인터넷

파이썬으로 만들어진 펜더스(Pandas)라는 모듈을 이용하면 데이터 분석을 더 쉽고 효과적으로 할 수 있습니다.

데이터 분석을 할 때 아직까지는 데이터 분석에 특화된 "R"이라는 언어를 많이 사용하고 있지만, 펜더스가 등장한 이후로 파이썬을 이용하는 경우가 점점 증가하고 있습니다.

 

사물 인터넷 분야에서도 파이썬은 활용도가 높습니다. 한 예로 라즈베리파이(Raspberry Pi)는 리눅스 기반의 아주 작은 컴퓨터입니다.

라즈베리파이를 이용하면 홈시어터나 아주 작은 게임기 등 여러 가지 재미있는 것들을 만들 수 있는데 파이썬은 이 라즈베리파이를 제어하는 도구로 사용됩니다.

예를 들어 라즈베리파이에 연결된 모터를 작동시키거나 램프에 불이 들어오게 하는 일들을 파이썬으로 할 수 있습니다.

 

파이썬으로 할 수 없는 일

시스템과 밀접한 프로그래밍 영역

파이썬으로 도스나 리눅스 같은 운영체제, 엄청난 횟수의 반복과 연산을 필요로 하는 프로그램 또는 데이터 압축 알고리즘 개발 프로그램 등을 만드는 것은 어렵습니다.

즉, 대단히 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 어울리지 않습니다.

 

모바일 프로그래밍

파이썬은 구글이 가장 많이 애용하는 언어이지만 파이썬으로 안드로이드 앱(App)을 개발하는 것은 아직 어렵습니다.

안드로이드에서 파이썬으로 만든 프로그램들이 실행되도록 지원하긴 하지만 이것만으로 앱을 만들기에는 아직 역부족입니다.

아이폰 앱을 개발하는 것 역시 파이썬으로는 할 수 없습니다.