약 7분
본문 듣기
읽기 설정
글자 크기
줄 간격
글꼴
9.1 전체 강의 내용 복습
이번 강의에서는 백엔드 Python 개발의 기초를 FastAPI 프레임워크를 통해 실습 중심으로 배웠습니다. 전체적인 내용을 정리하면서 복습해 보겠습니다.
1. HTTP와 REST API 개념
- HTTP: 웹에서 클라이언트와 서버 사이의 통신 규약. 요청(request)과 응답(response)으로 이루어져 있음.
- REST API: HTTP를 기반으로 데이터를 주고받는 API 설계 원칙. 자원의 상태를 정의하고 명확하게 접근할 수 있도록 도와줍니다.
2. JSON의 역할
- JSON(자바스크립트 객체 표기법): 데이터 전송 시 일반적으로 사용되는 경량 포맷.
- Easy to read and write for humans and easy to parse & generate for machines.
3. CRUD Operations
- Create, Read, Update, Delete: 데이터베이스에서 정보를 조작하는 기본적인 작업.
- 각각의 작업을 위한 FastAPI의 endpoint를 만들면서 RESTful API의 구조를 이해했습니다.
4. JWT(JSON Web Token) 이해
- 사용자 인증 및 정보를 안전하게 전송하기 위한 방법.
- FastAPI의
Depends기능을 사용하여 인증 과정을 쉽게 구현했습니다.
5. 데이터베이스와 ORM(SQLAlchemy)
- SQLite에서 MySQL로 데이터베이스를 변경하는 방법을 배웠습니다.
- SQLAlchemy: Python에서 데이터베이스와 소통하는 도구로, ORM(Object-Relational Mapping)을 통해 SQL 쿼리 없이 객체지향적으로 데이터베이스를 다룰 수 있도록 지원합니다.
6. 배포의 기초
- 강의의 마지막 부분에서는 FastAPI 애플리케이션을 실질적으로 배포하는 방법에 대해 논의했습니다.
- Heroku와 Docker를 사용하여 실제 운영 환경으로 배포하는 과정도 배웠습니다.
이 모든 내용을 통해 실습 위주로 학습하며, 각 주제에 대한 이해도를 높이고, 실제 사용 사례를 접할 수 있는 기회를 가졌습니다. 이제 퀴즈와 실습 과제를 통해 배운 내용을 더욱 복습하고, 이해를 깊이는 것이 중요합니다.
실습 프로젝트
각 장마다 실습 프로젝트가 포함되어 있어, 이론을 바탕으로 실전 경험을 쌓는 기회를 제공했습니다. 예를 들어, 기본적인 사용자 관리 시스템을 구축하거나, 간단한 블로그 API를 만드는 등의 프로젝트를 통해 학습한 내용을 적용했습니다.
코드
python
from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session
from . import models, schemas, database
app = FastAPI()
@app.post('/users/', response_model=schemas.User)
def create_user(user: schemas.UserCreate, db: Session = Depends(database.get_db)):
db_user = models.User(**user.dict())
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
@app.get('/users/{user_id}', response_model=schemas.User)
def read_user(user_id: int, db: Session = Depends(database.get_db)):
return db.query(models.User).filter(models.User.id == user_id).first()
@app.put('/users/{user_id}', response_model=schemas.User)
def update_user(user_id: int, user: schemas.UserUpdate, db: Session = Depends(database.get_db)):
db_user = db.query(models.User).filter(models.User.id == user_id).first()
for key, value in user.dict().items():
setattr(db_user, key, value)
db.commit()
return db_user
@app.delete('/users/{user_id}')
def delete_user(user_id: int, db: Session = Depends(database.get_db)):
db_user = db.query(models.User).filter(models.User.id == user_id).first()
db.delete(db_user)
db.commit()
return {'message': 'User deleted'}
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.