본문으로 바로가기







1일차



수업소개

실습준비 - 설치 및 연동

문법 - 데이터 타입 - 숫자

문법 - 데이터 타입 - 문자열

활용 - 홈페이지를 CGI로 구현

활용 - URL query string을 가져오는 방법

활용 - CGI 소개

문법 - 제어문 소개

문법 - Boolean

문법 - 조건문

활용 - 조건에 반응하는 앱 만들기

활용 - 파일 기능을 이용해 본문 구현

문법 - Python 공식 문서 보는 법

문법 - list

문법 - 컨테이너들

문법 - 반복문 for

활용 - 반복문을 이용해서 글목록 구현

활용 - 생성 구현 1 - form

활용 - 생성 구현 2 - 전송한 정보의 처리

활용 - 수정 구현

활용 - 삭제 구현

문법 - 함수

활용 - 함수를 글목록 기능을 정리 정돈하기

문법 - 모듈

활용 - 모듈로 함수 정리 정돈

활용 - 보안(XSS)

활용 - Pypi와 패키지 매니저

API

수업을 마치며

부록 - Sound of coding





#1. 수업소개 - 'Python'의 등장



 1990' 웹의 등장 (html)

>불만족발생<

· 수동으로 직접 html 코딩수정

· 수요자만 콘텐츠 수정 가능 

CGI (Common Gateway Interface) 등장 

'웹페이지 자동생성'

>결과<

· html 코딩 : wep application (거대한 공장)

· 콘텐츠 생산 : 공장장인 '우리'



Python [각주:1]



1. 개요[편집]

1991년에 발표된 인터프리터 방식[2]의 프로그래밍 언어공식 홈페이지 공식 깃헙 저장소

창시자는 귀도 반 로섬(Guido van Rossum). 네덜란드어 발음으로 '히도 판 로쉼'. 1989년 크리스마스 주에, 연구실이 닫혀있어서 심심한 김에 만들었다. 파이썬 서문과 마이크로소프트웨어와 한 인터뷰를 보면 알겠지만 사실이다. 기술자들은 심심할 때 항상 걸작이 나온다. 2000년에는 Python 2, 2008년에는 Python 3가 나왔다.

이름은 귀도가 즐겨 보던 영국의 6인조 코미디 그룹 몬티 파이선에서 따왔다고 한다. 지금 CPython 공식 GitHub 저장소를 보면 협업보조용 봇 이름들이 the-knights-who-say-ni나 bedevere 같이 죄다 몬티 파이선과 성배의 배역들이다. 많은 파이썬 교재들에서 변수 이름을 spam, eggs로 짓는 등 드립을 친다. 직접적 관계는 없지만 42도 필수요소. 물론 사전적 의미를 생각 안 하는 건 아니라서 심볼마크가  모양이다.

문법이 매우 쉬워서 초보자들이 처음 프로그래밍을 배울 때 추천되는 언어이다. 오죽하면 파이썬의 별명이 '실행할 수 있는 의사코드(Executable pseudocode)'일 정도. 실제로도 미국 공과 대학교에서 컴퓨터 프로그래밍 입문 수업으로 파이썬을 많이 사용하기도 한다. 동시에 실사용률과 생산성도 높은 강력한 언어.

2. 특징[편집]

2.1. 디자인 철학[편집]

Perl의 '하나 이상의 해결법이 존재한다' 에 대비되는 '가장 아름다운 하나의 답이 존재한다' 를 기본으로 하고 있다. 이것은 남이 작성한 코드를 내가 읽고 이해해야 하는 경우 아주 절실히 느낄 수 있다. 이 원칙 하에 다음과 같은 철학을 지니게 되었다. The Zen of Python의 첫 세 항목이다. The Zen of Python에는 총 20가지 항목이 존재한다.

  • 아름다운 것이 추한 것보다 낫다.(Beautiful is better than ugly)

  • 명시적인 것이 암시적인 것보다 낫다. (Explicit is better than implicit)

  • 간결한 것이 복잡한 것보다 낫다. (Simple is better than complex)


