LLM 엔지니어링13장 · REST API 와 FastAPI2 / 22← 이전목차다음 →MetaContents

13장. REST API 와 FastAPI

용어 짚고 가기

  • API(Application Programming Interface)프로그램끼리 주고받는 약속입니다. 무엇을 어떤 꼴로 보내면 무엇이 돌아오는지 정합니다. Application(응용 프로그램), Programming(프로그래밍), Interface(맞닿는 면, 창구)의 머리글자입니다.
  • HTTP(HyperText Transfer Protocol)웹에서 요청과 응답을 주고받는 약속입니다. 브라우저도 이것으로 웹 페이지를 받습니다. HyperText(링크로 이어진 글), Transfer(전송), Protocol(통신 규약)의 머리글자입니다.
  • REST(Representational State Transfer)자원을 주소(URL)로, 할 일을 HTTP 메서드로 나타내는 API 설계 방식입니다. 이 방식을 따르면 RESTful 하다고 합니다. Representational(표현한), State(상태), Transfer(전달)의 머리글자로, 자원의 상태를 표현해 주고받는다는 뜻입니다.
  • 엔드포인트(endpoint)API 에서 부를 수 있는 주소와 메서드 하나입니다. POST /predict 같은 것입니다. end(끝)와 point(지점)를 붙인 말로, 요청이 가 닿는 끝 지점이라는 뜻입니다.
  • 메서드(method)요청이 무엇을 하려는지 나타냅니다. GET(읽기), POST(만들기·처리), PUT(바꾸기), DELETE(지우기) 등입니다. method 는 "방법"이라는 뜻입니다.
  • 상태 코드(status code)응답의 결과를 나타내는 세 자리 숫자입니다. 200 은 성공, 404 는 없음, 500 은 서버 오류입니다. status 는 "상태", code 는 "부호"라는 뜻입니다.
  • JSON(JavaScript Object Notation)사전과 목록을 글로 적는 꼴입니다. API 의 요청과 응답 본문에 가장 많이 씁니다. "자바스크립트 객체 표기법"이라는 뜻입니다.
  • FastAPI파이썬 함수에 타입 힌트를 달면 API 와 입력 검사, 문서를 만들어 주는 웹 프레임워크입니다. Fast(빠른)와 API 를 붙인 이름입니다.
  • Pydantic타입 힌트로 데이터의 꼴을 정하고 검사하는 라이브러리입니다. FastAPI 가 입력 검사에 씁니다. Python 의 Py 와 pedantic(꼼꼼히 따지는)을 합친 이름입니다.
  • uvicornFastAPI 앱을 실제 서버로 띄우는 프로그램입니다. 이름의 uv 는 빠른 이벤트 처리 라이브러리 uvloop 에서 왔습니다.
  • 직렬화(serialization)메모리 속의 객체(학습한 모델 등)를 파일로 저장할 수 있게 바꾸는 것입니다. serial 은 "한 줄로 잇따르는"이라는 뜻으로, 객체를 바이트 한 줄로 늘어놓는다는 말입니다.
  • 인증(authentication)요청한 쪽이 누구인지 확인하는 것입니다. 실패하면 401 입니다. authentic(진짜의)에서 온 말로, 진짜 그 사람인지 확인한다는 뜻입니다.
  • 권한(authorization)확인된 사용자가 그 일을 해도 되는지 정하는 것입니다. 실패하면 403 입니다. authorize 는 "권한을 주다, 허락하다"라는 뜻입니다.
  • API 키(API key)요청마다 머리글에 넣어 보내는 비밀 글자입니다. 누가 부르는지 알아보는 데 씁니다. key 는 "열쇠"라는 뜻입니다.
  • JWT(JSON Web Token)사용자 정보와 만료 시각을 담고 서명한 토큰입니다. 서버는 서명만 확인하면 됩니다. JSON 으로 적은 웹용 Token(증표)이라는 뜻의 머리글자입니다.
← 이전 절13장 · 먼저 큰 그림부터다음 절 →13장 · API 와 REST