방송통신대학교 파이썬프로그래밍기초 강의 정리 자료입니다.
1. 파이썬의 개요
파이썬의 탄생
: 네덜란드 암스테르담 대학에서 컴퓨터를 전공한 히도 판로쉼(Guido van Rossum / 네덜란드 출신)이 1991년 개발하였고, 좋아하는 코미디 ' Monty Python's Flying Circus'를 따라 명명하였으며, 크리스마스 주 연구실이 잠겨 할일이 없어 만든 프로그래밍 언어임. 이미 10년 전부터 파이썬의 빅 픽쳐를 그리고 있었던 것으로 추정되며, 분산 운영 체제(아메바)의 시스템 관리를 위한 쉘(Shell, 사용자가 입력한 명령어를 해석해서 운영체제 내부의 커널에 전달하는 명령 해석기 창) 스크립팅(스크립트: 명령어를 순차적으로 나열해서 운영체제가 어떤 순서로 동작해야 하는지 명령어를 집합으로 만들어놓은 형태) 언어로 개발함.
다중 프로그래밍 패러다임(프로그램을 생성하는 접근 방식으로)을 채용하였으며, 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍을 지원함. 응용 프로그램과 웹, 백 엔드 개발, 사물 인터넷 분야 뿐만 아니라 교육적인 목적으로도 활용가능하는 등 다목적 활용이 가능함.
파이썬의 발전과정
: 1991년 ABC의 후속 프로그래밍 언어로 시작하였으며, 1999년 DARPA(미 국방성 연구기관으로 최초의 인터넷인 알파넷을 개발함.)에 'Computer Programming for Everybody'를 제안함. 2000년 파이썬 2.0이 출시됨에 따라 커뮤니티를 통한 개발 체계가 시작되었음. 2008년 파이썬 3.0이 출시되면서 비 하위 호환성(버전이 낮은 파이썬에서는 호환되지 않음.)을 갖는 메이저 업데이트가 이루어짐. 버전에서 정수부가 바뀌는 것(2.x → 3.x)을 메이저 업데이트, 소수부가 바뀌는 것(3.x → 3.y)을 마이너 업데이트로 보면 됨. python은 데이터 과학분야, 인공지능 분야에서 굉장히 주로 쓰이며, 계속해서 그 선호도와 사용률이 올라가고 있음.
Pythonic
: python다움이라는 뜻으로 '독립적'(특정 조직에 귀속되지 않으며, windows, unix등과 같은 특정 플랫폼에 종속되지 않음.), '오픈소스'(python 컴파일러, 인터프리터는 Github에 모두 공개되어있음.), '인간적'(사람이 쓰는 자연어와 굉장히 유사함.), '신속성'(사람의 언어와 유사하여 빠르게 작성이 가능), '직관적'(이해하기 쉬움)이라는 특성을 지칭함.
오픈소스
: 파이썬 관련 개선을 위한 제안(PEP)로, python은 많은 개발자의 의견을 수용하고 토론하며 발전한 언어로 새로운 파이썬의 기능, 프로세스, 환경에 대해 커뮤니티에 설계 문서나 정보를 제공함. 파이썬 기능의 간결한 기술적 사양과 기능을 위한 근거들을 제공하고, 커뮤니티의 의견을 수집, 합의 도출, 반대의견을 청취함. PEP 8(스타일 가이드)가 대표적임.
인간적&직관적
: 실행할 수 있는 의사코드(Executable pseudocode) 수준의 문법을 지녀 C, java보다 자연어에 가까워 쉽게 사용할 수 있음.
생산성&신속성
: 동일한 기능을 훨씬 적은 라인으로도 작성이 가능함.
대형 개발자 커뮤니티
: 문제가 발생할 경우 개발자 커뮤니티를 이용해 보다 쉽게 해결 방법을 찾을 수 있다는 장점이 있음.
라이브러리와 프레임워크
: 이미 만들어진 라이브러리와 프레임워크를 활용하여 빠르게 작업을 진행할 수 있음.
파이썬의 단점
: C나 java 등으로 작성된 프로그램보다 속도가 느리고, 쉘 스크립트 언어 용으로 개발되어 모바일 앱 등 응용 애플리케이션 개발이 불가능하기에 완전한 애플리케이션 단독 개발이 불가능함.
2. 파이썬 프로그램의 실행
파이썬 실행 환경
: 플랫폼에 독립적(원도우, 리눅스, 유닉스, 맥 OS 등 다양한 운영체제에서 별도의 컴파일 없이 실행 가능함.)이며, 인터프리터식(CPython, PyPy, Cython, Jython 등 다양한 인터프리터 환경이 사용 가능함.) 객체지향적(프로그램을 객체로 모델링), 동적 타이핑(dynamically typed / 변수의 자료형을 지정하지 않아도 자동으로 자료형을 관리해줌) 대화형(작성한 코드에 대한 수행 결과를 바로 확인하고 디버깅하면서 코드 작성 가능) 언어임.
CPython
: C 언어로 개발된 소스 대 소스 컴파일러이자 파이썬 인터프리터로 C 구현 라이브러리와의 연동을 통한 확장에 최적화되어있음.컴파일러는 셀프 호스팅 컴파일러(부트스트래핑 단계를 통해 자신의 언어로 작성한 컴파일러)와 소스 대 소스 컴파일러(타 언어로 작성한 컴파일러)가 있음. 오픈 소스로 커뮤니티의 기여로 지속적으로 발전해옴.
파이썬 프로그램 실행과정
: 파이썬 애플리케이션은 소스 코드 형태로 배포되고, Cpython이 컴파일 후 바이트코드.pyc파일(다른 운영체제에서 추가 컴파일 작작업없이 구동 가능함.)을 생성함. 해당 바이트 코드를 가지고 파이썬 가상머신(PVM)이 기계어로 변경하여 한 라인씩 실행해줌. 이후 변경없이 재실행 시 컴파일 과정을 거치지 않고 바이트코드로 빠르게 실행함.
3. 파이썬 프로그래밍 환경
IDLE
: 기본으로 포함된 파이썬의 통합 개발 환경으로 파이썬과 Tkinter GUI 툴킷으로 개발됨. 구문 강조, 자동 완성, 스마트 들여쓰기 등이 포함된 단순한 IDE를 지향하고, stepping, breakpoint, call stack을 확인할 수 있는 통합 디버거 환경을 제공함. 파이썬 공식 홈페이지에서 다운로드가 가능함.
주피터 노트북
: 오픈소스 기반의 웹 플랫폼으로 파이썬을 비롯한 40여개의 프로그래밍 언어를 지원하고, 전통적인 소스코드-컴파일-실행 방식에서 벗어나 웹 기반 대화형 개발 및 실행환경을 가짐. 문서화하여 다른 사람과 공유하기가 편리하고 마크다운(Markdown)을 이용하여 코드 관련 타이틀, 설명 등 작성이 가능함.
구글 Colab
: 2017년 과학 연구와 교육을 목적으로 개발되었으며, 클라우드 기반 주피터 노트북 개발 환경임. 주피터 노트북 + 구글 드라이브를 결합한 서비스이고, 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스를 활용가능함.
'방송통신대학교 > 3학년 1학기' 카테고리의 다른 글
[파이썬프로그래밍기초] 2강. 컴퓨터의 구성 (0) | 2025.04.14 |
---|---|
[파이썬프로그래밍기초] 1강. 컴퓨터의 이해 (0) | 2025.04.04 |
[인공지능] 1강. 인공지능의 개요 (1) | 2025.04.01 |
[알고리즘] 2강. 알고리즘 소개 (2) (0) | 2025.04.01 |
[알고리즘] 1강. 알고리즘 소개 (1) (0) | 2025.03.31 |
댓글