따라서 다른 언어들의 코딩 스타일은 각자의 취향에 맞게 발산 진화하는 반면, 파이썬은 위의 철학들을 만족 시키는 하나의 스타일로 수렴 진화하는 성향이 있다. 실제로 C 계열의 언어에서 중괄호의 위치에 대한 논쟁은 거의 종교적 논쟁에 가깝다. 현재 한국에서 가장 많이 쓰이는 방식은 C언어의 창시자 Kernighan과 Ritchie의 K&R 스타일이다. 그러나 Eric Allman의 방식을 고수하는 사람들도 제법 많다. 이외에도 중괄호 위치를 정하는 다른 방법들이 있으며 자세한 내용은 http://gyumee.egloos.com/1306012에서 확인 가능. 그리고 흔치는 않지만 몇몇 사람들은 그냥 들여쓰기고 뭐고 다 무시하고 쭉 작성해놓기도 한다. 이런 성향은 다른 언어에는 없는 파이썬스러움(pythonic)이라는 독특한 개념을 낳게 되었는데, 복잡하지 않으면서 의미가 명확하고, 심플한, 파이썬의 철학을 따르는 것들을 지칭하는 개념이다.

이런 철학 때문에 문법이 굉장히 엄격한 편이다. 예를 들자면, 다른 언어에서는 해도 되고 안 해도 되는 들여쓰기가 이 언어에서는 의무로, 들여쓰기 자체로 하나의 코드 블럭이 된다. 코드 블럭을 명시적으로 표시하지 않아도 돼서 비주얼 적으로는 굉장히 깔끔한 반면 자유도를 제약한다는 평도 있다. 근데 어차피 들여쓰기는 하게된다. 

코드에서 중괄호는 모아놓고 보면 굉장히 지저분할 뿐더러, 당장 처야하는 괄호가 2개나 되고, 괄호 하나라도 잘못 넣으면 블럭이 다 꼬여버리는 귀찮은 존재이지만(begin 과 end 혹은 end. 으로 구분해야 하는 파스칼에서 보면 중괄호만 해도 엄청나게 간결해 보이지만), 대신 블럭들을 이리저리 만질때는 매우 편리한 존재이다. 특히 C 코드를 종이에 출력해보면 중괄호 있고 없고의 가독성 차이가 의외로 크다. 파이썬에서는 이 중괄호를 들여쓰기로 대체하는데, 이게 블럭의 시작과 끝 지점을 찾는 부분에서 꽤 불편하다. 대신 괄호를 2개나 일일이 다 넣고, 잘못 넣지 않게 점검도 해줘야하는 수고가 없다는 엄청난 장점이 있다. 

1.
2.
3.
4.
5.
def factorial(x):
    if x == 0:
        return 1
    else:
        return x * factorial(x - 1)

이 들여쓰기 의무 규칙 때문에 소스 코드 들여쓰기에 탭(Tab) 문자를 사용하지 않을 것을 매우 강력히 요구한다.  문자는 사용자나 시스템의 설정에 따라 서로 다른 폭의 공백이 생긴다. 문제는 파이썬 인터프리터가 탭 문자 하나를 공백 1문자로 처리한다는 것이다. 탭 문자로 들여쓰기를 처리하면 자신과 다른 탭 설정을 가진 에디터에서 코드를 열어 볼 경우 코드 들여쓰기가 높은 확률로 망가져 버리고, 그걸 교정해보겠다고 들여쓰기에 공백 문자를 혼용하는 순간 해당 소스 코드는 사람이 고칠 수 없는 형태로(시각적으로는 블록이 맞지만 파이썬 인터프리터는 다른 블록으로 인식) 망가져 버린다. PEP-8에 명시된 공식 코딩 가이드에서는 스페이스 바로 공백 4문자를 넣기를 권장하고 있다. 물론 이렇게 스페이스 바를 네 번이나 치는 귀찮은 행위를 프로그래머들이 가만 놔둘 리가 없다. PyCharm, VS Code 등 Python 개발자들이 애용하는 최신 에디터는 Tab을 누르면 공백 4개로 자동 변환되어 입력되는 기능이 지원되므로 이들 에디터를 이용하면 공백 4번을 번거롭게 칠 필요가 없어진다.






  1. https://namu.wiki/w/Python [본문으로]