API가 무엇인가요?

API는 필요한 데이터나 기능을 다른 프로그램, 서버, 서비스에서 가져와 사용할 수 있게 해주는 연결 방식입니다.
예를 들어 날씨 앱이 날씨 정보를 가져오거나, 로그인 기능이 서버와 통신하는 것도 API를 통해 이루어집니다.
파이썬이 무엇인가요?

파이썬은 웹 애플리케이션, 소프트웨어 개발, 데이터 분석, 머신러닝 등 다양한 분야에서 사용되는 프로그래밍 언어입니다.
문법이 비교적 간단해서 입문자가 배우기 좋고, 사용할 수 있는 라이브러리가 많아 실제 개발에서도 많이 활용됩니다.
특히 인공지능 분야가 성장하면서 데이터 처리와 머신러닝 개발에 자주 사용되며, 지금도 높은 인기를 유지하고 있습니다.
FastAPI가 무엇인가요?
FastAPI는 파이썬으로 API 서버를 빠르고 간단하게 만들 수 있는 웹 프레임워크입니다.
프레임워크란 개발에 필요한 규칙과 기능을 미리 정리해둔 도구라고 볼 수 있습니다. FastAPI를 사용하면 API 요청을 받고, 데이터를 처리하고, 응답을 반환하는 구조를 비교적 쉽게 만들 수 있습니다.
FastAPI는 Django, Flask와 함께 많이 사용되는 파이썬 웹 프레임워크 중 하나이며, 속도가 빠르고 문서 자동 생성 기능이 편리하다는 장점이 있습니다.
FastAPI는 파이썬 3.6 이상부터 사용할 수 있습니다.
FastAPI 실습을 위한 설치
실습을 위해 먼저 파이썬과 Visual Studio Code를 설치합니다.
Python 설치 방법
- 위 링크의 파이썬 웹사이트에 접속합니다.

Download버튼을 클릭합니다.

- 다운로드 페이지에서 Python 설치 파일을 내려받습니다.

- 설치 화면에서
Add Python.exe to PATH를 체크한 뒤Install Now를 눌러 설치합니다.
Visual Studio Code 설치 방법

Visual Studio Code 웹사이트에 접속한 뒤 Download for Windows를 클릭하고, 설치 파일을 실행하여 설치합니다.
FastAPI 설치
CMD 또는 Visual Studio Code 터미널을 실행한 뒤 아래 명령어를 입력합니다.
pip install fastapi
pip는 파이썬 라이브러리를 설치하고 관리해주는 도구입니다.
Uvicorn이 무엇인가요?

Uvicorn은 FastAPI 애플리케이션을 실제 웹 서버처럼 실행해주는 ASGI 서버입니다.
FastAPI는 API 요청을 처리하는 코드를 작성할 수 있게 해주지만, 그 코드가 HTTP 요청을 직접 받아 실행되도록 하려면 서버 역할을 하는 프로그램이 필요합니다. 이때 사용하는 것이 Uvicorn입니다.
흐름을 간단히 정리하면 다음과 같습니다.
웹브라우저 또는 Postman → Uvicorn → FastAPI 코드 실행 → 응답 반환
Uvicorn을 사용하는 이유
1. ASGI 서버를 사용할 수 있음
ASGI는 Asynchronous Server Gateway Interface의 약자입니다.
쉽게 말해, 비동기 방식으로 웹 요청을 처리할 수 있게 해주는 서버 인터페이스입니다.
비동기란 하나의 작업이 끝날 때까지 무조건 기다리지 않고, 기다리는 동안 다른 작업도 처리할 수 있는 방식입니다.
예를 들어 API 요청을 기다리거나 데이터베이스 응답을 기다리는 시간 동안 서버가 멈춰 있는 것이 아니라, 다른 요청도 함께 처리할 수 있습니다.


