본문 바로가기
IT & 데이터 사이언스/Python

[Python] Python이란?

by 바른 호랑이 2024. 4. 18.
728x90
반응형

안녕하세요. 바른 호랑이입니다.

이번 게시글에서는 프로그래밍 언어 중 하나인 Python이란 무엇인가에 대해 알아볼 예정입니다. 

 

- Python이란?

ㆍPython은 1990년 암스테르담의 Guido Van Rossum이 개발한 인터프리터 언어로 본인이 좋아하던 코미디 쇼인 Monty Python's Flying Circus에서 따왔다고 함. Python의 사전적인 의미는 고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀을 뜻하며, 아폴론 신이 델파이에서 파이썬을 퇴치했다는 이야기가 전해지고 있고, 그로 인해 대부분의 파이썬 책과 아이콘의 모습이 뱀모양으로 그려져 있음.

+ 컴파일러 언어와 인터프리터 언어

컴파일러 언어 인터프리터 언어
ㆍ코드 실행 전, 컴파일 타임에 소스 코드 전체를 한번에 기계어로 변환 후 실행됨.

ㆍ별도의 실행파일이 생성되고 컴파일 단계와 실행 단계가 분리됨.

ㆍ컴파일은 한번만 수행하며, 컴파일과 실행단계가 분리되어 있어 코드 실행 속도가 빠름

ㆍ대표적으로 C, C++, Basic등이 컴파일러 언어에 해당함.
+ java는 컴파일러 언어와 인터프리터 언어의 특징을 모두 가지기에 별도로 하이브리드 언어로 분류함.
ㆍ코드가 실행 단계인 런타임에 코드 한 줄씩 중간 코드인 바이트코드로 변환 후 실행됨.

ㆍ별도의 실행파일이 생성되지 않으며, 인터프리트 단계와 실행단계가 분리되지 않고, 한 줄씩 바이트 코드로 변환 후 즉시 실행됨.

ㆍ코드 실행시마다 인터프리트 과정이 반복 수행되며, 인터프리트 단계와 실행단계가 분리되어 있지 않아 코드 실행 속도가 느림.

ㆍ대표적으로 java, python, sql, ruby, r 등이 인터프리터 언어에 해당함.

ㆍ파이썬 프로그램은 공동 작업과 유지 보수가 쉽고 간편하며, 이와 같은 장점으로 이미 다른 언어로 작성된 많은 프로그램과 모듈들이 python으로 재구성되기도 함.

 

- Python의 특징

ㆍ파이썬은 인간다운 언어이다 : 

프로그래밍이란 인간이 생각하는 것을 컴퓨터에 지시하는 행위로 볼 수 있으며, python은 사람이 생각하는 방식을 그대로 표현할 수 있는 언어임. 아래의 예시처럼 프로그램을 모르더라도 직관적으로 알 수 있을 정도임.

if 4 in [1, 2, 3, 4]: print("There is 4.")

 

ㆍ파이썬은 문법이 쉬워 빠르게 배울 수 있다 : 

다른 언어에 비해 문법 자체가 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있어 빠르게 익혀 활용할 수 있음.

 

ㆍ파이썬은 무료이지만 강력하다 : 

파이썬은 기본적으로 오픈 소스이기에 사용료 걱정 없이 어디서든 사용할 수 있으며, 만들고자 하는 프로그램의 대부분을 파이썬으로 만들 수 있음. 시스템 프로그래밍이나 하드웨어 제어와 같은 매우 복잡하고 반복 연산이 많은 프로그램들은 파이썬과는 어울리지 않으나, 다른 언어로 만든 프로그램을 파이썬 프로그램에 포함시킬 수 있음.

전반적인 뼈대는 python으로 만들고, 빠른 실행을 요하는 부분은 C로 만들어서 python프로그램 안에 포함시키는 형태로 구현할 수 있으며, 실제로 파이썬 라이브러리 중에는 순수 python으로 제작된 것 말고도 C로 만들어진 것도 많으며 속도가 빠름.

 

ㆍ파이썬은 간결하다 : 

Guido는 python을 의도적으로 간결하게 만들었으며, 이 철학은 python문법에도 그대로 적용되어 python의 코드는 다른 코드에 비해 이해하기 쉽기 때문에 공동 작업과 유지 보수가 쉽고 편함.

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

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

 

 

- Python으로 할 수 있는 것들

ㆍ시스템 유틸리티 제작 : 

python은 OS(windows, linux 등)의 시스템 명령어를 이용할 수 있는 각종 도구를 갖추고 있기 때문에 이를 바탕으로 갖가지 시스템 유틸리티를 만들 수 있음.

 

ㆍGUI 프로그래밍 : 

GUI(Graphic User Interface)프로그래밍이란 윈도우 창처럼 화면을 보며 마우스나 키보드로 조작할 수 있는 프로그램을 만드는 것으로 별도의 추가설치 없이도 python설치 시 함께 설치되는 기본 모듈인 Tkinter를 이용해 GUI 프로그램을 만들 수 있음.

 

ㆍC / C++과의 결합 : 

python은 접착언어라고도 부르는데, 이는 python을 C나 C++과 같은 다른 언어와 결합하여 사용할 수 있기 때문임. C나 C++로 만든 프르그램을 python에서도 사용할 수 있고, 그 반대의 경우도 가능함.

 

ㆍ웹 프로그래밍 : 

Edge, Chrome, Firefox와 같은 브라우저를 이용해 접속 후 이용하는 게시판이난 방명록등을 웹 프로그램이라고 하며, python을 이용하여 이와 같은 웹사이트들을 제작할 수 있음.

 

ㆍ수치 연산 프로그래밍 : 

python자체가 수치 연산 프로그래밍에 적합한 언어는 아니지만 Numeric Python과 같은 C로 작성된 수치 연산 모듈을 이용하면 빠른 수치 연산이 가능함.

 

ㆍDB 프로그래밍 : 

Sybase, Infomix, Oracle, MySQL, PostgreSQL등의 DB를 접근할 수 있게 해주는 도구들이 python에는 존재하기 때문에 DB 프로그래밍이 가능함. 

 

ㆍ데이터 분석, 사물 인터넷 : 

python은 데이터 분석을 위한 pandas라는 모듈을 제공하며, 이를 활용해 r에서 할 수 있는 대부분의 데이터 분석이 가능함. IOT분야에서도 python의 활용도가 높은데 한 예로 리눅스 기반의 Raspberry Pi를 제어하는 도구로 python이 사용됨.

 

- Python으로 할 수 없는 일 

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

파이썬으로 DoS, Linux와 같은 OS, 엄청난 횟수의 반복과 연산을 필요로 하는 프로그램 또는 데이터 압축 알고리즘 개발 프로그램 등을 만드는 것은 어려움. 

 

ㆍ모바일 프로그래밍 : 

Android에서 python으로 만든 프로그램들이 실행되도록 지원을 하기는 하나 아직 App을 개발하여 서비스하는 것은 어려움이 있음.

728x90
반응형

댓글