[Python] 3강 - 파이썬의 이해

2025. 4. 11. 14:15·⚡Python

1. 파이썬의 개요

(1) 파이썬의 탄생 배경

네덜란드 과학자 "히도 판로쉼" 이 1991년 개발한 프로그래밍 언어이다.

[1] 히도 판로쉼

- 네덜란드 암스테르담 대학에서 수학과 컴퓨터 전공

- 좋아하는 코미디 "Monty Python's Flying Circus"를 통해 "Python" 이라는 이름으로 짓게 됨.

- "Python" 은 히도 판로쉼이 크리스마스에 연구실이 7일간 잠겨 할일이 없어 만들게 된 프로그래밍 언어이다.

- 세부적인 이유로는, 히도 판로쉼은 분산 운영체제 '아메바(Amoeba)'의 시스템 관리용 쉘 스크립트 언어를 개발하려했음.

- 연구실이 크리스마스로 7일간 폐쇄되자 남는 시간에 평소 만들고 싶었던 프로그래밍 언어를 구현했다.

- 그것이 파이썬 이며, 파이썬은 쉘 스크립트 언어로 처음 개발이 되었다.

 

(2) 파이썬을 사용하는 이유

[1] 다중 프로그래밍 패러다임 지원

- 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 다양한 패러다임을 지원함.

[2] 다목적 활용이 가능

- 응용 프로그램, 웹 백엔드 개발, 사물 인터넷 분야, 교육적인 목적으로 활용이 되고 있음.

 

(3) 파이썬의 발전 과정

[1] 1991년

- ABC의 후속 프로그래밍 언어로 시작

[2] 1999년

- DARPA 조직에 전 세계적으로 누구나 사용이 가능한 컴퓨터 프로그래밍 언어를 만들테니 지원해 달라고 제안을 함.

[3] 2000년

- 파이썬 2.0 출시 - 커뮤니티를 통한 개발 체계 시작

* 기존의 프로그래밍 언어들은 기업들이 원하는 방향으로 개발이 됨. 하지만, 파이썬은 누구나 개발을 하고 만들 수 있는 언어라는 취지였음.

[4] 2008년

- 파이썬 3.0 출시 - 비 하위 호환성을 갖는 메이저 업데이트 ( 마이너 업데이트에선 호환이 가능함. )

- 쉽게말해, 파이썬 2.0은 3.0에서 사용이 불가능 즉, 호환성을 가지지 않는다. ( 인터프리터에서 오류를 내뱉음. )

* 현재 파이썬 3.x 버전 사용 중으로 2030년까지 유지가 될 예정임.

 

(4) 파이썬의 인기

- 기존의 상위권 프로그래밍 언어들과 어깨를 나란히 했지만, 1위는 해본적이 없음.

- 2022년도 말에 만들어진 통계자료에 따르면, 2022년도에 처음으로 파이썬이 1위를 차지함.

