문제: 종합 1

2025. 5. 6. 23:44문제: 고급 웹프로그래밍

문제

  1. uvicorn에 관해 서술하시오.
  2. venv를 이용하여 가상환경을 생성하고 실행하는 명령어를 작성하시오
  3. 아래에 주어진 코드를 보고 문제 답하시오
    1. app은 전체 웹 애플리케이션을 나타내는 최상위 FastAPI 객체다 (o,x)
    2. @app.get("/")는 __ 데코레이터다
    3. def greet()는 __ 함수로, HTTP __ 과 __ 의 주요 접점이다
from fastapi import FastAPI
app = FastAPI()

@app.get("/") 
def greet() -> dict: 
    return {"message": "hello, world!"}`
  1. uvicorn main:app --port 8000 --reload 에 대해 서술하시오
  2. 0.0.0.0으로 서버를 실행하면, 로컬 네트워크에 연결된 모든 기기에서 접근 가능하다 (O,X)
  3. 아래 코드를 보고 물음에 답하시오
    1. who는 URL 경로 매개변수가 아니다 (o,x)
    2. URL 경로 매개변수(path parameters)는 동적인 값을 URL에서 직접 추출하여 사용할 수 있도록 해준다(o,x)
    3. URL 경로 매개변수(path parameters)는 RESTful API에서는 흔히 리소스를 식별하는 용도로 사용된다 (o,x)
@app.get("/hello/{who}")
def hello(who: str) -> dict:
    return {"message": f"{who}"}
  1. ...에 관한 설명으로 옳지 않은 것을 고르시오
    1. 타입 힌팅에서 구현을 생략한다는 의미로 사용
    2. 추상 클래스(abstract class)에서 특정 메서드를 생략할 때 사용
    3. NumPy 같은 라이브러리에서 다차원 배열을 슬라이싱(slicing)할 때 사용
  2. URL의 ?key=value 형식으로 전달되는 데이터를 __ 매개변수라고 한다
  3. FastAPI는 쿼리 매개변수를 수동으로 인식하고 유효성 검사 및 문서화까지 지원(o,x)
  4. 아래의 코드를 참고하여 message: jun을 화면에 출력하기 위한 명령어를 작성하라
@app.get("/hello")
def hello(who: str) -> dict:
    return {"message": f"{who}"}
  1. GET 엔드포인트에 경로 또는 쿼리 매개변수, 요청 본문(request body)의 값을 제공한다 (o,x)
  2. HTTP에서 GET은 멱등성(idempotent)을 지녀야 한다 (o,x)
  3. 요청 본문은__ 하거나 __ 할 때 서버로 정보를 전송하는 데 사용
  4. HTTP 헤더(header)는 요청 및 응답과 함께 전달되는 메타데이터다 (o,x)
  5. 헤더를 필수로 만들려면 기본값을 Header(...)와 같이 ...으로 설정하면 된다(o,x)
  6. 기본적으로 FastAPI는 엔드포인트 함수에서 반환하는 모든 것을 __ 으로 변환함
  7. FastAPI에서는 __ 을 활용하여 요청 및 응답 데이터 구조를 정의할 수 있음
  8. __ 을 사용하면 응답 데이터에서 특정 필드를 제외하거나, 데이터 타입을 변환할 수 있다
  9. FastAPI에서는 BaseModel을 활용하면 응답 데이터를 자동으로 필터링할 수 있다 (o,x)

  1. 파이썬으로만든 ASGI 서버
  2. 아래 참고
    1. python -m venv .venv
    2. .venv/Scripts/activate.ps1 (window) 또는 source .venv/bin/activate( 맥 os)
  3. 아래 참고
    1. o
    2. 경로
    3. 경로, 요청, 응답
  4. main.py 파일 안의 app 객체를 실행하며 PORT는 8000번이고 코드 변경 시 자동으로 서버를 재시작한다
  5. O
  6. 아래 참고
    1. x
    2. o
    3. o
  7. 2: 추상 클래스(abstract class)에서 특정 메서드가 반드시 구현되어야 함을 나타낼 때 사용됨
  8. 쿼리 매개변수(query parameters
  9. x: 자동으로 인식
  10. http "http://localhost:8000/hello?who=jun" 또는 curl "http://localhost:8000/hello?who=jun
  11. x: GET 엔드포인트에 경로 또는 쿼리 매개변수를 제공할 수 있지만, 요청 본문(request body)의 값은 제공할 수 없음
  12. o
  13. 생성(POST), 업데이트(PUT, PATCH)
  14. o
  15. o
  16. json
  17. Pydantic 모델(BaseModel)
  18. response_mode
  19. 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