문제: 종합 1
2025. 5. 6. 23:44ㆍ문제: 고급 웹프로그래밍
문제
- uvicorn에 관해 서술하시오.
- venv를 이용하여 가상환경을 생성하고 실행하는 명령어를 작성하시오
- 아래에 주어진 코드를 보고 문제 답하시오
- app은 전체 웹 애플리케이션을 나타내는 최상위 FastAPI 객체다 (o,x)
- @app.get("/")는 __ 데코레이터다
- def greet()는 __ 함수로, HTTP __ 과 __ 의 주요 접점이다
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def greet() -> dict:
return {"message": "hello, world!"}`
uvicorn main:app --port 8000 --reload
에 대해 서술하시오- 0.0.0.0으로 서버를 실행하면, 로컬 네트워크에 연결된 모든 기기에서 접근 가능하다 (O,X)
- 아래 코드를 보고 물음에 답하시오
- who는 URL 경로 매개변수가 아니다 (o,x)
- URL 경로 매개변수(path parameters)는 동적인 값을 URL에서 직접 추출하여 사용할 수 있도록 해준다(o,x)
- URL 경로 매개변수(path parameters)는 RESTful API에서는 흔히 리소스를 식별하는 용도로 사용된다 (o,x)
@app.get("/hello/{who}")
def hello(who: str) -> dict:
return {"message": f"{who}"}
...
에 관한 설명으로 옳지 않은 것을 고르시오- 타입 힌팅에서 구현을 생략한다는 의미로 사용
- 추상 클래스(abstract class)에서 특정 메서드를 생략할 때 사용
- NumPy 같은 라이브러리에서 다차원 배열을 슬라이싱(slicing)할 때 사용
- URL의 ?key=value 형식으로 전달되는 데이터를 __ 매개변수라고 한다
- FastAPI는 쿼리 매개변수를 수동으로 인식하고 유효성 검사 및 문서화까지 지원(o,x)
- 아래의 코드를 참고하여
message: jun
을 화면에 출력하기 위한 명령어를 작성하라
@app.get("/hello")
def hello(who: str) -> dict:
return {"message": f"{who}"}
- GET 엔드포인트에 경로 또는 쿼리 매개변수, 요청 본문(request body)의 값을 제공한다 (o,x)
- HTTP에서 GET은 멱등성(idempotent)을 지녀야 한다 (o,x)
- 요청 본문은__ 하거나 __ 할 때 서버로 정보를 전송하는 데 사용
- HTTP 헤더(header)는 요청 및 응답과 함께 전달되는 메타데이터다 (o,x)
- 헤더를 필수로 만들려면 기본값을 Header(...)와 같이 ...으로 설정하면 된다(o,x)
- 기본적으로 FastAPI는 엔드포인트 함수에서 반환하는 모든 것을 __ 으로 변환함
- FastAPI에서는 __ 을 활용하여 요청 및 응답 데이터 구조를 정의할 수 있음
- __ 을 사용하면 응답 데이터에서 특정 필드를 제외하거나, 데이터 타입을 변환할 수 있다
- FastAPI에서는 BaseModel을 활용하면 응답 데이터를 자동으로 필터링할 수 있다 (o,x)
답
- 파이썬으로만든 ASGI 서버
- 아래 참고
- python -m venv .venv
- .venv/Scripts/activate.ps1 (window) 또는 source .venv/bin/activate( 맥 os)
- 아래 참고
- o
- 경로
- 경로, 요청, 응답
- main.py 파일 안의 app 객체를 실행하며 PORT는 8000번이고 코드 변경 시 자동으로 서버를 재시작한다
- O
- 아래 참고
- x
- o
- o
- 2: 추상 클래스(abstract class)에서 특정 메서드가 반드시 구현되어야 함을 나타낼 때 사용됨
- 쿼리 매개변수(query parameters
- x: 자동으로 인식
- http "http://localhost:8000/hello?who=jun" 또는 curl "http://localhost:8000/hello?who=jun
- x: GET 엔드포인트에 경로 또는 쿼리 매개변수를 제공할 수 있지만, 요청 본문(request body)의 값은 제공할 수 없음
- o
- 생성(POST), 업데이트(PUT, PATCH)
- o
- o
- json
- Pydantic 모델(BaseModel)
- response_mode
- x : response_model
반응형
'문제: 고급 웹프로그래밍' 카테고리의 다른 글
문제: API (0) | 2025.05.07 |
---|---|
문제: Starlette과 비동기, 동시성 (0) | 2025.05.07 |
문제: 도커 (0) | 2025.05.06 |
문제: GitHub (0) | 2025.05.06 |
문제: 개발 환경 구축 (0) | 2025.05.06 |