01강 수업소개

 

 

 

html페이지를 하나하나 수동으로 만드는 것에 지쳤다.

그러자 몇 몇개발자들은 귀찮고 반복되는 html작업을 기계에게 시키고 싶다는 욕심을 품게된다.

CGI(Common Gateway Interface)기술은 이런 맥락에서 출현한 기능이다.

cgi를 이용하면 python,php,jsp,asp,ruby,java,javascript와 같은 기술을 이용해서
웹페이지를 자동으로 생성하는 웹어플리케이션을 만들 수 있게 된다.

우리의 관심사는 

web server와 python를 cgi로 연동하는 것이다.

 

 

02강 수업예고

 

 

 

 

웹서버가 처리할수 없는 요청을

 

웹서버에게 확장자가 py인 파일은 자신이 처리할수 없으니까 파이썬에게 그것을 처리하도록 위임한다.

파이썬과 같은 기술을 이용하면 사용자는 웹페이지에서 생성버튼을 눌러 우리가 사용자의 전송한 정보를 받아

사용자가 직접 파일을 수정하게 하지않고도 컨텐츠를 만들 수 있게된다.

 

 

3.3.2강 실습환경 준비-python 설치 및 실행(MacOS)

 

 

 

GUI(graphical user interface) vs CLI (command line interface) 명령을 입력해서 컴퓨터를 제어하는 방법

 

터미널- cli방식으로 맥을 제어하는 방식

 

Mac 파인더- gui로 터미널을 제어하는 방식

 

파인더에서 documents에다가 실습파일을 위치시키기 위해선 마우스를 클릭해서 documents로 디렉토리를 옮긴다.

 

 

 

터미널은

 

 

Cd ~/Documents

(이러면 documents로 디렉토리를 옮긴 것이다.)

 

거기서 파일 리스트를 보고 싶으면
ls를 치면 된다.

 

디렉토리를 만들고 싶다면(Make directory)

mkdir web2-python 

 

그 다음 그 디렉토리로 이동

Cd web2-python

 

이제 내가 내리는 명령은 이 디렉토리에 있는 파일들을 대상으로 해서 하달되는 것이다.

~/documents/web2-python

 

여기서 파이썬을 실행하는 방법이 몇가지가 있다.

첫번째는 Python3 라고 치는것이다 (그냥 python이라고 치면 파이썬2.0이 실행됨)

 

 

그 다음 파이썬 문법을 치면 그 결과를 알려준다.

 

>>>3+4+5

12

>>>12/3

4.0

 

이렇게 우리와 파이썬이 파이썬이라는 문법에 맞게 대화를 하는걸 인터렉티프(상호작용)쉘이라고 부른다 

 

exit() 파이썬을 나간다.

 

하나하나 명령을 필요할때마다 하다보면 복잡한 일들이 한개가 아니라 많으면 실수하기 쉽다.

이런 난관은 극복하기 위해 파일에다가 기록하려고 할 것이다.

 

Helloworld.py 라는 파일을 만들자

a=3+4+5

b=a/3

print(b)

 

이것도 파이썬 문법이다.

인터렉티브 쉘이 아니기 때문에 답을 즉각즉각 알려주지 않기 때문에 문법이 조금 다르다.

 

Cd /Applications/mampstack-8.0.5-0/apache2/htdocs

/만 쓰면 최상위 디렉토리로 이동한다는 뜻이다.

 

Ls를 치면 Htdocs안 파일에 helloworld.py가 있는걸 볼 수 있다.

여기서 파이썬을 이용해서 파이썬 파일을 바로 실행시키는 법

Python3 helloworld.py 라고 치는 것이다.

 

 

 

나중에는 이런 욕심이 생긴다.

 

Python3, ls 라고 하는 것들은 명령이지만 프로그램을 실행시키는 것이다.

 

마찬가지로 helloworld.py라는프로그램을 실행할 때마다 python을 붙이는건

귀찮은 일이다 

 

그래서 helloworld.py만으로 파일을 실행 시키기 위해선

현재 디렉토리에 있는 helloworld.py란 뜻에서

 

./hellowworld.py라고 친다.

 

그러면 permission denied라고 나오는데 왜그런걸까

 

Ls -all 를 치면 현재 디렉토리의 파일의 목록을 더 자세하게 보여주는데

 

helloworld.py의 -rw-r--r--에서 -rw(-)r-(-)r-(-)은 실행이 안된다는 뜻이다.

이걸 바꾸기 위해서 슈퍼관리자의 권한이 필요하다

 

sudo(슈퍼관리자로서 명하니) chmod(change mod권한모드) a+x 모든 사용자에게 실행이라는 권한을 추가 helloworld.py

 

다시 ls -al을 하면

 

-rwxr-xr-x로 변한다.

 

그 다음 ./helloworld.py를 치면 실행되는데

운영체제가 파일을 뭘로 실행할지 알 수 없어 에러를 발생시킨다.

 

그래서 파일에 이 파일이 파이썬에 의해 실행된다는 것을 집어 넣어준다.

 

그걸 위해서는 python3가 어디에 위치했는지 알려줄 필요가 있다.

 

Type python3를 쳐서 나오는 /Library/Frameworks/Python.framework/Versions/3.9/bin/python3를

 

파이썬 파일에 #!/Library/Frameworks/Python.framework/Versions/3.9/bin/python3

 

이렇게 붙여주면 이 파일은 파이썬3로 제작됐고

이 경로에 해당되는 파이썬을 이용해서 이 코드를 실행하라는 뜻이 된다.

 

그다음 다시 ./helloworld.py 를 치면 정상적으로 작동하는걸 볼 수 있다.

 

 

 

 

다만 이 방법은 파이썬의 버전이 바뀌었거나 다른컴퓨터에서 실행시킬 때 문제가 발생할 수 있다.

이식성이 낮아서 포터블하지않다.

 

이걸 높이기 위해서는 파이썬 파일의 경로를  #!/usr/bin/env python3으로 바꿔줘야한다.

 

맥처럼 유닉스계열은 거의 표준처럼 설치된 env프로그램이 있는데 여기에 파이썬3의 위치를 물어봐서 그곳에 있는 파이썬으로 코드를 실행하라고 하면 

 

Env와 python 설치된 컴퓨터에서  작동하기 때문에 이식성이 훨씬 높아진다.

+ Recent posts