9.2. Hello world 서버 만들기

9.2.1. 웹 애플리케이션 코딩

프로젝트 폴더를 생성하고, 그 안에 app.py 파일을 만듭니다.

파일 내용을 다음과 같이 작성합니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, World!"

if __name__ == "__main__":
    app.run(debug=True)

코드 설명

  • Flask 클래스: Flask 애플리케이션의 인스턴스를 생성합니다.

  • @app.route('/'): 특정 URL 경로에 대한 요청을 처리하는 뷰 함수를 정의합니다.

  • def home(): 요청을 처리하는 함수입니다. 여기서는 ‘/’ 경로로 요청이 들어오면 “Hello, World!”를 반환합니다.

  • app.run(debug=True): 애플리케이션을 실행합니다. debug=True는 디버그 모드를 활성화합니다.

9.2.2. 웹 애플리케이션 서버 실행

Flask는 간단한 웹 애플리케이션 개발을 위한 훌륭한 도구이며, 내장 개발 서버를 사용하면 빠르게 시작할 수 있습니다. 그러나 생산 환경에서는 내장 서버의 성능과 보안상의 한계로 인해 uWSGI 또는 Gunicorn 같은 고성능 WSGI (Web Server Gateway Interface) 서버를 사용해야 합니다. WSGI 서버를 적용하면 안정적이고 확장 가능한 웹 애플리케이션을 운영할 수 있습니다.

앱 개발 프레임워크 내장형 앱 애플리케이션 서버의 한계

  • 상업용 서비스 환경에 부적합: Flask의 내장 서버는 단일 스레드로 작동하며, 동시성 처리가 매우 제한적입니다. 고성능이 요구되는 생산 환경에서는 적합하지 않습니다.

  • 보안 기능 부족: 내장 서버는 보안 기능이 제한적이며, 외부 공격에 취약할 수 있습니다.

  • 확장성 부족: 대규모 트래픽을 처리할 수 없으므로, 확장성이 제한됩니다.

Flask에는 개발을 쉽게 할 수 있도록 기본적으로 제공되는 내장 개발 서버가 있습니다. WSGI 서버 운용을 하려면 추가로 많은 부분들을 학습해야 합니다. 또한, 윈도우 시스템에서는 잘 작동되지 않기 때문에 우리는 Flask에 내장된 서버를 이용하여 실습을 진행할 것입니다.

Flask에 내장된 웹 애플리케이션 서버를 이용해 애플리케이션을 실행하기 위해 터미널에서 다음 명령을 입력합니다.

python app.py

위 명령어가 실행되면 플라스크 웹 서버가 시작되고, 브라우저에서 http://127.0.0.1:5000/ 으로 접속하면 “Hello, World!” 메시지를 볼 수 있습니다.

9.2.3. 라우팅 추가

다음은 Flask를 사용하여 간단한 “Hello, World!” 웹 서버에 개인 소개 라우팅 /about_me를 추가하는 방법입니다.

기존 app.py 파일에 다음 내용을 추가합니다.

@app.route('/about_me')
def about_me():
    return "안녕하세요. \
저는 웹 개발자입니다. \
Flask를 사용하여 웹 애플리케이션을 개발하고 있습니다."

이 코드를 통해 /about_me 경로에 접속하면 간단한 개인 소개를 확인할 수 있습니다.

업데이트 된 app.py 파일은 다음과 같습니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, World!"

@app.route('/about_me')
def about_me():
    return "안녕하세요. 저는 웹 개발자입니다. Flask를 사용하여 웹 애플리케이션을 개발하고 있습니다."

if __name__ == "__main__":
    app.run(debug=True)

원한다면 @app.route(/route) 데코레이터를 이용해 다양한 경로를 자유롭게 추가할 수 있습니다. 여러분도도 여러가지 경로를 추가하는 실습을 진행해 보기 바랍니다.

맨 위로 이동