인공지능 개발자 수다(유튜브 바로가기) 자세히보기
반응형

분류 전체보기 93

[FastAPI] 미들웨어(Middleware) (11)

1. 미들웨어(Middleware) 란 무엇인가개념클라이언트와 서버 사이에서 데이터 요청(Request) 및 응답(Response)을 처리하는 중간 계층case1 : 요청이 애플리케이션의 특정 라우터에 도달하기 전에 작업을 수행case2 : 응답이 클라이언트에 반환되기 전에 조작하는 데 사용주요 역할요청(Request) 처리 전 작업요청의 유효성을 검사하거나 수정인증(Authentication) 및 권한 확인(Authorization)로그 기록(Log)을 남기거나 성능 모니터링응답(Response) 처리 후 작업데이터 압축(Gzip 등)응답 헤더 추가에러나 예외(Exception)를 클라이언트에 적절히 전달보안(Security)CORS(Cross-Origin Resource Sharing) 정책 관리CS..

Fastapi 2025.01.19

[FastAPI] 예외(Exception) 처리 방법 (10)

1. 개요FastAPI에서 예외를 처리하는 대표적인 방법은 아래와 같다.HTTPException 사용Custom Exception 만들기예외처리 핸들러 등록하기2.   HTTPException 사용FastAPI에서 기본적으로 제공하는 예외 클래스간단히 사용할 때 사용.from fastapi import FastAPI, HTTPExceptionapp = FastAPI()@app.get("/items/{item_id}")async def read_item(item_id: int): if item_id  3.  Custom 예외3.1. 왜 사용하는가?예외를 좀더 쉽게 추적하고 디버깅 하기위해코드의 가독성, 유지보수를 위해상태 코드와 메시지로만 예외를 구분하면 코드가 길어지고 복잡복잡한 시스템을 만들 때 ..

Fastapi 2025.01.19

[FastAPI] API의 Output (9)

1. API의 OutputAPI의 Output에는 어떠한 내용이 담겨있을까?데이터의 결과와 상태에 대한 데이터가 담겨 있다.구체적으로는 아래와 같다.Pydantic (Response Model)FastAPI는 Pydantic 모델을 사용하여 응답 데이터 구조를 정의클라이언트가 받을 데이터의 형태를 명확히 규정하고, 필요에 따라 필드 제한(예: 특정 필드만 출력)Json 데이터FastAPI는 기본적으로 JSON 포맷으로 응답을 반환한다.HTTP 상태 코드응답 상태 코드는 요청이 성공했는지, 실패했는지, 그리고 실패 이유가 무엇인지 클라이언트에 알려줌결론적으로 Json 형태로 만들거나, Pydantic 형태로 만들고데이터와 상태코드를 담아 보내면 된다. 2. 상태 코드2.1. 상태 코드 종류1xx: Info..

Fastapi 2025.01.19

[FastAPI] API의 Input (8)

지금까지는, API를 만들 때 그때그때 필요한 값을 Input으로 만들었다.앞으로는 상황에 맞는 값들을 사용해 보자.1. Path parameter1.1.설명경로(Path)에 파라미터 지정하는 방법Path Parameters는 클라이언트가 서버로 데이터를 전달하는 방법 중 하나일반적으로 str, int 를 처리한다.리소스 식별에 적합, (특정 리소스(데이터)를 고유하게 식별해야 하는 경우)get, delete 에서 주로 사용1.2. 기본 사용법URL에서 중괄호 {} 안에 정의함수의 파라미터에 input값, 타입힌트 정의주의사항{} 안의 변수명과 함수 매개변수명이 일치기본값을 설정할 수 없음@app.get("/users/{user_id}")async def read_user(user_id: int): ..

Fastapi 2025.01.19

[FastAPI] SSO 로그인과 OAuth 2.0 (7-2)

1.  SSO 로그인SSO(Single Sign-On)는 사용자가 한 번의 로그인으로 여러 애플리케이션이나 시스템에 접근할 수 있도록 해주는 인증 방식중앙 집중식 인증주로 OAuth 2.0과 OpenID Connect와 같은 프로토콜을 사용사용자는 먼저 IdP에 로그인하고, 해당 로그인 정보가 포함된 인증 토큰(보통 JWT)을 받는다.일반적으로 여러 서비스가 붙어있는 거대한 환경에서 쓴다. 2.  OAuth 2.02.1. OAuth 2.0 개념권한 위임(Authorization Delegation)유저는 비밀번호 등의 자격증명을 애플리케이션에 직접 제공하지 않고, 신뢰할 수 있는 권한 서버(Authorization Server)를 통해 자원에 접근할 권한을 위임함역할(Role)Resource Owner ..

