본문 바로가기
Python/파이썬 기초

[1-0] 파이썬이란

by 준보틱스 2024. 6. 25.

파이썬이란

파이썬(Python)은 1990년 암스테르담의 귀도 반 로섬이 개발한 인터프리터 언어이다.

* 인터프리터 언어 : 소스코드를 한 줄씩 해석한 후 그때그때 실행해 결과를 바로 확인할 수 있는 언어

파이썬 특징

(1) 파이썬은 인간다운 언어

프로그래밍이란 인간이 생각하는 것을 컴퓨터에 지시하는 행위를 말한다. 파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있는 언어이다. 따라서 파이썬을 사용하는 프로그래머는 굳이 컴퓨터의 사고 체계에 맞추어 프로그래밍하려고 애쓸 필요가 없다.

>>> if 4 in [1,2,3,4]: print("2가 있다")
>>> 만약 2가 1,2,3,4 중에 있으면 "2가 있다"를 출력한다.

 

(2) 문법이 쉽다

파이썬은 문법이 매우 쉽고 간결하면 사람의 사고 체계와 매우 닮아 있다. 배우기 쉬운 언어, 활용하기 쉬운 언어가 가장 좋은 언어라고 생각한다.

(3) 무료지만 강력

파이썬은 오픈소스이므로 무료이다. 사용료 걱정없이 언제 어디서든 파이썬을 내려받아 사용할 수 있다.

또한 프로그래머는 만들고자 하는 프로그램의 대부분을 파이썬으로 만들 수 있다. 물론 시스템 프로그래밍이나 하드웨어 제어와 같은 매우 복잡하고 반복 연산이 많은 프로그램은 파이썬과 어울리지 않다. 하지만 파이썬은 이러한 약점을 극복할 수 있도록 다른 언어로 만든 프로그램을 파이썬 프로그램에 포함시킬 수 있다.

프로그램이 전반적인 뼈대는 파이썬으로 만들고 빠른 실행 속도가 필요한 부분은 C로 만들어서 파이썬 프로그램 안에 포함시킬 수 있다. 사실 파이썬 라이브러리 중에는 파이썬만으로 제작된 것도 많지만 C로 만든 것도 많다. C로 만든 것은 대부분 속도가 빠르다.

(4) 간결함

파이썬은 가장 좋은 방법 1가지만 사용하는 것을 선호한다. 이 간결함으로 인해 파이썬 프로그래밍을 하는 사람들은 잘 정리되어 있는 소스코드를 볼 수 있다. 그 덕분에 다른 사람이 작업한 소스코드를 이해하기 쉽고 공동작업과 유지보수가 매우 편리하다.

 

>>> languages = ['python', 'perl', 'c', 'java']

>>> for long in languages:
        if long in ['python', 'perl']:
           print("%6s need interpreter" %long)
        elif long in ['c', 'java']:       
           print("%6s need compiler" %long)
        else:
           print("should not reach here")

 

파이썬은 다른 언어에서 보게 되는 단락을 구분하는 괄호({})가 없고 줄을 잘 맞춘 코드라는 것을 알 수 있다. 파이썬 프로그램은 줄을 맞추지 않으면 실행되지 않는다. 줄을 맞추어 코드를 작성하는 행위는 가독성에 많은 도움을 된다.

파이썬 활용

(1) 웹 프로그래밍

누구나 한 번쯤 구글 크롬이나 마이크로소프트 엣지와 같은 웹 브라우저로 웹 서핑을 하면서 게시판이나 방명록에 글을 남겨 본 적이 있을 것이다. 이러한 게시판이나 방명록을 ‘웹 프로그램’이라고 한다. 파이썬은 웹 프로그램을 만들기에 매우 적합한 도구이며, 실제로 파이썬으로 제작한 웹 사이트는 셀 수 없을 정도로 많다.

(2) 인공지능과 머신러닝

인공지능은 기계가 인간처럼 생각하고 행동할 수 있는 능력을 제공하는 기술이다. 파이썬을 활용하면 자연어 처리, 음성인식, 이미지 인식과 같은 인공지능 기술을 구현할 수 있다. 머신러닝은 인공지능의 한 분야로, 경험을 통해 자동으로 발전하는 컴퓨터 알고리즘을 연구하는 분야이다. 파이썬은 인공지능과 머신러닝 프로그래밍을 쉽게 할 수 있도록 사이킷런(scikit-learn), 텐서플로(TensorFlow), 파이토치(PyTorch), 케라스(Keras) 등과 같은 다양한 라이브러리를 제공한다.

(3) 수치연산 프로그래밍

파이썬은 사실 수치연산 프로그래밍에 적합한 언어가 아니다. 수치가 복잡하고 연산이 많다면 C와 같은 언어로 프로그래밍하는 것이 더 빠르기 때문이다. 하지만 파이썬은 넘파이(Numpy)라는 수치 연산 모듈을 제공한다. 이 모듈은 C로 작성했기 때문에 파이썬에서도 수치 연산을 빠르게 수행할 수 있다.

(4) 데이터 분석

파이썬은 데이터 분석에 이상적인 언어로, 넘파이(NumPy), 판다스(Pandas), 맷플롯립(Matplotlib) 등과 같은 라이브러리들을 활용하여 데이터 처리, 통계 분석, 시각화를 손쉽게 수행할 수 있다. 데이터 분석을 할 때 아직까지는 데이터 분석에 특화된 R이라는 언어를 많이 사용하고 있지만, 판다스가 등장한 이래 파이썬을 사용하는 경우가 점점 많아지고 있다.

(5) 데이터베이스 프로그래밍

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

(6) 시스템 유틸리티 제작하기

파이썬은 운영체제(윈도우, 리눅스 등)의 시스템 명령어를 사용할 수 있는 각종 도구를 갖추고 있기 때문에 이를 바탕으로 파일 관리, 로그 분석, 시스템 모니터링 등과 같은 여러 가지 시스템 유틸리티를 만드는 데 유리하다. 실제로 여러분은 시스템에서 사용 중인 서로 다른 유틸리티성 프로그램을 하나로 합쳐 보다 유용한 프로그램들을 무수히 만들어 낼 수 있다.

(7) C/C++와 결합하기

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

(8) 사물 인터넷

파이썬은 사물 인터넷(Internet of things) 분야에서도 활용도가 높다. 한 예로 라즈베리파이(Raspberry pi)는 리눅스 기반의 매우 작은 컴퓨터이다. 라즈베리파이를 사용하면 홈시어터나 매우 작은 게임기 등 여러 가지 재미있는 것을 만들 수 있는데, 라즈베리파이를 제어할 때 파이썬을 사용한다. 예를 들어 라즈베리파이에 연결된 모터를 작동시키거나 LED에 불이 들어오게 하는 일을 파이썬으로 할 수 있다.

파이썬 활용하지 못하는 분야

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

파이썬으로 리눅스와 같은 운영체제 또는 엄청난 횟수의 반복과 연산이 필요한 프로그램을 만드는 것은 어렵다. 즉, 매우 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 적합하지 않다.

(2) 모바일 프로그래밍

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

'Python > 파이썬 기초' 카테고리의 다른 글

[2-5] 딕셔너리 자료형  (0) 2024.06.28
[2-4] 튜플 자료형  (0) 2024.06.28
[2-3] 리스트 자료형  (0) 2024.06.28
[2-2] 문자열 자료  (0) 2024.06.26
[2-1] 숫자형  (0) 2024.06.26