Python 소개

2025. 11. 15. 21:26·Programming/Python

파이썬의 소개

1. 파이썬이란

파이썬이란 언어를 처음 접하게 는 경우 이름을 부르기부터 곤란할 것이다. 그래서 어떤 사람은 피톤이라고 읽는 사람도 있고 또 어떤 사람은 파이톤이라고 읽는다. 파이썬이란 언어를 처음 접하고 나서 파이썬이란 발음으로 들은 필자로서는 약간 듣기가 거북했다. 처음에 이 단어를 어떻게 읽을까 고민을 많이 했는데, 필자와 같은 경험을 갖고 계신 분들이 많을 것이다.

영어사전이나 전자수첩에서 Python을 입력하면 발음을 파이썬이라고 하라고 나올 것이다. 그렇다 정식 명칭은 파이썬이다. 뜻을 살펴보면 일반적으로 독이 없는 뱀으로 먹이를 몸으로 감아서 압사시키는 큰뱀, 또는 그리스 신화에 나오는 악마라는 의미라고 나온다. 하지만 이 언어는 전혀 그런 의도에서 만들어진 것이 아니다.

이 이름의 유래는 1970년대에 굉장히 재미있게 만들어진 영국 BBC 방송의 "Monty Python's Flying Circus"에서 유래 된 것이다. 이 프로그램은 굉장히 어색하고 이상한 행동의 사람들을 보여줌으로써 굉장한 인기를 누렸는데 이 언어를 만든 Guido van Rossum이 이 프로그램의 대단한 팬이었기 때문이었다. 강력한 언어인 파이썬이 이러한 유래를 가졌다는 것이 어찌 보면 굉장히 우스운 일이다. 하지만 이 언어가 요즘 우리의 주변 상황을 많이 바꾸어 놓았다.

그리고 이 언어가 만들어진 배경 또한 무척이나 재미있다. 1989년 12월 크리스마스 휴가를 보내고 있던 Guido는 휴가동안 무엇인가 재미있게 할 수 있는 무엇인가를 찾고 있었다. 취미로 할 수 있는 프로그래밍을 찾고 있었던 것이었다 (상상이 잘 안가는 상황이다).

연휴라서 연구실이 닫힌 상황에서 집에서 컴퓨터를 가지고 무료한 한때를 보내다가 예전부터 생각하고 있었던 해석기(interpreter)를 만들어 보기로 결심한 것이었다. 취미로 이렇게 시작한 언어가 지금 이렇게 엄청난 발전을 거두고 주목을 받고 있다는 것이다.


1.1 파이썬의 출발

파이썬의 기반은 ABC라는 언어이다. 80년대 초반에 Guido가 개발을 도왔던 언어였는데 리눅스의 개발과도 좀 흡사하다. ABC라는 언어는 가르치는 언어로는 그 당시 최고의 언어였는데(미닉스도 교육용으로 나온 것을 보면 정말 흡사하다) ABC 언어는 전문 프로그래머가 아닌 사람이 배우기 편하게 만들어진 아주 훌륭한 언어였다. 굉장히 사용이 편하고 강력한 기능이 있었음에도 불구하고 유닉스 해커 사회에서는 거의 받아 들여지지도 않았고 사용되지도 않았다.

이에 Guido는 ABC 언어의 단순한 입출력에 그 이유를 두고(단순히 콘솔에서 문자열을 읽어드리고 그 결과 또한 콘솔로만 출력되었던 문제) 파이썬에서는 이러한 문제를 해결하려고 했다. ABC 언어는 또한 교육을 목적으로 만들어진 언어라는 점 때문에 너무 이론적으로 최적화된 알고리즘을 사용하였는데 실제 적용에는 이와 같은 것이 적합하지 않다고 생각하여 파이썬에서는 더욱더 쉽게 실제 문제에 적용할 수 있게 설계하였다. 또한 초보자 뿐만 아니라 전문 프로그래머에게도 쉬운 언어를 개발 하려 하였다. 또한 Guido는 C언어나 유닉스 쉘을 대신해서 자유자재로 사용할 수 있는 언어를 개발하는 데 초점을 맞추었다. Guido가 생각했던 또하나의 언어적 특징(논란은 많았지만) 들여쓰기를 철저하게 지킨다는 것이다.

