전체 글 1141

[FastAPI] response 형식 지정하기

개요아래 글들을 통해 FastAPI에서 요청 데이터를 어떻게 정의하고 접근하는지 알아보았다.2024.10.31-[FastAPI] 요청 데이터 접근 - 경로 매개변수2024.11.03-[FastAPI] 요청 데이터 접근 - 쿼리 매개변수2024.11.03-[FastAPI] 요청 데이터 접근 - request body이번에는 FastAPI에서 응답 데이터를 다루는 방법에 대해 알아본다.  응답 데이터FastAPI에서는 경로 데코레이터에 response_model이라는 매개변수를 추가하여 응답 데이터 형식을 지정할 수 있다. 응답 데이터 형식은 request body 형식을 정의했던 것과 동일하게 pydantic BaseModel을 사용한다. 기본적으로는 JSON 형식으로 응답하는 것 같다.아래 예제는 요청 ..

Python 10:29:06

[FastAPI] 요청 데이터 접근 - request body

개요이전 글에서 FastAPI를 사용할 때의 경로 매개변수, 쿼리 매개변수를 정의하고, 접근하는 방법을 알아보았다.2024.10.31-[FastAPI] 요청 데이터 접근 - 경로 매개변수2024.11.03-[FastAPI] 요청 데이터 접근 - 쿼리 매개변수 이번 글에서는 FastAPI에서 요청 본문을 정의하고 접근하는 방법을 알아본다.  request bodyHTTP Post 방식으로 통신할 때는 데이터를 request body/response body라고 하는 항목으로 주고받는다.FastAPI에서는 기존과 동일하게 함수에 매핑된 매개변수로 request body로 접근할 수 있는데, 요청 본문의 형식과 데이터 타입을 Pydantic(데이터 검증 라이브러리)이라는 모듈을 사용하여 정의한다. FastAP..

Python 2024.11.20

[FastAPI] 요청 데이터 접근 - 쿼리 매개변수

개요2024.10.31-[FastAPI] 요청 데이터 접근 - 경로 매개변수에서 FastAPI에서의 경로 매개변수에 접근하는 방법을 알아보았다. 이번 글에서는 쿼리 매개변수를 정의하고 접근하는 방법을 알아본다.  쿼리 매개변수쿼리는 URL에서 ? 뒤에 나열되는 &로 구분되는 키-값 쌍을 의미하며, HTTP GET 방식으로 통신할 때 사용한다. 예로 들어 아래 URL에서 쿼리 매개변수는 다음과 같다.http://127.0.0.1:8000/items/?skip=0&limit=10- skip : 0- limit : 10 FastAPI에서는 경로에 매핑하는 함수를 정의할 때 경로 매개변수가 아니라 다른 매개변수를 함께 선언하면 쿼리 매개변수로 해석된다. URL의 일부이기 때문에 당연히 문자열 데이터이지만, 타입..

Python 2024.11.19

[FastAPI] 요청 데이터 접근 - 경로 매개변수

개요2024.10.29-[Python] FastAPI 란에서 FastAPI에 대해 소개하고 기본 구조에 대해서 알아보았다. 이번 글에서는 FastAPI를 사용했을 때 요청 데이터에 접근하는 방법에 대해 알아본다.  경로 매개변수애플리케이션의 경로 매개변수는 매핑된 함수의 매개변수로 전달된다.from fastapi import FastAPIimport jsonapp = FastAPI()@app.post('/index/{cmd}')async def mgnt_index(cmd): response = {'cmd': cmd} return json.dumps(response)  경로 매개변수 타입 지정매핑된 함수의 매개변수에 타입 어노테이션을 사용함으로써 경로 매개변수의 데이터형을 지정할 수 있다.fro..

Python 2024.11.18

[Azure] Functions 이란

개요앞으로 Azure 클라우드 환경에서 업무를 진행하게 되었다. 업무에 필요한 기술 지식을 확보하기 위해 앞으로 다룰 서비스 중 하나인 Functions에 대해 정리한다.  Functions Azure에서 제공하는 클라우드 기반 컴퓨팅 서비스 중 하나로, 스케일링 가능한 이벤트 기반 서버리스 컴퓨팅을 제공한다.애플리케이션이 동작하는데 필요한 리소스는 클라우드에서 제공하므로 서버 배포 및 유지 관리에 신경 쓰지 않을 수 있다. 또한 기본적으로 함수가 실행된 시간에 대해서만 요금을 청구하기 때문에 비용을 절감할 수 있게 한다.  기능사용 언어 설정 가능 : C#, Java, JavaScript, PowerShell, Python 등의 언어를 사용할 수 있다.배포 자동화 : 도구 기반, 외부 파이프라인 기반 ..

