- 프롤로그
- 개발 첫걸음
- 파이썬 기초
- 파이썬 중급
- 파이썬 고급
- 내장 함수 톺아보기
- 예외와 에러 – 예상치 못한 상황에 대응하기 (v0.1)
- 변수의 범위 – 이름 검색의 범위
- 파이썬 심화
- 시퀀스와 반복자 – 반복과 순회를 자유자재로 다루기
- 데코레이터 – 함수의 기능을 강화하기
- 프로퍼티
- 제너레이터
- async와 await
- 객체로서의 클래스 – 클래스를 동적으로 정의하기
- 파이썬 프로젝트 실습
- 원카드 게임 만들기 (1)
- 원카드 게임 만들기 (2)
- 원카드 게임 만들기 (3) (작성중)
- 턴제 자동 전투 게임 만들기 (작성중)
- 실전 (파이썬 외적인 것들)
- 정규표현식 – 문자열을 검색하고 치환하기 (작성중)
- 유니코드 – 컴퓨터에서 문자를 표기하는 방법
- html, css, 인터넷 – 자동화 첫 걸음 내딛기
- 네트워크 – 인터넷으로 통신하는 방법
- 문서 – 문맥을 읽어보기
여는 글
안녕하세요, 반갑습니다. 세상의 수 많은 파이썬 강좌가 있지만 이 강좌를 선택하고 이 블로그를 방문해주셔서 감사합니다.
이 강좌를 작성하게 된 계기는 다음과 같습니다.
- 제가 실제로 프로그래밍에 경험이 없는 학생을 대상으로 하였던 파이썬 과외 경험을 그냥 흘러가게 두고 싶지 않았습니다. 혼자 파이썬을 공부했던 것과 남에게 가르치는 것은 생각보다 간극이 크다는 것을 깨달았습니다. 시간이 지나면 그 간극도 점점 잊혀가니, 기록해두고 싶은 마음이 있습니다.
- 파이썬을 본격적인 실무로 해본 적도 없지만 프로그래밍을 C++로 처음 접했던 저에게 나름의 프로그래밍 언어에 대한 통찰과 더불어 초보의 입장에서 자료를 더 잘 정리할 수 있을 것 같았습니다.
- 앞으로 또 이런 일이 있을지는 모르겠지만, 제가 다른 누군가를 가르칠 일이 있을 때 수업자료로 적극 이용할 예정입니다.
강좌 구성 안내
강좌는 글 뿐만 아니라 한 눈에 파악하기 쉬운 이미지 및 흐름도가 많이 사용됩니다. 특히 웹의 특성을 최대한 살려, 인터랙션 가능한 요소를 최대한 활용하고자 합니다. 예제는 최대한 복사 붙여넣기 하기 쉽도록 만들 예정이며, 예제 만으로도 프로그램이 돌아갈 수 있도록 구성할 것입니다. 목차 네비게이션도 만들어서 편하게 화면을 전환할 수 있도록 합니다. 매 강좌의 제일 앞부분과 마지막 부분에는 전체 강좌의 목차를 넣었습니다. 마음 같아서는 실시간 파이썬 인터프리터 실행기도 넣어보고 싶으나, 이 사이트는 단순히 웹호스팅 위에서 돌아가는 점도 있고 또 다른 웹 인터프리터를 이용하자니 애로사항이 이만저만이 아니기에 그 구현은 조금 더 미래로 미루도록 하겠습니다…
동영상은 하나도 없을 텐데, 개인적으로 인터넷 강의를 선호하지 않는 것도 있지만 동영상은 매체의 특성상 리소스가 많이 할애되고, 보고 싶은 부분을 그때그때 찾아보기가 힘들기 때문입니다.
암기가 필요한 부분은 중간 정리와 강좌의 말미에 연습 문제를 통하여 익히실 수 있습니다. 연습 문제의 정답은 따로 없고 해당 강좌에서 전부 찾을 수 있도록 구성했습니다. 그리고 프로그래밍 문제를 통해 직접 코드를 작성하거나 해석해보는 활동을 가지도록 했습니다. 프로그래밍 문제는 정답을 제시하긴 하지만, 유일한 정답이라고 단정지을 필요는 없습니다. 개념 이해에 도움이 된다면, 파이썬 뿐만 아니라 잡다구리한 이야기를 많이 풀 것이고, 강좌의 범위를 한참 벗어나는 이야기들은 바깥 연결링크를 이용해 제공됩니다. 이 링크는 공식 문서일 수도 있고, 다른 사람이 쓴 블로그 포스팅일 수도 있습니다.
강좌마다 번호는 매겨져 있지 않습니다. 크게 두 가지 이유가 있습니다. 새로운 과정이 중간에 얼마든지 삽입될 수 있다는 것과, 고급 단계로 갈 수록 강좌의 순서가 크게 중요하지 않다는 점입니다. 초급 단계에서는 일단 순서대로 강좌가 읽힌다고 가정하고 용어를 선택했기 때문에, 순서대로 강좌를 보는 것을 추천드립니다.
파이썬 버전은 현재 기준 최신 버전 (3.8)을 사용하고 있습니다. 최신 버전을 사용하는 이유는 대개 편리한 기능이 최신 버전에 더 많고 강력하기 때문입니다. 강좌의 여러 글들이 작성된지 오래되어 트렌드를 반영할 수 없을 수 있습니다. 2~3년만 지나더라도 그때 가장 좋았던 방법이, 이미 낡은 기술이 되어버렸을 수 있습니다. 필자가 충분히 부지런하다면 그러한 트렌드를 최대한 반영하도록 하겠습니다.
아직 작성하지 않은 강좌는 목차의 링크가 없습니다. 계속해서 업데이트 할 예정입니다. 강좌에 대한 문의사항이나 기타 의견은 메일로 부탁드리겠습니다. 언제든 자유롭게 이야기해주세요. (eszqsc112@naver.com)
대상 독자
이 강좌의 1차적인 독자는 프로그래밍과 전혀 접점이 없는 비전공자, 학생, 직장인 입니다. 최종 목표는 스스로 구상한 프로그램을 직접 만들어보는 것입니다. 즉, 파이썬 문법을 익히는 것 뿐만 아니라 특정 모듈의 문서를 찾고 읽고 해석하는 능력까지 키울 예정입니다. 물고기를 잡아드리는 게 아닌 낚시법을 가르치는 것이지요. 프로그래밍적 용어나 개념, 알고리즘 등은 어디까지나 앞서 말한 문법 및 모듈을 능수능란하게 사용하기 위한 최종 목표 내에서 학습할 것입니다. 기술적으로 심화적인 내용을 원하는 분들은 이 강좌가 적합하지 않습니다.
이 강좌는 프로그래밍 그 자체에 관심이 큰 건 아니지만 꼭 만들어보고 싶은 서비스나 앱을 구축하고 싶은 분들에게도 좋습니다. 프로그램을 만드는 데 꼭 필요한 개념을 우선적으로 설명하고자 하였고, 앞서 말했듯이 좀 더 기술적인 이야기들은 줄이려고 노력했습니다.
용어에 대해
코딩과 관련하여서 모르는 문제들은 인터넷이 훌륭한 선생님이 될 수 있습니다. 하지만 검색을 할 때, 비슷한 뜻의 용어지만 평소 사용하던 것과 달라 혼동이 오는 경우가 있습니다. 그래서 강좌에서는 용어를 최대한 다양하게 설명하고자 합니다. 영어와 함께 설명하는 이유도 마찬가지입니다. 가끔 영어로 적힌 문서를 보아야 할 수도 있고, 대한민국 사람이 쓴 글이라도 특별한 번역을 거치지 않고 음차하여 사용하는 경우도 있습니다.
비슷한 용어라도 명확한 정의는 있기 마련이지만, 강좌에서는 불필요하다 생각되면 용어의 차이는 크게 두지 않을 것입니다. 초보자들은 프로그래밍이 어느정도 익숙해진 다음에 정확한 뜻을 찾아봐도 늦지 않습니다.
초급 단계의 강좌에서 고급 단계의 개념이 나왔을 때에는 어려운 단어를 직접적으로 쓰는 것보다 한층 모호한 말로 표현하고자 했습니다. 예를 들어 객체의 메소드나 속성
을 그 개념이 나오기 전인 강좌에서는 어떠어떠한 기능
이라고 두루뭉실하게 표현했습니다.
- 프롤로그
- 개발 첫걸음
- 파이썬 기초
- 파이썬 중급
- 파이썬 고급
- 내장 함수 톺아보기
- 예외와 에러 – 예상치 못한 상황에 대응하기 (v0.1)
- 변수의 범위 – 이름 검색의 범위
- 파이썬 심화
- 시퀀스와 반복자 – 반복과 순회를 자유자재로 다루기
- 데코레이터 – 함수의 기능을 강화하기
- 프로퍼티
- 제너레이터
- async와 await
- 객체로서의 클래스 – 클래스를 동적으로 정의하기
- 파이썬 프로젝트 실습
- 원카드 게임 만들기 (1)
- 원카드 게임 만들기 (2)
- 원카드 게임 만들기 (3) (작성중)
- 턴제 자동 전투 게임 만들기 (작성중)
- 실전 (파이썬 외적인 것들)
- 정규표현식 – 문자열을 검색하고 치환하기 (작성중)
- 유니코드 – 컴퓨터에서 문자를 표기하는 방법
- html, css, 인터넷 – 자동화 첫 걸음 내딛기
- 네트워크 – 인터넷으로 통신하는 방법
- 문서 – 문맥을 읽어보기