이러한 언어적인 특징은 ABC라는 언어에서 나온 것이다. 파이썬의 최초 개발자인 Guido로서는 이러한 부분에 신경을 굉장히 많이 썼다. 왜냐하면 만들어진 코드의 가독성을 높이기 위해서였다. 들여쓰기를 하게 되는 경우 코드가 엉성해지는 일은 없어지고 프로그램을 보다 짧게 만들 수 있다는 점이 유리하다. 또한 프로그래머가 프로그램시에 좀더 엄격한 들여쓰기를 하여 일정한 형태로 만들면 다른 사람이 그 코드를 읽는데 어려움을 덜어주는 효과를 보여준다.

C 언어에서처럼 {} 등의 괄호를 넣지 않는 다는 것이 프로그램을 좀더 깔끔하고 깨끗하게 만들어준다. 파이썬을 한번이라도 사용해본 분들은 잘 아시는 사실이겠지만 어떤 코드를 보더라도 그 코드를 재사용하기 쉽게 만들어준다는 것이다. 코드의 분석도 쉬울뿐 아니라 이로 인해 그 코드를 받아서 작업하는 다른 사람도 훨씬 더 작업을 편하게 해주는 것이다. 이는 ABC 언어를 가르칠 때 항상 강조하는 코드의 깔끔함을 Guido가 그대로 가져온 것이라 할 수 있다. 하지만 파이썬은 해석(interpreter) 언어이기 때문에 실행속도 면에서는 컴파일러 언어인 C보다 느린 것은 사실이다. 하지만 요즘의 하드웨어 속도가 계속해서 발전하기 때문에 프로그램의 실행시간은 그리 큰 문제가 되지 않을 것이다. 단지 파이썬을 만들면서 Guido가 가장 중요하게 생각했던 점은 개발 시간의 단축이라는 것이다. 많은 개발자들이 느끼는 점이지만 개발속도가 느려져서 항상 마감시간에 촉박한 경우가 한 두번이 아니었을 것이다. 하지만 파이썬을 이용해본 분이나 앞으로 사용할 분들이 느낄 수 있는 파이썬의 강점중에 개발시간과 디버깅 시간을 굉장히 줄여준다는 것이다. 결국 이 부분이 전체적인 시간을 줄여주는 데 아주 큰 역할을 하게 된다. 결국 이는 파이썬의 모토중의 하나인 먼저 개발하라라는 모토가 잘 말해주는 것인데 누구나 일주일정도 공부하면 왠만한 코드는 쉽게 만들 수 있는 훌륭한 언어인 셈이다.


2. 파이썬의 특징 및 용도

그럼 여기서 파이썬의 특징들과 어디에 사용되고 있는지 잠깐 살펴보자. 파이썬은 VHLL (very-high-level language)면서 OODL (object-oriented dynamic language)로서 기존의 스크립트 언어의 특징과 소프트웨어 공학적인 면을 잘 이용한 언어이다.


2.1 객체지향적 언어

해석 언어이고 스크립트 언어임에도 불구하고 일반적인 객체지향언어가 갖고 있는 다형성 (polymorphism), 연산자 오버로딩, 다중 상속의 기능을 갖고 있다. 하지만 다른 객체 지향적인 언어와는 다르게 동적 타이핑과 객체 지향적인 특징들을 쉽게 적용할 수 있다. 또 파이썬은 다른 객체지향언어(C++, Java)에서 구현된 클래스를 하부 클래스로 사용할 수 있다.

 

2.2 이식성

