Linuxpia/웹 프로그램 13

[웹 API] JSON(JavaScript Object Notation)은?

JSON(JavaScript Object Notation)은? JSON(JavaScript Object Notation)은 데이터 교환을 위한 경량의 텍스트 기반 형식으로, 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기에 용이합니다. JSON은 Douglas Crockford에 의해 소개되었으며, 웹 애플리케이션에서 클라이언트와 서버 간의 데이터 전송에 주로 사용됩니다. 그러나 그 사용 범위는 웹 개발에만 국한되지 않으며, 다양한 소프트웨어 및 애플리케이션에서 설정 파일, 데이터 저장, 구성 관리 등 다양한 목적으로 활용됩니다. JSON의 기본 구조 JSON 형식은 두 가지 기본 구조를 기반으로 합니다: 이름(키)/값 쌍의 집합: 객체(Object)에서 사용되며, {} 중괄호로 묶입니다. 각 키는 ..

[웹 API] JSON 객체와 파이썬 딕셔너리의 유사점과 차이점

JSON 객체와 파이썬 딕셔너리의 유사점과 차이점 JSON 객체와 파이썬 딕셔너리는 자료 구조 측면에서 서로 매우 유사한 특성을 가지고 있으나, 그 사용 용도와 데이터 형식에 있어서 몇 가지 중요한 차이점이 있습니다. 유사점 키-값 쌍(Key-Value Pairs): 둘 다 데이터를 키-값 쌍으로 저장합니다. 이는 데이터를 효율적으로 저장하고 검색하는 데 도움이 됩니다. 가변성(Mutability): 파이썬 딕셔너리와 JSON 객체 모두 수정 가능합니다. 즉, 데이터를 추가, 제거, 변경할 수 있습니다. 계층적 구조(Hierarchical Structure): 둘 다 중첩 구조를 지원합니다. 딕셔너리 안에 다른 딕셔너리를 저장할 수 있고, JSON 객체도 마찬가지로 중첩될 수 있습니다. 차이점 데이터 형..

[웹 API] REST API와 스트리밍 API

REST API와 스트리밍 API REST API와 스트리밍 API는 웹 기반 애플리케이션에서 자주 사용되는 두 가지 유형의 API(Application Programming Interface)입니다. 각각의 API는 데이터 교환 및 통신을 위해 설계되었으나, 그 목적과 사용 방법에서 차이가 있습니다. REST API REST(REpresentational State Transfer) API는 인터넷상의 리소스에 접근하기 위해 설계된 아키텍처 스타일을 따르는 API입니다. RESTful API라고도 불리며, 상태 정보를 유지하지 않는(stateless) 통신 방법을 사용합니다. 이는 각 요청이 독립적이며, 이전 요청의 정보를 기반으로 하지 않는다는 의미입니다. 주요 특징 단순성과 일관성: HTTP 프로토..

[웹 API] 웹 API의 개요

웹 API의 개요 웹 API(Application Programming Interface)는 소프트웨어 간에 정보를 교환하고 상호작용을 가능하게 하는 규약 또는 인터페이스입니다. 웹 API는 주로 HTTP 요청을 통해 웹 서버와 통신하며, 데이터는 JSON(JavaScript Object Notation)이나 XML(eXtensible Markup Language) 형식으로 주고받습니다. 웹 API를 통해 개발자는 다양한 온라인 서비스의 기능을 자신의 애플리케이션에서 직접 사용할 수 있습니다. 웹 API의 주요 특징 플랫폼 독립성: 웹 API는 HTTP를 기반으로 하므로, 어떤 프로그래밍 언어나 시스템에서도 사용할 수 있습니다. 간결성: JSON이나 XML을 사용하여 데이터를 교환하므로, 읽기 쉽고 구현..

[FastAPI] 간단한 테스트를 위한 텍스트 기반 도구, cURL 개요

