방송대/파이썬 프로그래밍 기초

3강. 파이썬의 이해

monimoni 2025. 3. 4. 19:05

1. 파이썬의 탄생

  • 히도 판로쉼( Guido van Rossum )이 1991년 개발
    • 네덜란드 암스테르담 대학에서 컴퓨터 전공
    • 좋아하는 코미디 ‘Monty Python’s Flying Circus’를 따라 명명
    • 크리스마스 주 연구실이 잠겨 할일이 없어 만든 프로그래밍 언어
  • 분산 운영 체제( 아메바 )의 시스템 관리를 위한 쉘 스크립팅 언어로 개발
    • 쉘( Shell )이란?
      • 사용자가 입력한 명령어를 해석해서 운영체제 내부의 커널( Kernel )에 전달하는 명령 해석기 창
    • 스크립트란?
      • 명령어를 순차적으로 나열하여 운영체제가 어떤 순서로 동작해야 하는지 명령어를 집합으로 만들어 놓은 형태
  • 다중 프로그래밍 패러다임 채용
    • 정의 : 프로그램을 생성하는 접근 방식
      • 현실 세계를 어떠한 방식으로 모델링하는 것에 대한 관점
    • 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 지원
  • 다목적 활용
    • 응용 프로그램과 웹, 백 엔드 개발, 사물 인터넷 분야 뿐만 아니라 교육적인 목적으로도 활용

2. 파이썬의 발전 과정

  • 1991년 : ABC의 후속 프로그래밍 언어로 시작
  • 1999년 : DARPA에 ‘Computer Programming for Everybody’ 제안
    • DARPA는 미 국방성 연구 기관으로 이곳에서 최초의 인터넷이 탄생
  • 2000년 : 파이썬 2.0 출시
    • 커뮤니티를 통한 개발 체계 시작
  • 2008년 : 파이썬 3.0 출시
    • 비 하위 호환성을 갖는 메이저 업데이트

3. Pythonic( 파이썬다움 )

  • 독립적
  • 오픈 소스
    • 파이썬 관련 개선을 위한 제안( PEP )
      • 많은 개발자의 의견을 수용하고 토론하며 발전한 언어
      • 새로운 파이썬의 기능, 파이썬 프로세스, 환경에 대해 커뮤니티에 설계 문서나 정보를 제공
      • 파이썬 기능의 간결한 기술적 사양과 기능을 위한 근거들을 제공
      • 커뮤니티의 의견을 수집, 합의 도출, 반대 의견 청취
    • PEP 8( 스타일 가이드 ) 대표적
  • 인간적 & 직관적
    • 실행할 수 있는 의사 코드( 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