[Lecture/Python] 03강 - 파이썬의 이해

김찬미·2025년 5월 1일

[Lecture] Python

목록 보기
3/13

3강 요약: 파이썬의 이해

✅ 파이썬의 개요

파이썬 Python

  • 히도 판로쉼에 의해 1991년 개발
  • 분산 운영 체제(아메바)의 시스템 관리를 위한 쉘 스크립팅 언어로 개발
  • 다중 프로그래밍 패러다임* 채용

💡 다중 프로그래밍 패러다임

  • 하나 이상의 프로그래밍 패러다임을 지원하는 프로그래밍 언어
  • 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 지원
  • 다목적 활용 → 응용 프로그램과 웹, 백엔드 개발, 사물 인터넷, 교육 등에서 활용

파이썬의 발전 과정

  • 1991년 ABC의 후속 프로그래밍 언어로 시작
  • 1999년 DARRAComputer Programming for Everybody 제안
  • 2000년 파이썬 2.0 출시 → 커뮤니티를 통한 개발 체계 시작
  • 2008년 파이썬 3.0 출시 → 비 하위 호환성을 갖는 메이저 업데이트

Pythonic

  • Pythonic: 파이썬다운, 파이썬을 사용하여 지향해야 할 방식
  • 독립적, 오픈소스, 인간적, 신속성, 직관적

1) 오픈소스

파이썬 관련 개선을 위한 제안(PEP)
→ 많은 개발자의 의견을 수용하고 토론하며 발전한 언어
→ 새로운 파이썬의 기능, 파이썬 프로세스, 환경에 대해 커뮤니티에서 정보 제공
→ 커뮤니티의 의견을 수집, 합의 도출, 반대의견 청취

💡 PEP란?
PEP(Python Enhance Proposal)은 파이썬 코드 작성법에 대한 가이드라인이다.
PEP 8이 대표적인 스타일 가이드이다.


2) 인간적 & 직관적

실행할 수 있는 의사 코드(Executable pseudocode) 수준의 문법

if 3 in [1,3,5,7]: print("3이 들어있습니다")

리스트 [1,2,3,4]에 3이 포함되어 있으면 "3이 들어있습니다"를 출력하시오.

3) 생산성 & 지속성

  • 타 언어에 비해 간결한 코드 작성 방식으로 생산성↑
  • 누구나 작성할 수 있는 언어로, 지속성↑


4) 대형 개발자 커뮤니티


5) 라이브러리와 프레임워크


파이썬의 단점

  • CJava 등으로 작성된 프로그램보다 속도↓
  • 완전한 애플리케이션 단독 개발 불가능
    → 쉘 스크립트 언어 용으로 개발 → 모바일 앱 등 응용 애플리케이션 개발 불가능
    Rust 또는 Go 고려해야 함

✅ 파이썬 프로그램의 실행

파이썬 실행 환경

  • 플랫폼에 독립적
    → 다양한 운영체제(플랫폼)에서 별도의 컴파일 없이 실행 가능
    → 다양한 인터프리터 환경 사용 가능

  • 인터프리터식 객체지향적
    → 프로그램을 객체로 모델링

  • 동적 타이핑(dynamically typed) 대화형 언어
    → 변수의 자료형을 지정하지 않음
    → 작성한 코드에 대한 수행 결과를 바로 확인하고 디버깅하며 코드 작성 가능

💡 동적 타이핑이란?

  • 코드를 작성하는 데 있어서 컴퓨터적 구조를 생략하는 것
  • ex) 변수의 데이터 타입을 명시하지 않아도 컴퓨터가 알아서 해석한다.
  • 때문에 코드가 간결하지만, 컴퓨터가 직접 해석해야 하므로 실행속도↓

CPython

  • C 언어로 개발된 파이썬 인터프리터 (소스 대 소스 컴파일러)
    C 구현 라이브러리와의 연동을 통한 확장에 최적
  • 오픈소스로 커뮤니티의 기여로 지속적 발전

💡 컴파일러의 유형
① 셀프 호스팅 컴파일러: 부트스트래핑 단계를 통해 자신의 언어로 작성한 컴파일러
② 소스 대 소스 컴파일러: 타 언어로 작성한 컴파일러


파이썬 프로그램 실행과정

  • 파이썬 애플리케이션은 소스 코드 형태로 배포
    CPython이 컴파일 후 바이트코드 .pyc 파일 생성
    파이썬 가상머신바이트코드를 한 라인씩 실행
    → 변경없이 재실행 시 바이트코드로 빠르게 실행


✅ 파이썬 프로그래밍 환경

IDLE

기본으로 포함된 파이썬의 통합 개발 환경
→ 파이썬과 Tkinter GUI 툴킷으로 개발
→ 구문 강조, 자동 완성, 스마트 들여쓰기 등이 포함된 단순한 IDE 지향
stepping, breakpoint, call stack을 확인 가능한 통합 디버거 환경 제공

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


주피터 노트북

오픈소스 기반의 웹 플랫폼
→ 파이썬을 비롯한 40여개의 프로그래밍 언어 지원
→ 전통적인 소스코드-컴파일-실행 방식❌ 웹 기반 대화형 개발 및 실행 환경⭕
→ 문서화하여 다른 사람과 공유하기가 편리
마크다운 방식으로 코드 관련 타이틀, 설명 등 작성 가능


구글 Colab

  • 2017년 과학 연구와 교육을 목적으로 개발
  • 클라우드 기반 주피터 노트북 개발 환경
    주피터 노트북 + 구글 드라이브
    → 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스 활용 가능

profile
백엔드 지망 학부생

0개의 댓글