# 핵심 용어집 (Glossary) AI Lecture 시리즈 전반에 걸쳐 사용되는 주요 기술 용어들을 알파벳 순으로 정리했습니다. --- ### A - **API (Application Programming Interface)** - **정의**: 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘. 웹 API는 클라이언트(예: 웹 브라우저, 모바일 앱)가 서버의 기능이나 데이터에 접근할 수 있도록 미리 정해놓은 규칙의 집합입니다. - **비유**: 식당의 메뉴판. 손님(클라이언트)은 메뉴판(API)을 보고 주문(요청)할 수 있으며, 주방(서버)은 정해진 메뉴에 따라 음식을 만들어 제공(응답)합니다. - **관련 파트**: [Part 6](part_6_model_serving_with_fastapi.md), [Part 7](part_7_production_ready_api.md) - **ASGI (Asynchronous Server Gateway Interface)** - **정의**: 비동기 파이썬 웹 서버와 프레임워크(예: FastAPI, Starlette)가 통신하기 위한 표준 인터페이스. 많은 수의 I/O 바운드 작업을 동시에 효율적으로 처리하는 데 강점이 있습니다. - **비교**: WSGI(Web Server Gateway Interface)는 동기식 파이썬 웹 프레임워크(예: Flask, Django)를 위한 전통적인 인터페이스입니다. ASGI는 WSGI의 후속 버전으로 비동기 기능을 지원합니다. - **관련 파트**: [Part 6](part_6_model_serving_with_fastapi.md) ### D - **Dependency Injection (의존성 주입)** - **정의**: 객체가 필요로 하는 다른 객체(의존성)를 외부에서 직접 생성하여 전달하는 디자인 패턴. 객체 스스로 의존성을 생성하지 않으므로, 코드의 결합도(Coupling)를 낮추고 유연성과 테스트 용이성을 높입니다. - **예시**: FastAPI에서 `Depends`를 사용하여 데이터베이스 세션(`db: Session = Depends(get_db)`)을 라우터 함수에 주입하는 것. 이를 통해 라우터 함수는 DB 세션 생성 방법을 알 필요 없이 사용에만 집중할 수 있습니다. - **관련 파트**: [Part 7](part_7_production_ready_api.md) ### E - **Endpoint (엔드포인트)** - **정의**: API가 리소스에 접근할 수 있도록 제공하는 최종 통신 지점의 URL. 각 엔드포인트는 특정 기능(예: 사용자 정보 조회, 상품 추가)과 연결됩니다. - **예시**: `https://api.example.com/users/123` 에서 `/users/123` 부분이 엔드포인트입니다. - **관련 파트**: [Part 6](part_6_model_serving_with_fastapi.md) ### H - **HTTP (HyperText Transfer Protocol)** - **정의**: 클라이언트와 서버가 웹에서 데이터를 주고받기 위해 사용하는 통신 규약. `GET`(조회), `POST`(생성), `PUT`(수정), `DELETE`(삭제)와 같은 메서드를 사용하여 특정 작업을 요청합니다. - **관련 파트**: [Part 6](part_6_model_serving_with_fastapi.md) ### O - **ORM (Object-Relational Mapping)** - **정의**: 객체 지향 프로그래밍 언어(예: 파이썬)의 객체(Class)와 관계형 데이터베이스(RDB)의 테이블을 자동으로 매핑(연결)해주는 기술. 개발자는 SQL 쿼리를 직접 작성하는 대신, 익숙한 프로그래밍 언어의 코드로 데이터베이스를 조작할 수 있습니다. - **예시**: SQLAlchemy 라이브러리를 사용하여 파이썬 클래스로 DB 테이블을 정의하고, 파이썬 코드로 데이터를 추가/조회하는 것. - **관련 파트**: [Part 7](part_7_production_ready_api.md) ### P - **Pydantic** - **정의**: 파이썬의 타입 힌트(Type Hint)를 사용하여 데이터의 유효성을 검사하고 설정을 관리하는 라이브러리. FastAPI에서 요청 및 응답 데이터의 형식을 정의하고 자동으로 검증하는 데 핵심적인 역할을 합니다. - **장점**: 개발자가 직접 데이터 검증 코드를 작성할 필요 없이, 모델 클래스를 정의하는 것만으로 복잡한 데이터 유효성 검사를 수행할 수 있어 코드의 안정성과 가독성을 크게 향상시킵니다. - **관련 파트**: [Part 7](part_7_production_ready_api.md)