12. 웹 개발 기초(Web Development Basics)
Flask를 이용한 웹 애플리케이션 개발 기초 (Basic Web Application Development with Flask)
Flask는 Python으로 작성된 경량 웹 프레임워크로, 간단하고 유연한 웹 애플리케이션을 개발할 수 있게 해줍니다. 기본적인 웹 애플리케이션을 만드는 방법을 살펴보겠습니다.
먼저 Flask를 설치합니다.
pip install Flask
기본적인 Flask 애플리케이션은 다음과 같이 구성됩니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
if __name__ == '__main__':
app.run(debug=True)
위 코드는 간단한 Flask 애플리케이션을 정의합니다. @app.route('/') 데코레이터는 루트 URL (/)에 대해 home 함수를 실행하도록 설정합니다. app.run(debug=True)는 디버그 모드에서 애플리케이션을 실행합니다.
Django를 이용한 웹 애플리케이션 개발 기초 (Basic Web Application Development with Django)
Django는 Python으로 작성된 강력한 웹 프레임워크로, 대규모 웹 애플리케이션을 개발하는 데 적합합니다. Django 프로젝트를 생성하고 간단한 애플리케이션을 만드는 방법을 살펴보겠습니다.
먼저 Django를 설치합니다.
pip install Django
새로운 Django 프로젝트를 생성합니다.
django-admin startproject myproject cd myproject
이제 애플리케이션을 생성합니다.
python manage.py startapp myapp
myapp 디렉토리의 views.py 파일을 다음과 같이 수정합니다.
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django!")
프로젝트의 urls.py 파일을 다음과 같이 수정하여 home 뷰를 연결합니다.
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home),
]
애플리케이션을 실행합니다.
python manage.py runserver
이제 브라우저에서 http://127.0.0.1:8000/에 접속하면 “Hello, Django!” 메시지를 확인할 수 있습니다.
HTTP 프로토콜과 RESTful API (HTTP Protocol and RESTful API)
HTTP는 웹 상에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트가 서버에 요청을 보내고, 서버가 응답을 반환하는 방식으로 동작합니다. RESTful API는 HTTP 프로토콜을 사용하여 자원(Resource)을 정의하고 조작하는 방법론입니다.
HTTP 요청 메서드
- GET: 서버에서 데이터를 조회합니다.
- POST: 서버에 데이터를 생성합니다.
- PUT: 서버의 데이터를 수정합니다.
- DELETE: 서버의 데이터를 삭제합니다.
RESTful API 예제
Flask를 사용하여 간단한 RESTful API를 만들어 보겠습니다.
from flask import Flask, jsonify, request
app = Flask(__name__)
# 샘플 데이터
users = [
{'id': 1, 'name': 'Alice'},
{'id': 2, 'name': 'Bob'}
]
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = next((u for u in users if u['id'] == user_id), None)
if user:
return jsonify(user)
return jsonify({'error': 'User not found'}), 404
@app.route('/users', methods=['POST'])
def create_user():
new_user = request.get_json()
users.append(new_user)
return jsonify(new_user), 201
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
user = next((u for u in users if u['id'] == user_id), None)
if user:
data = request.get_json()
user.update(data)
return jsonify(user)
return jsonify({'error': 'User not found'}), 404
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
global users
users = [u for u in users if u['id'] != user_id]
return '', 204
if __name__ == '__main__':
app.run(debug=True)
위 예제에서 /users 엔드포인트는 GET 요청으로 모든 사용자를 조회하고, POST 요청으로 새로운 사용자를 생성합니다. /users/<user_id> 엔드포인트는 GET 요청으로 특정 사용자를 조회하고, PUT 요청으로 사용자를 업데이트하며, DELETE 요청으로 사용자를 삭제합니다.
이와 같이 Flask와 Django를 사용하여 웹 애플리케이션을 개발하고, RESTful API를 구현할 수 있습니다. HTTP 프로토콜과 RESTful API의 개념을 이해하면, 클라이언트-서버 간의 데이터 통신을 효율적으로 설계할 수 있습니다.
