파이썬(Python)을 사용하는 간단한 웹서버 환경을 만들어 보는 방법입니다. 어떻게 구축하는지 아래에서 알아보세요.



# 파이썬을 사용한 웹서버 구축하기
서비스 목적이 아닌 개발 및 학습 등의 목적으로 간단한 웹서버를 구동할 필요가 있습니다. 예를들어 학습에 필요한 예제를 구동해야 하는데 요구 사항이 웹서버가 필요한 경우가 그런 예 중 하나입니다.

이런 목적의 웹서버는 최대한 빨리 쉽게 구현하는 것이 좋겠죠.

(참고사항. 물론 실제 서버 구동을 라이브하기 위한 웹어플리케이션 목적에도 당연히 사용은 가능할 것입니다. 다만 이런 경우라면 좀 더 효율적인 웹프레임워크를 사용하는 것이 유리합니다.)



! 파이썬 서버 예제보기
그럼 실제로 웹 구축을 위한 서버 소스를 알아봅니다. 단계별로 나누어 보면 아래와 같습니다.

i. index.html 파일 생성
ii. app.py 파일 생성
iii. 서버 구동

그럼 하나하나 알아봅니다.


@ index.html 파일 생성하기
제일 먼저 할 일은 보여지게 될 html 파일을 생성하는 것입니다. 간단하게 만들어봅니다.
<html>
<body>
  Hello my Simple Web Server!
</body>
</html>

매우 간단하죠? 다음은 서버를 구동할 파이썬 파일을 생성합니다. 이름은 app.py로 정하겠습니다.

@ app.py 파일 생성하기
먼저 전체 소스를 확인해보겠습니다.
import http.server
import socketserver

handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(('', 8080), handler) as httpd:
  print('Server listening on port 8080...')
  httpd.serve_forever()

모듈은 http.server와 socketserver 두 개를 사용하였습니다. 이제 브라우저에 localhost:8080으로 접속하면 아래와 같이 출력되어 나타나게됩니다.
Hello my Simple Web Server!

여기까지 간단한 웹서버 구동을 알아봤습니다.



! Python 커맨드 라인 명령어를 사용한 웹서버 구동 방법
더 간단한 방법이 존재하는데 파이썬은 즉시 서버를 띄울 수 있는 간단한 커맨드라인 명령어를 제공합니다. 이때 3.0 이후 버전과 2.x 버전으로 명령어가 조금 다른데 3.0 부터는 모듈명이 통합되며 바뀌었기 때문입니다.
python -m http.server 8080
// Python 3.0 이 후 부터

python -m SimpleHTTPServer 8080
// Python 2.x 버전에 사용


python -m http.server 8080 --bind 127.0.0.1
// ip를 명시하는 경우

보면 m 옵션을 사용하여 모듈명을 선택하고 뒤에 사용할 포트를 지정하면 됩니다. 실제로 입력하면 아래처럼 나타납니다.
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

만약 index.html 등의 템플릿 파일이 없다면 아래처럼 404 에러가 나타납니다.
127.0.0.1 - - [20/Nov/2019 08:47:43]    code 404, message File not found

위에서처럼 message 파일을 찾을 수 없다고 나오죠.


여기까지 파이썬을 사용하는 간단한 웹서버 구동에 대하여 알아봤습니다.