LabHub

FastAPI — 타입이 곧 계약이다 · 계약과 수명 · 퀴즈

FastAPI 확인

LabHub 에서 이어서 보기

문항 8개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. `async def` 핸들러 안에서 `time.sleep(1)` 을 하면?

    1. 그 요청만 1초 늦는다
    2. FastAPI 가 자동으로 스레드로 옮긴다
    3. 예외가 난다
    4. 서버 전체가 1초 동안 다른 요청을 처리하지 못한다
  2. 같은 코드를 `def`(동기)로 선언하면 무엇이 달라지나?

    1. FastAPI 가 스레드풀로 보내 준다
    2. 선언 방식만 다르고 동작은 같다
    3. 스레드 전환 때문에 더 느려진다
    4. 요청 본문 타입 검사가 꺼진다
  3. 스키마에 맞지 않는 본문이 오면 FastAPI 가 주는 상태 코드는?

    1. 400 Bad Request
    2. 500 Internal Server Error
    3. 422 Unprocessable Entity
    4. 409 Conflict
  4. `response_model` 의 가장 실무적인 효과는?

    1. 직렬화를 건너뛰어 응답이 빨라진다
    2. 정의되지 않은 필드는 응답에서 빠진다
    3. 요청 본문을 같은 모델로 검증한다
    4. 응답을 자동으로 캐시해 준다
  5. `Depends` 로 만든 의존성이 테스트에서 갖는 이점은?

    1. 프로덕션 코드를 안 고치고 갈아 끼운다
    2. 테스트 실행이 더 빨라진다
    3. 자동으로 목(mock)이 생긴다
    4. 핸들러의 타입 힌트가 느슨해진다
  6. `BackgroundTasks` 에 대한 올바른 설명은?

    1. Celery 같은 분산 작업 큐다
    2. 응답 후 같은 프로세스에서 실행된다
    3. 별도 워커 컨테이너에서 실행된다
    4. 실패하면 자동으로 재시도한다
  7. `uvicorn --workers 4` 로 띄웠을 때 주의할 점은?

    1. CPU 를 항상 네 배로 쓴다
    2. 포트를 4개 열어 줘야 한다
    3. async 핸들러가 동기로 바뀐다
    4. 프로세스가 4개라 전역 변수를 공유하지 않는다
  8. 시작할 때 커넥션 풀을 여는 요즘 방식은?

    1. @app.on_event("startup")
    2. 모듈 최상단에서 그냥 연다
    3. lifespan 컨텍스트 매니저
    4. 미들웨어의 첫 요청에서 연다