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% 이상이 파이썬을 사용 중이다.
(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 |