Fastapi 2025.01.19

[FastAPI] JWT 기반 인증 (7-1)

1. 인증(Authentication) 이란인증(Authentication)은 시스템이나 서비스가 사용자가 누구인지 확인하는 과정을 의미합니다. 즉, 사용자가 주장하는 신원이 실제로 그 사람인지 확인하는 절차입니다. FastAPI에서는 두 가지 인증 방식을 모두 지원할 수 있습니다.세션 기반 인증은 Depends와 같은 의존성 주입을 통해 쉽게 구현할 수 있으며, 쿠키 기반의 세션 관리를 사용합니다.토큰 기반 인증은 OAuth2PasswordBearer와 같은 인증 스키마를 사용해 JWT 기반 인증을 구현하는 것이 일반적입니다.그 중에서 이번 시간에는 토큰 기반 인증인 JWT(Json Web Token)에 대해 공부해 봅시다.2. JWT 2.1. JWT 란?JWT는 주로 인증 목적으로 사용되며, 토큰 안..

Fastapi 2025.01.19

[FastAPI] SQLAlchemy 상세 - Join (6-6)

1. Join 기본 사용 방법join() 메서드를 이용해 직접 정의해 준다.기본은 내부 조인(inner join) 이다.with Session(engine) as session: # User와 Address 테이블을 조인하여 데이터를 조회 stmt = select(User, Address).join(Address, User.id == Address.user_id) result = session.execute(stmt).all() for user, address in result: print(user.name, address.email_address) outerjoin() 메서드는 left join이다.with Session(engine) as session: # U..

Fastapi 2025.01.19

데이터사이언스 업계에 대한 고찰(취업, 이직, 업무) (2025.01)

필자는 데이터사이언스 분야에서 5년 넘게 일하고 있는 직장인이다. 즉, 데이터사이언스가 사람인에 처음 나올때 쯔음 신입사원으로 시작한 사람이다. GPT가 등장한 이후 많은 것들이 변한 지금 데이터사이언티스트의 회사 업무가 어떻게 변했는지 적어본다.최근 몇년동안 상당히 성능이 좋은 모델들이 많이 등장했고, 특정 분야를 제외하고 새로운 모델을 설계하는 업무는 거의 사라진 것 같다. 음성분야(STT, TTS), Vision 분야, LLM 분야, 머신러닝 분야 등은성능을 더 좋게 하기 위해 연구를 하는 것 보다이미 존재하는 모델을 더 잘 활용하는 방향으로 나아가는 것으로 보인다. 물론 더 좋은 모델을 만들기 위한노력이 있긴 하지만그런 업무를 실질적으로 하는 것은큰 비용이 들 뿐만 아니라비용 대비 효과가 크지 않..

[FastAPI] SQLAlchemy 상세 - ForeignKey, relationship (6-5)

SQLAlchemy 에서 두 테이블 간의 관계를 표현할 때에는ForeignKey(), relationship() 두가지를 이용한다.관계를 설정하는 상세 옵션에 대해 알아보자 1. ForeignKey1.1. 기본 설명ForeignKey 설명부모테이블의 기본키와 자식테이블의 컬럼을 연결한다.두 테이블간의 관계에서, 자식 테이블에서 설정해 준다.해당 옵션은 데이터베이스에서 테이블을 생성할 때 실행해야 의미가 있다. ( Base.metadata.create_all(engine) )즉, ForeignKey에서 정의한 내용은 데이터베이스 스키마에 반영된다.여기서 설정한 옵션은 데이터베이스 레벨의 설정이다.예시 테이블 코드ForeignKey('parent.id') 를 이용해 외래키 정의Base = declarativ..

Fastapi 2025.01.09

Pyenv로 Python 설치하고 가상환경 만들기

1. Pyenv 설치1.1. 윈도우 (Window)Git에서 Pyenv를 설치하는 명령어를 받을 수 있다. (링크)Power shell 에서 명령어를 입력한다.Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"  1.2. Mac os pyenv 설치 명령어brew install pyenv 2. pyenv 버전 관리pyenv 버전확인pyenv --versionpyenv 업데이트 (Mac OS)brew upgr..

반응형