즉, API 요청이 들어오기를 기다리는 동안에도 다른 코드를 실행할 수 있기 때문에 서버 자원을 더 효율적으로 사용할 수 있습니다.
2. FastAPI 애플리케이션을 쉽게 실행할 수 있음
FastAPI로 작성한 코드는 그 자체만으로 웹에서 바로 접근할 수 있는 상태가 아닙니다.
Uvicorn을 사용하면 FastAPI 애플리케이션을 로컬 서버에서 실행할 수 있고, 브라우저나 Postman을 통해 직접 API를 호출해볼 수 있습니다.
Uvicorn 설치
FastAPI를 설치했던 방식과 동일하게 아래 명령어를 입력합니다.
pip install uvicorn
실습을 시작하기 전에
API를 만들고 나면 제대로 동작하는지 테스트할 도구가 필요합니다. 여기서는 Postman을 사용해 API 요청을 보내보겠습니다.
Postman이 무엇인가요?

Postman은 API를 직접 호출하고 테스트할 수 있는 프로그램입니다.
웹브라우저에서도 간단한 GET 요청은 테스트할 수 있지만, Postman을 사용하면 GET, POST 같은 다양한 요청 방식과 Header, Body 같은 추가 정보도 함께 테스트할 수 있습니다.
Postman은 HTTP, HTTPS, WebSocket, Socket.IO 등 다양한 API 형식을 지원합니다.
진짜 실습
아래 코드를 파이썬 파일에 작성합니다.
from fastapi import FastAPI
from datetime import datetime
import random
api = FastAPI()
@api.get('/random_number')
def random_num():
random_number = random.randint(1, 10)
return random_number
@api.get('/Date')
def now_date():
now = datetime.now()
return now.date()
@api.get('/Time')
def now_time():
now = datetime.now()
return now.time()
위 코드의 동작은 다음과 같습니다.
/random_number경로로 GET 요청을 보내면 1부터 10 사이의 랜덤 숫자를 반환합니다./Date경로로 GET 요청을 보내면 현재 날짜를 반환합니다./Time경로로 GET 요청을 보내면 현재 시간을 반환합니다.
Uvicorn으로 FastAPI 파이썬 파일 실행

Visual Studio Code 터미널에서 Uvicorn 실행 명령어를 입력하면 FastAPI 서버를 실행할 수 있습니다.
예를 들어 파이썬 파일 이름이 main.py라면 아래처럼 실행합니다.
uvicorn main:api --reload
여기서 main은 파이썬 파일 이름이고, api는 코드에서 만든 FastAPI 객체 이름입니다.
--reload 옵션을 붙이면 코드를 수정했을 때 서버가 자동으로 다시 실행됩니다.
웹브라우저에서 API 호출해보기

Uvicorn을 실행하면 터미널에 접속 주소가 표시됩니다.
기본 주소는 보통 아래와 같습니다.
http://127.0.0.1:8000
우리가 만든 API 경로를 함께 붙이면 브라우저에서 직접 API를 호출할 수 있습니다.
예를 들어 랜덤 숫자를 불러오려면 아래 주소로 접속합니다.
http://127.0.0.1:8000/random_number
Postman에서 API 호출해보기

Postman을 실행한 뒤 API 호출을 위한 새 요청을 만들어줍니다.

우리가 만든 API는 HTTP 서버로 동작하므로 HTTP를 선택합니다.

요청 방식이 GET으로 되어 있는지 확인한 뒤, 브라우저에서 입력했던 주소와 동일하게 API 주소를 작성합니다.

주소를 입력한 뒤 Send 버튼을 누르면 요청이 전송됩니다.

Postman에서는 단순히 API를 호출하는 것뿐만 아니라 Header, Body 같은 추가 정보도 함께 보낼 수 있습니다.
이 기능을 활용하면 로그인 요청, 데이터 전송 요청, 서버 응답 확인 등 다양한 API 테스트를 진행할 수 있습니다.
