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의 개념을 이해하면, 클라이언트-서버 간의 데이터 통신을 효율적으로 설계할 수 있습니다.