파이썬은 이식 가능한 ANSI C로 만들어졌고 현재로서는 거의 대부분의 플랫폼에서 컴파일되고 동작한다. 예를 들자면 유닉스 시스템, 리눅스, MS-DOS, Windows 9x, NT, 아미가, OS/2, Be-OS, VMS, QNX 등등의 플랫폼에 이식된다. 또한 파이썬 코드는 이식 가능한 바이트코드로 변환되어 파이썬이 설치되는 어떠한 플랫폼에서도 작동이 가능하다. 결국 이 의미는 어느 플랫폼에서 만든 코드가 다른 플랫폼에서도 동작이 가능하다는 이야기다. 대부분의 파이썬 포트는 플랫폼에 의존적이지만 파이썬의 주요한 언어부분과 라이브러리는 어디서든지 작동한다. 예를 들어 파이썬은 Tkinter라는 Tk GUI 시스템에 대한 표준 인터페이스를 포함한다. 파이썬의 Tkinter API를 사용하면 거의 완벽한 그래픽 사용자 인터페이스를 제공하고 거의 모든 GUI 플랫폼에서 코드의 변환 없이 작동한다.


2.3 오픈 소스

파이썬은 오픈 소스 소프트웨어로 인터넷에서 그 소스를 어디서든지 구할 수 있다. 소스를 복사하고 임베디드 시스템에서도 사용할 수 있고 상업적으로 이용하는 소프트웨어에서도 사용할 수 있다. 심지어는 파이썬을 팔 수 도 있다. 다른 오픈 소스 소프트웨어와 마찬가지로 파이썬 또한 개발자나 사용자에게 모두 기여할 수 있는 기회를 준다. 언어에 대한 개발이 모든 사람에게 즐거운 일은 아니지만 한 사람 한 사람의 버그 보고나 개발 참여는 파이썬의 발전에 큰 기여를 하게 되는 것이다.


2.4 사용의 편이성

보통 언어를 처음 배우고 사용하고 응용하는데 까지 빠른 시간 내에 할 수 있는 그러한 언어는 그리 많지 않다. 파이썬의 경우는 매우 빠르게 습득하고 응용할 수 있는 언어인데 언어의 단순성 때문에 프로그래밍 작업을 즐겁게 만들어준다. 단지 여러분의 생각을 코딩하고 그냥 실행시키면 된다. 중간과정으로 특별하게 컴파일하고 링크하는 과정이 필요 없다. 다른 해석 언어와 마찬가지로 파이선은 프로그램을 곧바로 확인하여 실행시킬 수 있어서 개발자에게는 단기간 내에 프로그램을 완성할 수 있는 효과를 준다. 파이썬 프로그램들은 바이트코드라는 형태로 컴파일 되는데 이는 해석기(interpreter)로 해석된다. 컴파일 과정이 거의 자동적으로 일어나고 프로그래머에게 보여주질 않기 때문에, 굉장히 빠르게 작업을 할 수 있다. 또한 파이썬을 배우면 알겠지만 사용되는 문법의 단순성도 빠른 개발에 도움을 준다고 할 수 있다. 이러한 단순성은 다른 언어 예를 들어 C, C++등의 언어로 만들어진 코드보다 매우 짧게 된다.


2.5 다른언어와의 연결

파이썬의 특징을 말하는 어구중에 하나는 "접착어(glue language)"라는 것이다. 파이썬은 C나 C++로 확장이 가능할 뿐만 아니라 내장될 수 있다. 이러한 기능의 접목은 파이썬이 스크립트 언어로서 컴파일러 언어보다 느리다는 단점을 충분히 해결할 수 있는 방법이 된다. 즉 필요에 따라서 자신에 입맛에 맞게 다른 언어와의 접목이 가능하다는 것이다.


2.6 배우기 쉽다

