본문 바로가기
Develop/Python

Python 파이썬 | #1 파이썬이란?

by bellsilver7 2020. 3. 7.
728x90

 

파이썬이란?


  1991년 암스테르담의 귀도 반 로섬(Guido Van Rossum)이 발표한 인터프리터 언어이다. ‘파이썬(Python)’이란 그리스 신화에 나오는 뱀 이름이다. 파이썬 로고에 두 마리의 뱀이 서로 마주본 듯한 그림이 있는 이유도 이 때문이다. 하지만 귀도 반 로섬 실제 ‘파이썬’이란 단어를 선택할 당시 영국 <BBC> 방송의 코미디 프로그램인 ‘몬티 파이썬 비행 서커스(Monty Python's Flying Circus)’를 좋아해 가져온 단어였다. 파이썬 공식 홈페이지에 따르면 “귀도 반 로섬은 짧고, 특별하고, 미스터리한 느낌의 단어를 찾았다”라며 “그래서 파이썬이란 이름을 결정했다”라고 설명돼 있다.

 

  파이썬은 컴퓨터 프로그래밍 교육을 위해 많이 사용하지만, 기업의 실무를 위해서도 많이 사용하는 언어이다. 그 대표적인 예가 바로 구글이다. 구글 내부에서 사용하는 코드리뷰 도구, ‘앱 엔진’ 같은 클라우드 제품 등이 파이썬을 이용해 만들어졌다. 또한 드롭박스에서는 현재 파이썬 언어를 개선하는 동시에 API 관련 개발을 진행하고 있다고 한다.

 

  파이썬 프로그램은 공동 작업과 유지 보수가 매우 쉽고 편하다. 그 때문에 이미 다른 언어로 작성된 많은 프로그램과 모듈이 파이썬으로 재구성되고 있다. 국내에서도 그 가치를 인정받아 사용자 층이 더욱 넓어지고 있고, 파이썬을 사용해 프로그램을 개발하는 업체들 또한 늘어 가고 있는 추세이다.

 

 

 

파이썬의 특징


- Interpreted Language (인터프리터 언어)

- Cross-platform Language (교차 플랫폼 언어)

- Object-Oriented Language (객체 지향 언어) 

 

.... 

 

1) 쉽고 간결하다

다른 언어의 코드와 비교해 본다면 상당히 간단한 것을 볼 수 있다.

한 가지 예를 보겠습니다.

 

(hello.c)

#include <stdio.h>
int main(){
    printf("Hello world");
    return 0;
}

(hello.py)

print("Hello world")

 

2) 개발 속도가 빠르다

  쉽고 간결한 코드에 가독성이 좋은 파이썬은 개발기간 단축에 초점을 두고 있다고 볼 수 있다. 

Life is too short, You need python. (인생은 너무 짧으니 파이썬이 필요해.)

  이 말은 파이썬 개발자들 사이에서의 유행어라고 합니다.

 

3) 무료, 그리고 오픈소스

  오픈 소스인 파이썬은 당연히 무료이다. 사용료를 신경쓰지 않고 언제 어디서든 다운로드하여 사용할 수 있다.

 

4) 자연어에 가까워 프로그래밍 입문 언어로도 추천된다.

 

5) 중요한 문법적 특징

Dynamic typing

변수를 사용할 때 변수 타입을 따로 지정하지 않고 실행할 때 변수의 타입을 자동으로 검사한다.  C언어의 경우 변수를 선언할 때 타입을 명시해 줌으로써 자료형의 크기 만큼 메모리에 변수가 할당이 되는 형식인 반면, python은 변수에 넣는 값을 실행할 때 검사한 후 변수가 참조하는 방식이다. (객체이기 때문에 가능) 

Script language

컴파일을 하지 않고 인터프리터가 코드를 직접 한 줄 씩 실행하는 방식이다. 때문에 컴파일 과정이 필요 없고 실행 결과를 바로 확인하면서 코딩할 수 있다. 하지만 컴파일된 기계어 코드를 읽는 것이 아니기 때문에 속도가 느리다. 그래서 python은 속도 향상을 위해 byte 코드를 일부 생성하거나 JIT를 사용한다.

