[12장] 웹 개발 입문: Python으로 첫 웹 애플리케이션 구축

웹 개발에 첫발을 내딛는 여러분을 위해, ‘Python으로 첫 웹 애플리케이션 구축’ 챕터를 준비했습니다. 이 챕터는 파이썬을 활용한 기본적인 웹 개발 기술을 소개하며, 실제 애플리케이션을 만들며 배우는 경험을 제공합니다. 코딩 초보자도 쉽게 따라 할 수 있어요. 웹 개발의 세계로 첫걸음을 뗄 준비가 되셨나요?

Python
출처: Jan Kopřiva

혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서, 한빛미디어

웹 개발은 정보 시대의 핵심 기술 중 하나입니다. 이 챕터에서는 Python을 사용하여 간단한 웹 애플리케이션을 만드는 방법을 안내합니다. Python은 초보자도 쉽게 접근할 수 있는 언어로, 웹 개발에도 널리 사용됩니다.

Python과 웹 애플리케이션 개발

Python은 다재다능한 프로그래밍 언어로, 웹 개발에도 탁월합니다. Flask와 Django 같은 프레임워크를 통해 강력하고 효율적인 웹 애플리케이션을 구축할 수 있습니다.

첫 웹 애플리케이션 만들기: Flask 사용하기

Flask는 Python에서 사용되는 가벼운 웹 애플리케이션 프레임워크입니다. 이를 통해 간단한 웹 애플리케이션을 쉽게 만들 수 있습니다.

Flask 설치

Flask는 pip를 통해 쉽게 설치할 수 있습니다.

pip install Flask

기본 웹 애플리케이션 코드

혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서, 한빛미디어

아래는 Flask를 사용하여 기본 웹 페이지를 만드는 예시 코드입니다.

from flask import Flask

app = Flask(__name__)

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

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

이 코드는 가장 기본적인 웹 서버를 구축합니다. 사용자가 웹사이트의 홈페이지에 접속하면 ‘Hello, World!’라는 메시지를 보게 됩니다.

테스트 및 실행

위 코드를 저장한 후, 터미널에서 해당 파일을 실행시키면 Flask가 서버를 시작합니다. 기본적으로 http://127.0.0.1:5000/ 주소에서 애플리케이션을 확인할 수 있습니다.

첫 웹 애플리케이션 만들기: Flask 사용하기 심화

클라이언트-서버 구조 이해하기

밑바닥부터 시작하는 딥러닝:파이썬으로 익히는 딥러닝 이론과 구현, 한빛미디어

웹 애플리케이션은 클라이언트-서버 구조를 기반으로 합니다. 클라이언트(브라우저)는 사용자의 요청을 서버에 전달하고, 서버는 이를 처리하여 결과를 클라이언트에게 다시 전달합니다. Flask에서 이 구조를 구현하는 기본 예제는 다음과 같습니다.

from flask import Flask, request

app = Flask(__name__)

@app.route('/greet', methods=['GET', 'POST'])
def greet():
    if request.method == 'POST':
        user = request.form['name']
        return f'Hello, {user}!'
    return '''
        <form method="post">
            이름: <input type="text" name="name">
            <input type="submit" value="인사하기">
        </form>
    '''

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

서버와 데이터베이스 연동하기

CODING BASICS PYTHON:파이썬, 렉스미디어닷넷

실제 웹 애플리케이션은 데이터베이스와의 연동이 필수적입니다. Flask에서 SQLite 데이터베이스와 연동하는 예제 코드는 다음과 같습니다.

import sqlite3
from flask import Flask, request, g

app = Flask(__name__)
DATABASE = 'database.db'

def get_db():
    db = getattr(g, '_database', None)
    if db is None:
        db = g._database = sqlite3.connect(DATABASE)
    return db

@app.teardown_appcontext
def close_connection(exception):
    db = getattr(g, '_database', None)
    if db is not None:
        db.close()

@app.route('/add_user', methods=['POST'])
def add_user():
    db = get_db()
    user_name = request.form['name']
    db.execute('INSERT INTO users (name) VALUES (?)', (user_name,))
    db.commit()
    return f'User {user_name} added.'

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

이 코드는 사용자 이름을 받아 데이터베이스에 저장하는 간단한 예시입니다.

간단한 채팅 프로그램 구현하기

처음 시작하는 파이썬:파이썬 패키지를 활용한 모던 컴퓨팅 입문, 한빛미디어

웹 애플리케이션에서 실시간 채팅 기능 구현을 위해 WebSocket을 사용할 수 있습니다. Flask와 함께 Flask-SocketIO를 사용하는 예제는 다음과 같습니다.

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

@app.route('/')
def chat():
    return render_template('chat.html') # 채팅 화면을 렌더링하는 HTML 파일

@socketio.on('message')
def handleMessage(msg):
    print('Message: ' + msg)
    emit('message', msg, broadcast=True)

if __name__ == '__main__':
    socketio.run(app, debug=True)

이 코드는 모든 사용자에게 메시지를 방송하는 기본 채팅 기능을 구현합니다. 클라이언트 측에서는 Socket.IO를 사용하여 서버와 통신합니다.

python으로 배우는 OpenCv 프로그래밍, 가메

이러한 예제들은 Flask를 사용하여 웹 애플리케이션의 다양한 기능을 구현하는 방법을 보여줍니다. 클라이언트-서버 상호작용, 데이터베이스 연동, 실시간 통신 등은 웹 개발의 중요한 요소들입니다. 이 예제들을 통해 학습자들은 Flask를 사용한 웹 개발의 기본적인 면모를 이해하고, 실제로 애플리케이션을 구축하는 데 필요한 경험을 쌓을 수 있습니다.

결론

웹 개발은 광범위한 기술과 개념을 포함하며, Python과 Flask를 사용하는 것은 이 세계에 발을 들여놓는 훌륭한 시작점입니다. 본 챕터에서는 Flask를 이용한 기본적인 웹 애플리케이션 구축, 클라이언트-서버 구조의 이해, 데이터베이스와의 연동, 그리고 실시간 채팅 기능의 구현과 같은 핵심적인 개념들을 다루었습니다. 이를 통해 학습자들은 웹 개발의 기초를 단단히 다지며, 실제 애플리케이션 개발에 필요한 실용적인 경험을 쌓을 수 있습니다. 또한, 이 지식은 더 복잡한 웹 애플리케이션과 기술로 나아가기 위한 견고한 기반을 마련해 줍니다.

다른 글 보기