이 저장소는 파이썬 강좌 자료들을 보관하는 깃허브 저장소입니다. 영훈고등학교 프로그래밍 스터디 소동아리에서 사용하기 위한 목적으로 제작되었으나, 공익을 위해 오픈소스로 공개합니다.
강의는 웹사이트에서도 볼 수 있습니다.
강좌는 아래의 목차로 이루어져 있습니다.
프로그래밍 언어의 가장 기본적인 부분들인 설치부터 함수까지 배워보고자 합니다.
- 파이썬 설치
- 변수와 기본 자료형
- 기본 입출력 함수
- 사칙 연산자
- 형변환 (Casting) 과 묶음 자료형
- 흐름 제어문 1 : if ~ elif ~ else 와 조건문
- 흐름 제어문 2 : for, while 반복문
- 함수
기본 강좌에서 배운 내용을 복습하며, 간단한 프로그램을 만들어봅시다.
- 파일 입출력
- 문자열(str) 을 다룰 때 유용한 메소드들
- in 키워드
- 타입이란 무엇인가? & 타입 힌트
- 객체지향 프로그래밍은 어떤 패러다임인가? & 지금까지 써오던 방식과 비교해보기
- 클래스와 객체
- 클래스가 가지는 특성 (캡슐화, 상속, ...)
- 클래스 상속
- 클래스 상속 과정에서 일어날 수 있는 문제점 (다중상속, 다이아몬드 상속, ...)
- 파이썬의 클래스와 매직 메소드
객체지향 패러다임에 대해 공부한 내용들을 복습하고자 진행하는 프로젝트입니다.
- 간단한 텍스트 RPG 만들기
- del 키워드
- with 키워드
- iterator와 generator
- list , dict, set, generator comprehension
- 파이썬 내장 라이브러리 1 - random, time, datetime
- 파이썬 내장 라이브러리 2 - logging
- HTTP 요청 라이브러리 1 - urllib, requests
- HTML 파싱 라이브러리 - BeautifulSoup4
- XML 파싱 라이브러리 - xml
- 백엔드 서버 라이브러리 - flask, django
고급 3강에서 배웠던 라이브러리들을 활용한 프로젝트를 진행합니다.
네이버, 구글, 카카오 등 공개되어있는 api 자신이 선택해서 해당 api를 활용해보는 프로젝트
- 함수형 패러다임은 무엇인가?
- 1급 객체로써의 함수, 그리고 고계함수
- 클로져(Closure) 와 데코레이터(Decorator)
( 고민중 )
- 동시성과 병렬성, 그리고 이를 위한 모듈 threading, multiprocessing, asyncio
- Threading - 스레드(Thread)의 개념과 스레드의 특징, 그리고 그로 인해 나타나는 문제들과 해결법
- Multiprocessing - 프로세스(Process)의 개념 과 특징, 스레드와의 비교
- Asynchronous - 비동기 프로그래밍의 개념과 특징
- Futures - 고수준 병렬처리 API concurrent.futures
고급 5강에서 공부한 동시성과 병렬성을 활용해, 오래걸리는 작업의 소요시간을 단축해보자.
( 고민중 )
- 파이썬 인터프리터, CPython
- 파이썬의 고질적인 문제들 - GIL
- 파이썬의 다른 구현체들 : Jython, Cython, IronPython, PyPy
- C언어로 구현된 CPython : ctypes 모듈
- type의 정체, 메타클래스
- 모든 클래스의 최상위 클래스는 무엇일까?
- type을 활용해 동적으로 클래스 정의하기
- type을 상속하는 새 메타클래스 만들기
( 고민중 )