Multi paradigm

절차적, 객체지향, 함수형, 관점형 프로그래밍이 모두 가능하다.

Unlimited access

사용의 단순함과 편리함을 위해 접근제어 없이 객체, 구조체 member에 무제한적 접근이 가능하다. 

Everything is object

변수와 함수 모두가 거의 다 객체다.

 

파이썬의 핵심 철학은

- "아름다운게 추한 것보다 낫다." (Beautiful is better than ugly)

- "명시적인 것이 암시적인 것 보다 낫다." (Explicit is better than implicit)

- "단순함이 복잡함보다 낫다." (Simple is better than complex)

- "복잡함이 난해한 것보다 낫다." (Complex is better than complicated)

- "가독성은 중요하다." (Readability counts)

 

 

 

할 수 있는 일


시스템 유틸리티

  운영체제(윈도우, 리눅스 등)의 시스템 명령어를 사용할 수 있다.

 

GUI 프로그래밍

  대표적인 예로 파이썬 프로그램과 함께 설치되는 Tkinter(티케이인터)가 있으며, 단 5줄의 코드로 윈도우 창을 띄울 수 있다.

 

C/C++와의 결합

  파이썬은 접착(glue) 언어라고도 부르는데, 그 이유는 다른 언어와 잘 어울려 결합해서 사용할 수 있기 때문이다. C나 C++로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C나 C++에서 사용할 수 있다.

 

웹 프로그래밍

  파이썬은 웹 프로그램을 만들기에 매우 적합한 도구이며, 실제로 파이썬으로 제작한 웹 사이트는 셀 수 없을 정도로 많다. 장고라는 웹 프레임워크는 파이썬으로 만들어져 있고 오픈소스로 공개되어 있어 누구나 활용 가능하다.

 

수치 연산 프로그래밍

  NumPy라는 수치 연산 모듈을 제공하며, 이 모듈은 C로 작성했기 때문에 파이썬에서도 수치 연산을 빠르게 할 수 있다.

 

데이터베이스 프로그래밍

  사이베이스(Sybase), 인포믹스(Infomix), 오라클(Oracle), 마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL) 등의 데이터베이스에 접근하기 위한 도구를 제공한다.

 

데이터 분석, 사물 인터넷

  파이썬으로 만든 판다스(Pandas) 모듈을 사용하면 데이터 분석을 더 쉽고 효과적으로 할 수 있다. 사물 인터넷 분야에서도 파이썬은 활용도가 높다. 한 예로 라즈베리파이(Raspberry Pi)는 리눅스 기반의 아주 작은 컴퓨터이다. 라즈베리파이를 사용하면 홈시어터나 아주 작은 게임기 등 여러 가지 재미있는 것들을 만들 수 있는데, 파이썬은 이 라즈베리파이를 제어하는 도구로 사용된다. 예를 들어 라즈베리파이에 연결된 모터를 작동시키거나 LED에 불이 들어오게 하는 일을 파이썬으로 할 수 있다.

 

 

 

할 수 없는 일


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

  파이썬으로 리눅스 같은 운영체제, 엄청난 횟수의 반복과 연산이 필요한 프로그램 또는 데이터 압축 알고리즘 개발 프로그램 등을 만드는 것은 어렵다. 즉 대단히 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 어울리지 않는다.

 

모바일 프로그래밍

  파이썬은 구글이 가장 많이 애용하는 언어이지만 파이썬으로 안드로이드 앱(App)을 개발하는 것은 아직 어렵다. 안드로이드에서 파이썬으로 만든 프로그램이 실행되도록 지원하긴 하지만 이것만으로 앱을 만들기에는 아직 역부족이다. 아이폰 앱을 개발하는 것 역시 파이썬으로 할 수 없다.

 

728x90

댓글