파이썬 웹 프로그래밍 기본

1. 웹 프로그래밍 - 1.2. Flask 소개

영바이트 2020. 8. 11. 19:10

클라이언트(client, 모바일 폰, 데스크탑 PC 등)와 서버(server, 블로그, 유튜브 등)가 HTTP 규약을 이용해 데이터를 주고 받는 클라이언트-서버 모델에 대해 '1.1. 웹 서비스 이해'에서 간략히 살펴보았다. 클라이언트는 웹 브라우저에 주소(URL)을 입력하기도 하고 페이지의 버튼을 클릭하기도 하면서 서버에 요청들을 보낸다. 서버는 어떻게 요청들에 응답(response)할까?

 

서버는 24시간 때를 가리지 않고 수 많은 클라이언트들로부터 서비스 제공 요청을 받는다. 가장 효과적인 방법은 프로그램을 이용해서 자동으로 응답하는 것이다. 앞의 글에서 웹 브라우저의 디버그(debug) 모드를 통해 HTTP 헤더와 바디의 내용을 살펴보았다. 만약 프로그래머가 이 복잡한 내용들을 일일히 만들어야 한다면 알아야 할 것과 만들어야 할 것이 너무 많아 제한된 시간 안에 일을 마치지 못할것이다. 여기에 더해 더 걱정되는 것은 만들어야 할 프로그램의 양이 많아지면 알게 모르게 만들어지는 오류들도 늘어난다는 점이다.

 

웹 프로그래밍 프레임워크는 HTTP 응답 생성에 필요한 기능을 통합적으로 제공한다. 즉, HTTP 요청을 받고 응답을 하기 위한 과정들을 프레임워크에서 제공하는 몇 개의 함수로 구현할 수 있다. 예를 들어 'Hello Flask!'라는 메시지를 제공하기 위한 동작을 단 몇 줄로 만들 수 있다.

※ 프레임워크를 '다양한 구성 요소들이 어떤 목적을 달성하기 위해 서로 협력하는 방법을 정의한 것'으로 이해하면 쉽다.

 

<요청에 대한 응답결과 - Hello Flask!>

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "<h1>Hello Flask!</h1>"
    

 

파이썬에서는 웹 프로그램을 작성하기 위한 프레임워크로 플라스크(Flask)와 장고(Django) 두 가지 중 하나를 많이 사용한다. 여기서는 플라스크를 프레임워크로 선택하여 논의를 이어갈것이다. 개발자는 제공할 웹 서비스의 내용에 집중하면 되고 HTTP 메시지 처리와 관련된 세부적인 내용들은 플라스크 웹 프로그래밍 프레임워크의 요소들이 알아서 처리해준다. 따라서 안정적인 웹 서비스를 비교적 짧은 시간 안에 개발하기 위해 프레임워크를 사용하지 않을 이유가 없다.