언어의 가장 큰 장점중의 하나로 다른 언어와는 달리 언어의 핵심부분들(다음 연재부터 다룰 내용) 굉장히 배우기 쉽다(리스트, 터플, 사전, 모듈, 클래스, 예외처리 등). 에릭레이몬드가 쓴 몇가지 글(참고 :Linux@Work 7월호 기사)를 보면 fetmailconf 프로그램을 몇일 만에 완성했다고 나와있다. 뭐 레이몬드가 워낙 실력이 뛰어나서도 있겠지만 그도 한번도 써보지 않은 언어를 몇일 동안 책 읽고 몇일 만에 현재 우리가 잘 사용하는 fetchmailconf를 만드는 것은 그리 쉽지 않은 일이었음에도 불구하고 파이썬이란 언어가 그만큼 배우고 쉽고 바로 적용할 수 있다는 장점을 확실히 보여주는 결과라 할 수 있을 것이다. 특히 초보자의 경우는 이 언어를 만든 Guido가 이 프로젝트의 재정적 지원을 위해 쓴 제안서인 "CP4E (Computer Programming for Everyone:https://www.python.org/doc/essays/cp4e/)"라는 글을 읽어보면(아쉽게도 아직은 한글로 번역이 되지 않았다) 컴퓨터 언어를 새롭게 배우는 장벽을 없애서 초등학생조차 쉽게 배울 수 있는 언어로 만들고자 한 의도가 있었다.

 

2.7 강력한 도구들

파이썬는 스크립트 언어로서 단순함과 편이성을 제공하는데 이와 함께 시스템의 개발도구로서 진보된 언어적인 특징을 제공한다. 다른 스크립트 언어와는 달리 이러한 언어적인 특징들이 구체적인 개발 프로젝트에 아주 적합하다. 몇 가지 특징을 열거하면 다음과 같다.  

- 동적인 타이핑 C 등의 언어에서처럼 미리 변수등의 타입을 결정할 필요가 없고 필요에 따라 수시로 타입을 결정하면 된다. - 높은 수준의 내장 자료형 리스트, 터플, 사전, 문자열등의 기본적으로 사용되는 데이타 구조를 제공한다. 다음의 연재에서 살펴보겠지만, 사용하기가 굉장히 쉽게 유용성이 많은 자료형들이다.  

- 내장 도구들 모든 객체에 적용이 가능한 이어줌(joining), 슬라이싱, 정렬, 매핑 등등의 기능을 제공한다. - 자동 메모리 관리 기능 파이썬은 자동적으로 사용하지 않는 객체들이 있는 경우 그 객체들을 재정렬하여 사용하는 "garbage collection"을 기능을 제공한다. 명령에 따라서 증가와 감소가 가능하다.  

- 많은 표준 모듈 정규 표현식부터 인터넷 프로그래밍을 지원하는 수많은 라이브러리 모듈들이 내장되어 있다.  

- 다양한 3rd party 유틸리티 지원 파이썬은 오픈 소스이기 때문에 개발자들로 하여금 파이썬에 내장된 표준 모듈이외에도 많은 다른 모듈들을 개발하게 만드는데 예를 들어 COM, 코바, XML등의 3rd party 유틸리티를 지원한다.  

- 유니코드 지원(파이썬 2.0) 최근에 발표된 파이썬 2.0에서는 유니코드 지원을 확실히 지원하게 되었다. 3. 파이썬의 응용분야 앞서도 이야기 했지만 거의 배우자마자 곧바로 실제작업에 적용할 수 있는 언어인 파이썬은 여러가지 분야에서 응용이 가능한데 어디에 사용할 수 있는지 몇 가지를 우선 살펴보겠다.  

- 시스템 유틸리티로 사용할 수 있다. 운영체제에 대한 표준모듈을 이용하여 이식가능하고 시스템 관리에 적용이 가능한 도구를 만들 수 있다. POSIX와의 연결과 일반적으로 OS 도구들을 지원하는데: 환경변수와 파일, 소켓, 파이프, 프로세스, 스레드, 정규표현 등등을 지원한다.  

- 그래픽 유저 인터페이스 (GUI) 앞에서도 언급했지만 Tk에 대한 표준 인터페이스로 Tkinter가 있고 이는 파이썬 프로그램이 좀더 GUI를 쉽고 간편하게 사용하게 해준다. 이것 이외에도 wxPython, pyGTK, pyQt, 매킨토시용 도구, 윈도우용 PythonWin 등이 있다.  