Azure 2024.11.15

[Azure] AI Search 란

개요최근 신규로 담당한 업무 관련하여 AI Search라는 Azure의 서비스를 다루게 되었다. 업무를 진행하기 전에 어떤 서비스이고, 필요한 개념은 뭐가 있는지 정리해 둔다.  AI Search포괄적이고 고급 검색 기술을 갖춘 엔터프라이즈 지원 검색 시스템.구조적이거나 반구조적, 비구조적 문서에서 데이터를 추출하는 검색 솔루션을 만들기 위한 인프라와 도구를 제공한다.Azure Search라는 이름으로 시작해서 Azure Cognitive Search로 변경되었고, 지금은 AI Search라는 이름으로 서비스 중이다.Azure에서 RAG 기반 애플리케이션을 구축할 때 주로 권장된다. 기본적으로 Azure OpenAI와 Azure Machine Learning 간에 LLM이 연동되어 있다. 🤔 Azure..

Azure 2024.11.14

[Python] 비동기 - EventLoop

개요이전에 2024.06.26-[Python] asyncio - 비동기 프로그래밍에서 Python에서 비동기 프로그래밍을 하기 위한 라이브러리, 문법, 실행 방법을 알아보았었다.근데 실제로 사용해 보니 동작 방식에 대한 이래도가 너무 낮다는 느낌이 들었다. 그래서 이번 글에서는 Python에서 비동기 함수를 실행하는 주체인 EventLoop에 대한 개념을 적어두려고 한다.  EventLoopEventLoop는 비동기 프로그램의 핵심적인 요소로, 비동기 작업과 콜백, 네트워크 I/O 연산, 자식 프로세스 등을 실행한다.일반적으로 개발자는 asyncio.run과 같은 고수준 함수를 사용하여 비동기 프로그래밍을 개발하게 된다. 즉, EventLoop를 직접 참조하거나 관련 메서드를 호출할 필요가 없다. 하지만..

Python 2024.11.13

[Git] stash - 특정 파일만 임시 저장

개요최근 Git 로컬 레포지터리에서 수정 작업을 많이 하고 있는데, 수정 내용을 간단하게 저장하고 다시 적용할 수 있는 stash를 적극적으로 활용하고 있다. git stash 명령은 워킹 디렉터리에서 수정이 발생한 모든 내용을 임시로 저장하는데, 특정 파일만 저장할 때도 많아서 방법을 적어둔다.  git stash pushgit stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [-m|--message ] [--pathspec-from-file= [--pathspec-file-nul]] ..

Git | GitLab 2024.11.12

[Linux] gzip - 압축률 확인

개요gzip으로 압축된 파일이 원본 대비 얼마나 압축되었는지 확인하고 싶다. 압축 파일과 압축 해제한 파일의 용량을 비교해 보면 되겠지만, 굳이 압축을 풀지 않고 확인할 수 있는 방법을 알아두면 편한 것 같다.방법을 적어둔다.  압축률 확인gzip 압축 방식에 대해서 작업을 할 때는 gzip 명령을 사용한다. gzip 명령은 파일 압축, 파일 압축 해제, 내용 확인 등의 기능을 제공한다. 그중 압축률 확인은 내용 확인 기능에 해당한다.gzip -l # -l : 압축 파일 내용 나열위의 사진의 경우 압축률이 77.1%인 것을 확인할 수 있다. 여러 압축 파일을 나열하면 각각의 파일 압축률과 전체 파일 압축률을 확인할 수 있다.   참고 문서http://igoni.kr/books/1-os/page/gzip

Linux 2024.11.11

[Python] FastAPI 란

개요최근 새로 API 개발 업무를 맡게 되었는데…… 기존에 공부를 했었던 Flask, Tornado가 아니라 FastAPI라는 웹 프레임워크를 사용하게 되었다. 기본적인 설치나 실행 방법에 대해서 알아보자.  FastAPIPython 타입 힌트(타입 어노테이션)를 기반으로 API 개발에 초점을 둔 Python 웹 프레임워크. 공식 문서에 의하면 다음과 같은 특징을 갖고 있다.내부적으로 Starlette라는 비동기 프레임워크를 사용하며 가장 빠른 Python 프레임워크 중 하나이다.Pydantic을 사용해 입출력 항목을 빠르게 정의하고 값을 검증할 수 있으며, Swagger를 사용하여 빠르게 API 문서를 작성할 수 있다.내부 테스트에 의하면 개발자에 의한 오류를 40% 정도 감소시키는 것으로 측정되었다...

Python 2024.11.10