문제 1. FastAPI 프레임워크의 주요 특징으로 옳은 것을 모두 고르시오.
ㄱ. Python 타입 힌트를 활용할 수 있다.
ㄴ. 자동으로 Swagger UI 기반 문서를 제공한다.
ㄷ. RESTful API를 만들 수 없다.
ㄹ. 실험용뿐 아니라 운영 환경에서도 활용 가능하다.
① ㄱ, ㄴ
② ㄴ, ㄷ
③ ㄱ, ㄴ, ㄹ
④ ㄱ, ㄷ, ㄹ
✅ 정답: ③
📖 해설: FastAPI는 Python 타입 힌트를 기반으로 동작하며, 자동 문서화(/docs 제공), RESTful API 구축, 운영 환경 활용이 모두 가능하다 .
문제 2. FastAPI에서 가장 흔히 사용하는 HTTP 메서드에 해당하지 않는 것은?
① GET
② POST
③ UPDATE
④ DELETE
✅ 정답: ③
📖 해설: HTTP 메서드는 GET/POST/PUT/DELETE가 일반적이며, UPDATE는 존재하지 않는다 .
문제 3. 강의 실습에서 OpenAI Assistant와 연결할 때 config.py 파일을 만든 이유로 가장 적절한 것은?
① FastAPI 실행 속도를 높이기 위해서
② API Key와 Assistant ID를 코드와 분리해 보안 및 유지보수성을 확보하기 위해
③ requirements.txt를 자동 생성하기 위해
④ Dockerfile 실행을 단순화하기 위해
✅ 정답: ②
📖 해설: API Key 및 Assistant ID를 별도 설정 파일(config.py)로 분리하면 보안성, 유지보수성, 배포 전략(blue-green, shadow deployment)에 유리하다 .
문제 4. FastAPI에서 사용자 입력을 검증하기 위해 사용한 Python 라이브러리는 무엇인가?
① NumPy
② Pydantic
③ Pandas
④ Requests
✅ 정답: ②
📖 해설: 강의에서는 Pydantic의 BaseModel을 상속받아 입력 데이터(text)가 문자열인지 검증했다 .
문제 5. Postman으로 FastAPI의 /response 엔드포인트를 테스트하려고 한다. 올바른 요청 Body(JSON)는 무엇인가?
① { "message": "Hello" }
② { "text": "Who is the hero of the story?" }
③ { "prompt": "Hello" }
④ { "query": "test" }
✅ 정답: ②
📖 해설: /response는 text 필드로 사용자 입력을 받도록 정의되었으며, 이 값이 프롬프트로 전달된다 .
문제 6. 다음 중 requirements.txt에 반드시 포함된 라이브러리가 아닌 것은?
① openai
② fastapi
③ uvicorn
④ scikit-learn
✅ 정답: ④
📖 해설: 실습에서는 openai, fastapi==0.109.0, uvicorn[standard]를 사용했으며, scikit-learn은 포함되지 않았다 .
문제 7. FastAPI + OpenAI Assistant 통합 과정에서 스레드(thread)를 생성하는 이유로 가장 적절한 것은?
① API Key 인증을 단순화하기 위해
② 여러 사용자의 대화 상태를 분리하여 관리하기 위해
③ FastAPI 서버의 속도를 높이기 위해
④ requirements.txt 의존성 설치를 위해
✅ 정답: ②
📖 해설: OpenAI Assistant API에서는 스레드를 통해 대화 맥락을 유지하며 사용자별 세션을 관리한다 .
문제 8. 운영 환경에서 uvicorn main:app --reload 대신 uvicorn.run(app, host="0.0.0.0", port=80)을 사용하는 이유로 옳은 것은?
① reload 기능이 운영 환경에서는 필요하지 않기 때문에
② 보안을 위해 port 80만 허용되기 때문에
③ Windows에서는 --reload 옵션을 사용할 수 없기 때문에
④ Postman과의 호환성을 위해
✅ 정답: ①
📖 해설: 운영 환경에서는 코드가 자동으로 재시작되는 --reload 옵션이 불필요하며, 대신 명시적으로 host와 port를 설정하여 안정적인 실행을 보장한다 .