cURL 개요 curl`은 HTTP, HTTPS, FTP 등을 지원하는 프로토콜을 사용하여 서버로부터 데이터를 전송하거나 서버로 데이터를 보내는 도구입니다. 스크린숏에 표시된 섹션은 이 도구를 사용할 때 URL을 지정하는 방법에 대해 설명하고 있습니다. URL 구문(Syntax): URL 구문은 프로토콜에 따라 다를 수 있으며, 다른 프로토콜들은 URL을 해석하는 방식이 조금씩 다를 수 있습니다. URL 형식에 대한 자세한 설명은 RFC 3986 문서에서 찾아볼 수 있습니다. 다중 URL 또는 URL 부분: 중괄호 {}를 사용하여 여러 URL 또는 URL의 일부를 지정하고, 쉼표로 구분할 수 있습니다. 예: "http://site.{one,two,three}.com" 은 {one,two,three}를 각..

[FastAPI] FastAPI 요청에 대한 응답은 JSON으로 변환, JSON이란?

JSON이란? JSON (JavaScript Object Notation)은 경량의 데이터 교환 형식으로, 인간이 읽고 쓰기 쉬울 뿐만 아니라 기계가 파싱하고 생성하기에도 용이합니다. JSON은 두 개의 구조를 기반으로 합니다. 이름/값 쌍의 집합 (객체): 다양한 언어에서는 객체(object), 레코드(record), 구조체(struct), 딕셔너리(dictionary), 해시 테이블(hash table), 키드 목록(keyed list), 또는 연관 배열(associative array)로 구현됩니다. JSON에서는 객체를 중괄호로 묶은 일련의 이름/값 쌍으로 표현합니다. 값의 정렬된 리스트 (배열): 대부분의 언어에서 배열(array), 벡터(vector), 리스트(list), 시퀀스(sequenc..

[FastAPI] FastAPI에 적용된 어노테이션(Annotation)이란?

FastAPI에 적용된 어노테이션(Annotation)이란? '어노테이션(Annotation)' 기능은 프로그래밍 언어에서 코드에 메타데이터를 추가하는 방법을 말합니다. 이 메타데이터는 실행 시간(runtime)이나 컴파일 시간(compile-time)에 다양한 용도로 사용될 수 있으며, 코드의 가독성을 높이고, 오류를 줄이며, 반복을 감소시키는 등의 이점을 제공합니다. Python에서 타입 힌트(type hints) Python에서는 타입 힌트(type hints)를 어노테이션의 한 형태로 사용합니다. 이는 함수의 매개변수나 반환 값에 예상되는 데이터 타입을 명시하는 데 사용됩니다. 이 정보는 IDE나 린터(linters), 그리고 런타임에 활용되지 않고, 주로 개발 단계에서 코드의 명확성을 높이고 버..

[FastAPI] 파이썬 라이브러리에서 Pydentic이란?

파이썬 라이브러리에서 Pydentic이란? Pydantic은 데이터 유효성 검사(validation)와 설정 관리(settings management)를 위한 Python 라이브러리입니다. Pydantic은 Python 3.6 이상의 타입 힌트(type hints)를 사용하여 데이터의 형태와 제약조건을 명시적으로 선언할 수 있게 해 주며, 데이터의 변환(conversion), 유효성 검사, 문서화(documentation)를 간소화합니다. Pydantic의 주요 특징 강력한 타입 힌트 기반의 유효성 검사: Pydantic은 Python의 타입 힌트를 활용하여 데이터 모델의 각 필드에 대한 타입과 제약조건을 정의합니다. 데이터가 모델에 로드될 때, Pydantic은 이 정의에 따라 자동으로 유효성을 검사하..

[FastAPI] 비동기 처리가 가능한 async 키워드

다음 함수를 설명해 주세요. 이미지의 async 키워드는 FastAPI를 사용한 비동기 함수의 정의에 사용되고 있습니다. async 키워드는 Python에서 비동기 프로그래밍을 가능하게 하는 문법적 요소로, 해당 함수가 'coroutine'이라고 불리는 특별한 유형의 함수임을 나타냅니다. FastAPI는 비동기 프로그래밍을 기본으로 하는 웹 프레임워크이며, async def로 정의된 함수들은 비동기 실행이 가능합니다. 이는 함수 내부에서 await 키워드를 사용하여 I/O 바운드 작업(예: 데이터베이스 조회, 네트워크 요청 등)이 완료될 때까지 기다리는 동안, 이벤트 루프가 다른 작업을 계속 처리할 수 있도록 합니다. 그 결과, 높은 동시성과 향상된 성능을 가진 애플리케이션을 만들 수 있습니다. 함수에 ..

[FastAPI] API란 무엇인가요?

API란? API (Application Programming Interface)는 소프트웨어 또는 애플리케이션 간에 정보를 교환하고 상호작용할 수 있도록 하는 규약 또는 명세입니다. API를 통해 개발자들은 다른 소프트웨어나 서비스의 기능을 자신의 애플리케이션에서 직접 사용할 수 있습니다. API 구성 요소 정의(Definitions): API는 함수나 메서드, 객체 등의 명세를 정의합니다. 이러한 정의들은 API를 사용하는 개발자가 어떤 기능을 사용할 수 있는지, 어떤 매개변수를 제공해야 하는지 등을 명확히 합니다. 프로토콜(Protocols): API는 데이터 교환을 위한 프로토콜을 사용합니다. 예를 들어, 웹 API는 주로 HTTP(S) 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 합니다. ..