- 각종 텍스트 처리기 펄에서 사용되는 정규식을 지원할 뿐만 아니라 자연 언어 처리 기능도 지원한다. 또한 HTML, XML, SGML등의 여러가지 형태의 웹 언어 지원 라이브러리도 지원한다.

- 데이타베이스 프로그래밍 Sybase, Oracle, Informix, ODBC, MySQL와 같은 데이타 베이스를 지원하는 파이썬 인터페이스가 존재한다.  

- 인터넷 프로그래밍 소켓, CGI, FTP, TELNET, mod_python, ZOPE, Aquarium 등등의 인터넷 유틸리티 표준모듈을 지원한다.  

- 이미지 처리, AI(인공지능), 분산처리 등등의 지원 파이썬을 C와 같은 컴파일 언어로 만들어진 컴포넌트의 라이브러리에 추가하여 다양한 형태로 사용이 가능한데 예를 들어 이미지 처리는 컴파일 언어에 구현된 라이브러리의 집합으로 구현된다. 이러한 형태로 파이썬은 다른 컴파일 언어와의 접목을 통해서 여러가지 목적으로 확장이 가능하다.

- 컴포넌트 포함 (Component Integration) 앞서 이야기한 접착성이 강한 언어로서 파이썬을 C 라이브러리로 합쳐서 다른 시스템의 컴포넌트로 사용할 수 있다. 파이썬을 내장 시킴으로써 전체 결과물을 다시 컴파일 하지 않고 자신에 맞게 변경이 가능하다.  

- 수치계산 NumPy 수치계산 파이썬 확장모듈(배열 객체와 표준 수학 라이브러리에 대한 인터페이스 포함)를 이용하여 복잡한 수식계산을 간편하게 할 수 있다. 

 

 

출처 : 양유성 ,송재경 , 한국 파이썬 사용자 그룹

'Programming > Python' 카테고리의 다른 글

[파이썬/프로젝트] "내 꿈은 건물주!" Python으로 내 손으로 만드는 빌딩 관리 시스템 구축 가이드  (0) 2026.08.14
[Python] 기초 소스  (0) 2026.05.14
Python Tkinter - GUI 라이브러리  (0) 2025.11.22
구글 드라이브에서 파이썬(Python) 사용하기 (Colab)  (0) 2025.11.19
[Python] 이미지/Exif Tag 정보 읽어오기  (0) 2025.11.17
'Programming/Python' 카테고리의 다른 글
  • [Python] 기초 소스
  • Python Tkinter - GUI 라이브러리
  • 구글 드라이브에서 파이썬(Python) 사용하기 (Colab)
  • [Python] 이미지/Exif Tag 정보 읽어오기
레이조(RayCho)
레이조(RayCho)
개발자 레이조(RayCho)의 블로그입니다. 똑똑하게 배우고 기록하는 공간
  • 레이조(RayCho)
    레이(Ray)의 개발이야기
    레이조(RayCho)
  • 전체
    오늘
    어제
    • 분류 전체보기 (101)
      • Programming (101)
        • Python (9)
        • Flutter (4)
        • Delphi (25)
        • Java,Spring Boot (2)
        • Lazarus (2)
        • C#.NET (20)
        • ASP.NET (5)
        • Database (8)
        • Game Dev (6)
        • Rust (3)
        • PHP (3)
        • Web (6)
        • ETC (8)
  • 블로그 메뉴

    • 홈
    • Introduce
    • 태그
  • 링크

    • Naver Blog
    • Diary Blog
  • 공지사항

  • 인기 글

  • 태그

    ASP.NET
    Python
    objectpascal
    기초
    소스코드
    프로그래밍
    VCL
    개발환경
    C#
    PSP
    문법
    csharp
    Flutter
    Web
    프로젝트
    mssql
    WPF
    delphi
    델파이
    iis
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
레이조(RayCho)
Python 소개
상단으로

티스토리툴바