LabHub
배우기 러닝패스 코스

OTCA — 오픈텔레메트리 인증 어소시에이트 · 컨텍스트 경계: 옆 주문의 태그 찾기 · 퀴즈

퀴즈: 컨텍스트가 넘는 경계

LabHub 에서 이어서 보기

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

  1. Python 3.12에서 alpha 상태로 create_task를 호출한 뒤 호출자만 beta로 바꿨다. 기본 설정 Task의 관측은?

    1. 생성할 때 복사한 alpha를 읽는다
    2. await할 때 호출자의 beta를 읽는다
    3. 스레드가 달라져 빈 값을 읽는다
    4. 호출자의 변경 때문에 예외가 난다
  2. alpha에서 to_thread(fn) 코루틴만 만들고 beta에서 await했더니 fn이 beta를 읽었다. 예약 시점의 alpha를 보존하려면?

    1. fn 안에서 처음으로 현재 문맥을 복사한다
    2. alpha에서 to_thread 코루틴을 Task로 예약한다
    3. await 직전에 호출자 값만 빈 문맥으로 만든다
    4. 스레드가 끝날 때 alpha를 원본에 다시 붙인다
  3. 일반 ThreadPoolExecutor에서 전달도 하고 재사용 워커에 값을 남기지도 않을 구현은?

    1. 워커마다 전역 request 변수를 덮어쓴다
    2. 첫 제출 때 만든 Context를 모두 공유한다
    3. 제출마다 호출자 Context를 복사해 run한다
    4. 작업이 끝난 뒤 제출자의 값을 삭제한다
  4. handle이 정상 반환할 때만 detach한다. 실제 Task.cancel 시험에 필요한 변경은?

    1. 취소를 모두 잡아 정상 결과로 반환한다
    2. 취소된 요청의 baggage를 다음 요청에 남긴다
    3. 콜백을 다시 실행해 정상 종료를 기다린다
    4. finally에서 복구하고 취소도 호출자에게 전한다
  5. 빈 OTel Context를 지정해 role=admin을 추출했다. 이 관측에서 말할 수 있는 것은?

    1. 기존 로컬 baggage와 분리해 외부 값을 읽었다
    2. 새 Context이므로 관리자 권한도 검증됐다
    3. 외부 값이 모든 스팬 속성에 기록됐다
    4. 빈 Context이므로 외부 값도 신뢰할 수 있다
  6. 이 실습의 outbound에 region=test-east와 목적지 warehouse.internal.evil을 주었다. 맞는 반환은?

    1. 허용된 region만 담은 baggage 헤더
    2. 목적지가 정확히 다르므로 빈 dict
    3. 원본을 지우고 region만 남긴 Context
    4. 접두어를 잘라 정상 호스트로 바꾼 dict