방송대/파이썬 프로그래밍 기초
3강. 파이썬의 이해
monimoni
2025. 3. 4. 19:05
1. 파이썬의 탄생
- 히도 판로쉼( Guido van Rossum )이 1991년 개발
- 네덜란드 암스테르담 대학에서 컴퓨터 전공
- 좋아하는 코미디 ‘Monty Python’s Flying Circus’를 따라 명명
- 크리스마스 주 연구실이 잠겨 할일이 없어 만든 프로그래밍 언어
- 분산 운영 체제( 아메바 )의 시스템 관리를 위한 쉘 스크립팅 언어로 개발
- 쉘( Shell )이란?
- 사용자가 입력한 명령어를 해석해서 운영체제 내부의 커널( Kernel )에 전달하는 명령 해석기 창
- 스크립트란?
- 명령어를 순차적으로 나열하여 운영체제가 어떤 순서로 동작해야 하는지 명령어를 집합으로 만들어 놓은 형태
- 쉘( Shell )이란?
- 다중 프로그래밍 패러다임 채용
- 정의 : 프로그램을 생성하는 접근 방식
- 현실 세계를 어떠한 방식으로 모델링하는 것에 대한 관점
- 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 지원
- 정의 : 프로그램을 생성하는 접근 방식
- 다목적 활용
- 응용 프로그램과 웹, 백 엔드 개발, 사물 인터넷 분야 뿐만 아니라 교육적인 목적으로도 활용
2. 파이썬의 발전 과정
- 1991년 : ABC의 후속 프로그래밍 언어로 시작
- 1999년 : DARPA에 ‘Computer Programming for Everybody’ 제안
- DARPA는 미 국방성 연구 기관으로 이곳에서 최초의 인터넷이 탄생
- 2000년 : 파이썬 2.0 출시
- 커뮤니티를 통한 개발 체계 시작
- 2008년 : 파이썬 3.0 출시
- 비 하위 호환성을 갖는 메이저 업데이트
3. Pythonic( 파이썬다움 )
- 독립적
- 오픈 소스
- 파이썬 관련 개선을 위한 제안( PEP )
- 많은 개발자의 의견을 수용하고 토론하며 발전한 언어
- 새로운 파이썬의 기능, 파이썬 프로세스, 환경에 대해 커뮤니티에 설계 문서나 정보를 제공
- 파이썬 기능의 간결한 기술적 사양과 기능을 위한 근거들을 제공
- 커뮤니티의 의견을 수집, 합의 도출, 반대 의견 청취
- PEP 8( 스타일 가이드 ) 대표적
- 파이썬 관련 개선을 위한 제안( PEP )
- 인간적 & 직관적
- 실행할 수 있는 의사 코드( Executable Pseudocode ) 수준의 문법
- 자연어에 가까운 문법 채용
- 생산성 & 신속성
- 직관적
- 대형 개발자 커뮤니티
- 라이브러리와 프레임워크
- ex ) NumPy, Jupyter, IPython, Pandas. Pythorch 등
4. 파이썬의 단점
- C나 자바 등으로 작성된 프로그램보다 느린 속도
- 완전한 애플리케이션 단독 개발이 불가능
- 쉘 스크립트 언어 용으로 개발
- 모바일 앱 등 응용 애플리케이션 개발 불가능
- Rust 또는 Go 고려
5. 파이썬 실행 환경
- 플랫폼에 독립적이며 인터프리터식 객체지향적, 동적 타이핑( Dynamically Typed ) 대화형 언어
- 윈도우, 리눅스, 유닉스, 맥OS 등 다양한 운영체제( 플랫폼 )에서 별도의 컴파일 없이 실행 가능
- CPython, PyPy, Cython, Jython 등 다양한 인터프리터 환경 사용 가능
- 프로그램을 객체로 모델링
- 변수의 자료형을 지정하지 않음 ( 동적 타이핑 )
- 작성한 코드에 대한 수행 결과를 바로 확인하고 디버깅하면서 코드 작성 가능
6. CPython
- C 언어로 개발된 파이썬 인터프리터
- C 구현 라이브러리와의 연동을 통한 확장에 최적
- 오픈소스로 커뮤니티의 기여로 지속적 발전
7. 컴파일러의 유형
- 셀프 호스팅 컴파일러 : 부트스트래핑 단계를 통해 자신의 언어로 작성한 컴파일러
- 소스 대 소스 컴파일러 : 타 언어로 작성한 컴파일러
8. 파이썬 프로그램 실행과정
- 파이썬 애플리케이션은 소스 코드 형태로 배포
- CPython이 컴파일 후 바이트 코드 .pyc 파일 생성
- 파이썬 가상머신은 바이트 코드를 한 라인씩 실행
- 변경 없이 재실행 시 바이트 코드로 빠르게 실행
9. IDLE ( 아이들 )
- 기본으로 포함된 파이썬의 통합 개발 환경
- 파이썬과 Tkinter GUI 툴킷으로 개발
- 구문 강조, 자동 완성, 스마트 들여쓰기 등이 포함된 단순한 IDE 지향
- stepping, breakpoint, call stack을 확인할 수 있는 통합 디버거 환경 제공
- 파이썬 공식 홈페이지에서 다운로드 가능
10. 주피터 노트북
- 오픈소스 기반의 웹 플랫폼
- 파이썬을 비롯한 40여개의 프로그래밍 언어 지원
- 전통적인 소스코드 - 컴파일 - 실행 방식에서 벗어나 웹 기반 대화형 개발 및 실행 환경
- 인터프리터로 IPython을 사용
- 문서화하여 다른 사람과 공유하기가 편리
- 마크다운( Markdown )을 이용하여 코드 관련 타이틀, 설명 등 작성 가능
11. 구글 Colab
- 2017년 과학 연구와 교육을 목적으로 개발
- 클라우드 기반 주피터 노트북 개발 환경
- 주피터 노트북 + 구글 드라이브를 결합한 서비스
- 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스 활용 가능
- 초반에는 구글의 클라우드 서비스 GCP로부터 자원을 할당받는데 시간이 소요됨
-
- 코드 버튼을 통해 블록으로 만들어서 중간 중간 실행결과를 확인 가능
-
- 텍스트 버튼을 통해 코드에 대한 주석을 추가 가능
- {X} 변수 탭을 통해 사용하고 있는 변수의 타입을 확인 가능
728x90