본문 바로가기

IT

FastAPI - Study 3일차 (라우팅) 라우티은 특정 URL을 어떤 어떤 함수가 처리할 지를 정의하는 기술이다.FastAPI에서도 Flask와 마찬가지로 데코레이터를 사용하여 간단히 구현할 수 있다. 1. 기본라우팅HTTP GET 메서드를 이용한 예제 from fastapi import FastAPI # FastAPI 라이브러리를 import 한다.app = FastAPI() # FastAPI 인스턴스를 생성한다.@app.get("/")def read_root(): return {'message':'Hello World!!'} 위는 저번 1일차 공부때 사용했던 소스로서http://127.0.0.1:8000 에 GET요청을 하면 'Hello, World!!" 라는 응답을 보내는 예이다.  2. 경로 매개변수FastAPI는 사용자의 요.. 더보기
FastAPI - Study 2일차 (문서자동화) FastAPI의 대표적 기능 중 하나는 바로 자동 문서화이다. 앞선 1일차에서 Hello, World!! 예제를 했었는데 그때 @app.get("/") 이라는 라우터를 정의했다.FastAPI는 이 정보를 바탕으로 해당 API 엔드포인트(endpoint)에 대한 문서를 자동으로 생성한다. 문서 자동화의 장점은 다음과 같다. ● 시간 절약 - 수동 문서를 업데이트 안해도 되서, 개발에 더 많은 시간을 쏟을 수 있다.● 최신 정보 유지  - 코드가 업데이트되면 문서도 자동 업데이트가 된다.● API 테스트 - Swagger UI 또는 리독에서 직접 API를 호출하여 테스트가 가능하다. 이는 특히 프론트엔드 개발자나 다른 백엔드 개발자와 협업시 대단히 유용하다.● 타입 검사 및 유효성 검증 - 문서 생성 시 F.. 더보기
FastAPI - Study 1일차 (Hello, FastAPI) 1. FastAPI 란?FastAPI는 파이썬 언어를 위해 설계된 최신 웹 프레임워크이다.특히 API 개발에 최적화되어 있고, 비동기 프레임워크인 Starlette(스타레테)를 기반으로 웹 요청을 처리할 수 있다.그리고 데이터 검증과 설정을 위해 Pydantic(파이단틱) 라이브러리를 사용한다. FastAPI는 이름에서도 알 수 있듯 성능에 중점을 두고 있어서, 비동기(async) 프로그래밍을 지원한다.그래서 I/O 작업이 많은 애플리케이션에 대해 빠른 처리 속도를 제공한다.  결국, RESTful API를 쉽게 구축해주도록 돕는 것이 FastAPI이다. 이러한 AIP를 구축함에 있어 필요한 많은 기본 설정과 보일러플레이트 코드를 줄여준다.보일러플레이트 코드(boilerplate code)란, 애플리케이.. 더보기
Flask - 애플리케이션(메모앱) 만들어보기 #7 안녕하세요 ^^저번시간 까지 [Flask - 애플리케이션(메모앱) 만들어보기 #6]  메모앱을 작성하면서 프론트앤드 기반으로 개선을 했었는데요, 오늘은 좀 더 사용자 편의성 개선 부분에서 소스를 수정하며 보려합니다. 1. import 구문 수정먼저 app.py 파일에서 import 구문 수정을 아래와 같이 진행합니다.from flask import Flask, render_template, request, jsonify, abort, redirect, url_forfrom flask_sqlalchemy import SQLAlchemyfrom flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current.. 더보기
Flask - 애플리케이션(메모앱) 만들어보기 #6 앞에서 만들어본 메모앱은 프론트엔드 페이지를 거의 만들지 않고 curl 명령으로 테스트를 진행했었습니다. 여기서 프런트엔드 데이지를 개선 및 추가해서 메모앱을 웹에서 작동이 되도록 해보겠습니다. 프론트엔드 페이지는 HTML, CSS, 자바스크립트로 작성하고, Jinja2 이라 불리는 템플릿에 연동되어 동작할 수 있게 만들어 볼께요 개선 하고 추가할 파일은 templates 폴더 아래에 있는 memos.html 과 index.html 입니다. 1. index.html 작성하기index.html 은 http://127.0.0.1:5000/과 같이 루트 라우트에서 보여지는 페이지입니다. 이 페이지에서 로그인 및 회원가입 기능을 구현하기 위해 아래와 같이 코드를 변경합니다.  나의 메모 앱에 오신것을 환영.. 더보기
Fedora 리눅스 워크스테이션 버전 설치 및 nVidia 드라이버 설치방법(Fedora KDE Plasma의 문제점 발견) 그동안 CentOS 리눅스만 사용하다가 Fedora를 오랜만에 설치 해서 nVidia 드라이버 설치까지 해보았습니다. 원래대로라면 Fedora KDE 버전을 설치 후 nVidia 드라이버 설치를 할려고 했으나 OS 및 드라이버 설치까지는 잘 되었지만 재부팅 후 UI(KDE 윈도우) 화면이 뜨질 않아 해결하려고 구글링을 해보았지만 왠지 KDE와 충돌나서 화면이 뜨지 않는 것 같아 Fedora 일반 워크스테이션 버전을 설치하여 테스트 하니 잘되었네요 오늘 하루종일 삽질하고 블로그에 글을 올려봅니다. 그럼 첫번째로 Fedora 리눅스 워크스테이션 버전 설치 부터 진행해보겠습니다. 1. 페도라 리눅스(워크스테이션) 설치 페도라 리눅스는 아래의 사이트에 먼저 접속합니다. Fedora Linux | The Fedo.. 더보기
Flask - 애플리케이션(메모앱) 만들어보기 #5 안녕하세요 오늘도 저번 시간에 이어 Flask 기반의 메모앱을 만들어 보도록 하겠습니다. 저번시간은 Flask-Login을 활용해서 사용자의 로그인, 로그아웃 인증부분을 구현해 봤구요, 오늘은 온라인 메모 프로젝트의 핵심 기능인 사용자별 메모 관리를 구현해보려고 합니다. 이를 위해 우선 메모 모델을 수정해서 각 메모가 특정 사용자에게 속하도록 설정을 하는 것이 필요합니다. 그래서 이를 바탕으로 사용자가 자신이 작성한 메모만 조회 및 관리를 할 수 있도록 애플리케이션의 라우트를 개선토록 합니다. 1. 사용자별 메모 관리 구현하기사용자별 메모 관리 구현을 위해 Memo 모델에 사용자 참조를 추가해야 합니다. 이를 통해 각 메모가 어떤 사용자에게 속하는지를 식별할 수 있습니다. class Memo(db.Mod.. 더보기
Flask - 애플리케이션(메모앱) 만들어보기 #4 저번 시간 까지 구현해보았던 Flask 메모앱 애플리케이션을 한단계 더 진화시켜보고자 합니다. 뭐냐하면, 두구두구두구... 바로 사용자 인증 기능 구현에 관한 내용입니다. 즉 "온라인 메모장" 프로젝트에 사용자 인증 기능을 구현하는 것입니다.  이때 사용자 인증 Flask-Login 확장을 활용하여 구현하며, 이를 통해 로그인, 로그아웃, 그리고 사용자 세션 관리를 수행해 보도록 해보아요 1. Flask-Login을 활용하여 사용자 인증 구현Flask-Login 과 Werkzeug(벨저크 라 읽는 것 같습니다.)를 설치합니다. Werkzeug는 비밀번호를 해시(암호화)하기 위해 사용합니다. 그래서 아래와 같이 pip를 이용하여 설치를 진행합니다.pip install Flask-Login Flask-Log.. 더보기