- 2025년 현재에도 1위를 차지하고있는 인기 많은 언어이다. ( C , Java , C# , C++ 등 다양한 인기 언어들을 이김 )

- 파이썬 언어는 인스타그램, 넷플릭스, 아마존 등에서 사용 중이다.

- 심지어 구글에서 만들어진 소프트웨어 50% 이상이 파이썬을 사용 중이다.

출처 : https://www.tiobe.com/tiobe-index/

 

(5) 파이썬의 인기 이유

- Pythonic : 파이썬을 이용자들이 사용하는 단어로, "파이썬 다워" 라는 의미를 가지고 있다.

- 특정 조직에 귀속되지 않는 언어 공동체가 만들어 나가는 언어이기에 독립적임.

- 운영체제를 가리지 않고, 모든 환경에서 실행이 가능해 특정 플랫폼에 종속적이지 않다는 특징이 있다.

- 모든게 오픈소스이며, 심지어 파이썬 인터프리터는 모든 소스코드가 공개가 되어있음.

* 인터프리터를 다운받아서 직접 재정의 할 수도 있음.

- 다른언어에 비해 사람이 쓰는 자연어와 굉장히 유사하기에 직관적임.

- 여러 프레임워크랑 라이브러리가 있어, 가져다가 바로 개발을 할 수 있는 신속성이 있음.

- 이러한 이유들이 "Pythonic" 즉, 파이썬 답다는 의미를 내포하고 있다.

[1] 오픈소스

- 파이썬 관련 개선을 위한 제안(PEP)

- 많은 개발자의 의견을 수용하고 토론하며 발전한 언어

- 새로운 파이썬의 기능, 파이썬 프로세스, 환경에 대해 커뮤니티에 설계 문서나 정보를 제공

- 파이썬 기능의 간결한 기술적 사양과 기능을 위한 근거들을 제공

- 커뮤니티의 의견을 수집, 합의 도출, 반대의견 정취

- PEP 8(스타일 가이드) 대표적

[2] 라이브러리와 프레임워크

- 다양한 라이브러리와 프레임워크를 다른 언어보다 더욱 많이 지원을 함.

* 단점은, 너무 많아서 뭘 사용하는게 좋을지 감도안온다는 점..?

 

(6) 파이썬의 단점

- 인터프리터 언어이다 보니, C나 자바 등으로 작성된 프로그램보다 느린 속도

- 완전한 애플리에키션 단독 개발이 불가능하다.

- 쉘 스크립트 언어 용으로 개발이 되어, 모바일 앱 등 응용 애플리케이션 개발이 불가능하다.


2. 파이썬 프로그램의 실행

(1) 파이썬 실행 환경

- 플랫폼에 독립적이며 인터프리터식 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어

- 윈도우, 리눅스, 유닉스, 맥OS 등 다양한 운영체제에서 별도의 컴파일 없이 실행이 가능함.

- CPython, PyPy, Jython 등 다양한 인터프리터 환경 사용 가능

- 프로그램을 객체로 모델링해서 만들 수 있음.

- 동적 타이핑 : 변수의 자료형을 지정하지 않아도 됨. 즉, 파이썬이 알아서 데이터 타입을 관리해줌.

- 대화형 언어 : 작성한 코드에 대한 수행 결과를 바로 확인하고 디버깅하면서 코드 작성 가능.

[1] CPython

- C 언어로 개발된 파이썬 인터프리터 ( C 구현 라이브러리와의 연동을 통한 확장에 최적 )

[2] 컴파일러의 유형

- 셀프 호스팅 컴파일러(Java / C) : 부트스트래핑 단계를 통해 자신의 언어로 작성한 컴파일러

- 소스 대 소스 컴파일러(파이썬) : 타 언어로 작성한 컴파일

 

(2) 파이썬 프로그램 실행과정

- 파이썬 애플리케이션은 소스 코드 형태로 배포가 됨.

- 코드 작성 -> CPython(컴파일러) -> 바이트코드(.pyc 파일) -> 파이썬 가상 머신(PVM)

- 저 바이트코드는 어떠한 운영체제에서도 재컴파일 없이 바로 실행이 가능함.

- 쉽게말해, 파이썬에는 다양한 컴파일러가 존재하며, 대표적으로 CPython를 활용하지만, JPython 처럼 파이썬 코드를 자바 바이트코드로 변환을 해주는 컴파일러도 있다. 해당 JPython은 자바 바이트코드로 변경 한 뒤 JVM위에서 실행이 가능하다.

- 마지막으로 파이썬 가상 머신(PVM)을 통해 .pvc 파일의 바이트코드를 기계어로 변환 한 뒤 실행을 시켜준다.

- 파이썬 가상머신은 바이트코드를 한 라인 씩 실행되고 변경없이 재실행 시 바이트코드로 빠르게 실행이 된다.


3. 파이썬 프로그래밍 환경

(1) IDLE

- 기본으로 포함된 파이썬의 통합 개발 환경이다.

- 파이썬과 Tkinter GUI 툴킷으로 개발

- 구문 강조, 자동 완성, 스마트 들여쓰기 등이 포함된 단순한 IDE 지향적임.

- stepping, breakpoint, call stack을 확인할 수 있는 통합 디버거 환경을 제공해줌.

- http://www.python.org 파이썬 공식 홈페이지에서 다운로드 가능함.

 

(2) 주피터 노트북

- 오픈소스 기반의 웹 플랫폼

- 파이썬을 비롯한 40여개의 프로그래밍 언어 지원

- 전통적인 소스코드-컴파일-실행 방식에서 벗어나 웹 기반 대화형 개발 및 실행 환경

- 문서화하여 다른 사람과 공유하기가 편리함.

- 마크다운(Markdown)을 이용하여 코드 관련 타이틀, 설명 등 작성이 가능하다.

 

(3) 구글 Colab

- 2017년 과학 연구와 교육을 목적으로 개발함 ( 무료로 제공 일부 유료 )

- 클라우드 기반 주피터 노트북 개발 환경

- 주피터 노트북 + 구글 드라이브를 결합한 서비스

- 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스 활용 가능


(4) 그외 IDE

- PyCharm(JetBrains) , VS Code 등 다양한 툴이 있음.


4. 정리 하기

(1) 파이썬의 특징 및 장점

- 쉬운 문법과 빠른 개발 속도로 초보자도 접근하기가 쉽다는 장점이 있다.

- 데이터 조작에 강력한 라이브러리가 제공이 된다는 장점이 있다.

- 오픈 소스 기반으로 다양한 패키지와 라이브러리를 지속적으로 확장이 된다는 장점이 있다.

- 커뮤니티가 활발하여 문제 해결과 기능 확장에 용이 하다는 점이 있다.

 

(2) 인공지능 분야에서의 파이썬

[1] 머신러닝 분야

- Scikit-learn, XGBoost 등 머신러닝 라이브러리를 통해 예측 모델 기반의 서비스 개발이 가능

[2] 딥러닝 분야

- TensorFlow, PyTorch, Keras 등 딥러닝 프레임워크 대부분이 파이썬 기반 

- 고성능 모델 개발에 적합하며 연구 및 서비스 개발에 널리 활용됨

[3] 정리

- 하나의 언어로 머신러닝, 딥러닝, 데이터분석 등 폭넓은 인공지능 분야를 모두 다룰 수 있음

 

(3) 파이썬의 매력

- 방대한 오픈소스 생태계 

- 많은 기업과 개인의 참여로 지속적 발전 

- 공유와 협업 문화로 배우기 쉽고 활용도가 높음 

- 높은 범용성으로 웹, 데이터, 인공지능, 자동화 등 다양한 분야에서 사용 가능

 

(4) 타 언어와의 비교

 

(5) 마무리

- 파이썬은 배우기 쉬우면서도 범용성과 생산성이 뛰어나, 빠르고 품질 높은 어플리케이션 개발에 가장 적합한 언어 중 하나이다.

'⚡Python' 카테고리의 다른 글

[Python] 5강 - 순차 구조 및 제어 구조  (0) 2025.04.15
[Python] 4강 - 파이썬 시작하기  (0) 2025.04.14
[Python] 개인 컴퓨터에서 파이썬 설치 및 VS Code로 실행하기  (0) 2025.04.11
[Python] 2강 - 컴퓨터의 구성  (0) 2025.04.09
[Python] 1강 - 컴퓨터의 이해  (2) 2025.04.09
'⚡Python' 카테고리의 다른 글
  • [Python] 4강 - 파이썬 시작하기
  • [Python] 개인 컴퓨터에서 파이썬 설치 및 VS Code로 실행하기
  • [Python] 2강 - 컴퓨터의 구성
  • [Python] 1강 - 컴퓨터의 이해
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (139) N
      • 🎓방송통신대학교 (24) N
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (9) N
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (0)
        • 📝Java Programming (9)
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    클라우드
    Spring Framework
    컴퓨터의 이해
    컴파일러
    세계화
    함수
    자바
    방송대
    Java
    클래스
    방송통신대학교
    방통대
    유비쿼터스 컴퓨팅
    유비쿼터스 컴퓨팅개론
    메모리
    spring
    Python
    파이썬
    스프링
    유비쿼터스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[Python] 3강 - 파이썬의 이해
상단으로

티스토리툴바