파이썬 - 파이썬의 이해
파이썬
과학자 히도 판로쉼(Guido van Rossum)이 1991년 개발
파이썬 큰그림 그리다가 크리스마스 주에 연구실이 잠겨 할게 없어서 만든 프로그래밍 언어.
(원래는 분산 운영 체제인 아메바(Amoeba)의 시스템 관리를 위한 목적으로
쉘 스크립팅 언어로 개발을 하고 있었는데… 목표달성..!)
쉘(Shell)
쉘이란 무엇이냐~?!
사용자가 윈도우즈에게 어떤 명령어를 전달 -> 운영체제가 어떠한 동작을 해야함
이 때, 사용자가 입력한 명령어를 해석해서
운영체제 내부의 커널(Kernel)에 전달하는 명령 해석기 창을 말함.
스트립트
명령어를 순차적으로 나열하여 운영체제가 어떤 순서로 동작해야 하는지
명령어를 집합으로 만들어놓은 형태.
이 목적들을 위해 만들어진 언어 : 파이썬(Python)
파이썬 왜 인기 많음?
- 다중 프로그래밍 패러다임 채용
- 프로그램을 생성하는 접근 방식
(패러다임이란,
현실세계를 컴퓨터 내부에 전달하기 위해 어떤 방식으로 모델링을 할 것인가에 대한 여러 관점들을 규칙화하여 만든 것)- 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 지원
- 다목적 활용
- 응용 프로그램과 웹, 백엔드 개발, 사물 인터넷 뿐만 아니라 교육적 목적으로도 활용
파이썬 발전 과정
- 1991년 ABC의 후속 프로그래밍 언어로 시작 (히도 판로쉼의 큰그림)
- 1999년 DARPA에 ‘Computer Programming for Everybody’제안
(DARPA : 미 국방성 연구 기관으로 이곳에서 우리가 쓰는 최초의 인터넷이 탄생..!!) - 2000년 파이썬 2.0 출시 (커뮤니티를 통한 개발 체계 시작)
- 2008년 파이썬 3.0 출시 (비 하위 호환성을 갖는 메이저 업데이트)
패키지 버전
메이저(Major)
: 하위 호환이 되지 않는 변경 사항 (소수점 첫째 자리 업뎃)
상품 또는 서비스 버전으로,
신규버전(v.1.0.0) 또는 이전 버전과 호환되지 않을 정도의 매우 큰 변화가 발생한 경우.
마이너(Minor)
: 하위 호환이 되는 변경 사항 (소수점 둘째 자리 업뎃)
이전 버전과 호환 가능한 상태에서 신규 기능의 추가, 기존 기능이 삭제된 경우.
패치(Patch)
: 간단한 버그 수정 (소수점 셋째 자리 업뎃)
소프트웨어의 API를 변경하지 않는 사소한 변경이나 버그 수정 등.
파이썬답다 == Pythonic
- 독립적
- 특정 조직에 귀속되지 X. 공동체가 만들어나가는 언어
- 특정 플랫폼에 종속되지 X (운영체제 안 가림 ㅎㅋ)
- 오픈소스
- PEP (위아더월드~~!)
- 인간적
- 사람이 쓰는 자연어와 굉장히 유사
- 생산성, 신속성
- 여러 라이브러리, 프레임워크가 만들어져 있으니까 갖다쓰면 됨 ㄱㅇㄷ
- 동일한 기능이지만 훨씬 적은 코드 라인!!!!
- 직관적
- 내 생각을 바로바로 코드화 가능
- 대형 개발자 커뮤니티
- 빠른 문제 개선
- 라이브러리와 프레임워크 ㄱ막강
- 빠르게 import해서 쉽고 편하게 쓸 수 있음
단점
- C나 자바 등으로 작성된 프로그램보다 현저히 느린 속도
- 완전한 애플리케이션 단독 개발 불가능
- 쉘 스크립트 언어 용으로 개발
- 모바일 앱 등 응용 애플리케이션 개발 불가능
파이썬 실행 환경
: 플랫폼에 독립적이며, 인터프리터식 객체지향적, 동적 타이핑 대화형 언어.
- 윈도우, 리눅스, 맥OS, 유닉스 등 다양한 운영체제(플랫폼)에서 별도 컴파일 없이도 실행 가능
- CPython, PyPy, Cython, Jython 등 다양한 인터프리터 환경 사용 가능
- 프로그램을 객체로 모델링
- 변수의 자료형을 지정하지 않음
- 작성한 코드에 대한 실행 결과를 바로 확인하고, 디버깅 하면서 코드 작성 가능
파이썬 프로그램 실행과정
- 파이썬 애플리케이션은 소스 코드 형태로 배포
- CPython이 컴파일 후, 바이트코드 .pyc 파일을 생성
- 파이썬 가상머신은 바이트코드를 한 라인씩 실행
- 변경없이 재실행 시, 바이트코드로 빠르게 실행
파이썬 프로그래밍 환경
- IDLE
- 기본으로 포함된 파이썬의 통합 개발 환경
- 주피터 노트북
- 오픈소스 기반의 웹 플랫폼 (설치 필요없이 호다닥!!)
- 구글 Colab
- 2017년 과학 연구와 교육을 목적으로 개발됨 (협업 겁나 잘할 수 있음)
클라우드 기반 주피터 노트북 개발 환경 (주피터랑 거의 동일함)- 주피터 노트북 + 구글 드라이브를 결한한 서비스
- 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스 활용 가능
참고
(방송대 강의) 파이썬프로그래밍기초 - 정재화
[TW] Release Note 톺아보기
TIOBE Index for February 2024
This post is licensed under CC BY 4.0 by the author.