API 관측성: 신호를 의사결정에 연결하기

핵심 요약

가용성 대시보드만으로 느리거나 잘못된 작업을 모두 설명할 수 없습니다. 사용자 경로에서 시작해 진단에 필요한 측정, 이벤트, 의존성을 연결하세요.

빈 장비실의 통신 랙과 네트워크 배선
이 글의 목차

질문에 맞는 신호 선택

OpenTelemetry는 메트릭, 로그, 추적 등을 구분합니다. 서로 보완하지만 완전한 가시성을 보장하지는 않습니다. 측정 기간, 계측 지점, 제외 범위를 기록하세요. 평균만 보면 느린 요청이 가려질 수 있습니다.

질문유용한 신호한계
요청이 얼마나 실패하는가?집계 메트릭실패, 범위, 기간을 정의해야 함.
어디에 시간이 쓰였는가?추적과 단계별 시간샘플링과 미계측 의존성.
어떤 이벤트가 있었는가?구조화 로그비밀이나 과도한 데이터 제외.
사용 경로가 동작하는가?기능 점검한 시나리오가 모든 사용을 다루지는 못함.

실행 가능한 진단 만들기

  • 정규화한 작업별로 처리량, 오류, 시간 분포를 측정하세요. 사용자 식별자와 변동 URL을 메트릭 레이블로 쓰지 마세요.
  • 이벤트를 상관관계 식별자와 서비스 버전에 연결하세요. 누락된 추적을 찾기 전에 문맥 전파와 샘플링 정책을 확인하세요.
  • 알림마다 영향, 담당자, 첫 조치를 정하세요. 점검에는 전용 계정을 쓰고 되돌릴 수 없는 작업은 피하세요.

데이터 보호와 결과 검증

비밀번호, 토큰, 민감한 본문을 로그에서 제외하고 접근과 보관을 제한하세요. HTTP 성공에도 잘못된 업무 결과가 담길 수 있습니다. 통제된 환경에서 기대 조건과 권한도 검증하세요.

1차 자료

원격 측정 데이터를 사용자 작업에 연결합니다.

메트릭, 로그 및 추적은 서로 다른 질문에 대한 답을 제공합니다. 높은 가동 시간은 결제 또는 로그인 과정의 실패를 숨길 수 있습니다. 사용자가 기대하는 결과를 정의한 다음, 해당 결과를 제공하는 호출을 계측합니다.

  • 성공, 지연 시간 및 사용자에게 표시되는 실패에 대한 여정 표시기를 선택합니다.
  • 추적에서 민감한 데이터를 제한하면서 서비스 간 상관 관계를 전파합니다.
  • 종속성 실패를 시뮬레이션하여 경고가 조치로 이어지고 이해하기 쉬운 성능 저하 모드로 전환되는지 확인합니다.

1차 자료: OpenTelemetry — Observability primer. 관련 방법: 실무 가이드 읽기.

수집 장애: 로그와 누락 이벤트 대조

생성, 수신과 사용 가능한 이벤트를 구분하며 기록이 없음을 사고가 없다는 증거로 보지 않습니다.

  • 애플리케이션, 수집기, 저장소와 책임자를 정리합니다. 비밀이나 고객 데이터 없이 안정된 식별자의 유한한 가상 이벤트 열을 준비합니다. 이벤트 시각과 관찰 시각을 보존합니다. 수집 지연이 자동으로 손실을 의미하지는 않습니다.
  • 시험에서 목적지를 중단한 뒤 복구합니다. 대기열, 재시도, 거부와 재시작을 관찰합니다. 영구 대기열은 일부 손실을 줄이지만 용량이 제한되고 저장소에 의존합니다. 가득 찼을 때 행동을 정하고 수집이 서비스를 조용히 막지 않는지 확인합니다.
  • 같은 관찰 마감에서 기준과 실제 읽을 수 있는 이벤트를 대조합니다. 중복, 지연과 누락을 따로 셉니다. 네트워크 확인이 최종 사용 가능성을 입증하지는 않습니다. 신뢰할 기준이 없으면 범위 미확인으로 표시하고 손실이나 사고 0으로 쓰지 않습니다.

재현 가능한 수락 사례

가상 예시입니다. 고객이나 실제 관측 결과를 나타내지 않습니다.

사례 입력 보기
{
    "expected_ids": [
        "E1",
        "E2",
        "E3"
    ],
    "received_ids": [
        "E1",
        "E1",
        "E3"
    ],
    "received_rows": 3,
    "unique_received": 2,
    "missing_ids": [
        "E2"
    ],
    "observation_cutoff": "same_for_both_sets"
}

예상 판단

가상 예: E1, E2, E3을 기대하지만 E1, E1, E3을 받습니다. 세 행은 완전성을 입증하지 못합니다. E1이 중복되고 마감에 E2가 빠집니다.

OpenTelemetry — Collector resiliency

세 행을 받으면 세 이벤트를 보존한 것인가요?

아닙니다. 두 행이 같은 식별자를 반복해 누락을 숨길 수 있습니다. 식별자, 관찰 기간과 처리 단계를 비교하세요.

1차 자료: OpenTelemetry — Collector resiliency. 관련 방법: 실무 가이드 읽기.

방치된 하위 도메인: CNAME 참조를 통제하며 제거

DNS 이름을 통제 중인 리소스에 연결하고 서비스 해제 전에 의존성을 닫습니다.

  • 공개 이름, CNAME 체인, 공급자 리소스와 담당자를 기록하고 권한 있는 계정 목록과 DNS를 대조합니다. HTTP 오류, NXDOMAIN 또는 리소스 부재만으로 탈취 가능성을 입증할 수 없습니다. 공급자 보호를 확인합니다.
  • 해제 전에 참조를 삭제하거나 통제 중인 대상으로 바꿉니다. 이전 TTL과 캐시를 고려하고 권한 DNS 및 여러 리졸버를 확인합니다. 필요한 소유 검증은 유지하고 TXT를 모두 지우지 않습니다.
  • 링크, 리디렉션, OAuth 콜백, 웹훅과 쿠키 도메인을 확인합니다. 이미 해제됐다면 DNS를 수정하고 사고 절차로 노출을 조사합니다. 삭제마다 DNS와 리소스를 대조합니다.

재현 가능한 수락 사례

가상 예시입니다. 고객이나 실제 관측 결과를 나타내지 않습니다.

사례 입력 보기
{
    "name": "portal.example",
    "cname_present": true,
    "resource_deleted": true,
    "provider_claimability": "not_verified",
    "takeover_observed": false,
    "expected": "remove_or_replace_mapping_and_review_exposure"
}

예상 판단

가상 예: portal.example이 삭제된 리소스를 가리킵니다. CNAME을 제거하거나 통제하는 대상으로 바꾸세요. 리소스 부재만으로 제삼자 탈취를 입증할 수 없습니다.

Microsoft — Prevent dangling DNS entries

1차 자료: Microsoft — Prevent dangling DNS entries. 관련 방법: 실무 가이드 읽기.

API 재시도: 전체 시간 예산 계산하기

호출, 대기, 전체 경로를 구분하세요.

가상의 교육용 사례로 CIE나 고객 실적이 아닙니다.

가상 모델은 호출 네 번 각 최대 250밀리초, 대기 100, 200, 400입니다. 지터, 연결, 대기열, 로컬 검증은 제외됩니다.

총 시도
41 + 3
누적 대기(ms)
700100 + 200 + 400
모델 예산(ms)
17004 × 250 + 700
순서 분해
단계최대 호출(ms)다음 대기(ms)
시도 1250100
시도 2250200
시도 3250400
시도 42500
합계1000700
모델 시간(ms)
  • 호출 시간1,000
  • 누적 대기700
  • 전체 기한(ms)1,500

결론 전 확인

  1. 1,000 + 700 = 1,700은 기한 1,500밀리초를 넘습니다.
  2. 전체 기한을 전달하고 중복 효과를 막으세요. 시간 초과는 원격 취소를 입증하지 않습니다.

재시도 시간 예산 계산

n × T + W × (2^(n−1) − 1)

관련 방법: 실무 가이드 읽기.

참고 자료: 데이터, 용도와 한계

문서 검토일 .

이 언어판의 상세 참고 설명은 영어로 제공됩니다.

참고 자료: 데이터, 용도와 한계
출처와 목적확인된 데이터 또는 기준사용 방법유지해야 할 한계
NIST · SP 800-61 Rev. 3

Prepare incident response within cybersecurity risk management.

Revision 3 was published in April 2025 and supersedes Revision 2. It is a CSF 2.0 Community Profile. Rehearse containment decisions, evidence preservation, communication and recovery. Compare planned actions with evidence produced during the exercise.

방법 자세히 보기 →

Reading the guide does not validate a local plan. Contacts, emergency access and dependencies need local testing.
Google · Core Web Vitals

Distinguish loading, responsiveness and visual stability.

Good thresholds are LCP ≤ 2.5 s, INP ≤ 200 ms and CLS ≤ 0.1 at the 75th percentile, segmented by mobile and desktop. Separate field measurement from laboratory tests. Record period, URL, device, population and sample size before comparing changes.

방법 자세히 보기 →

These thresholds are not measured results for this site. A good lab score alone does not establish visitor experience.

API 사용 중단과 종료

이 언어판의 상세 참고 설명은 영어로 제공됩니다.

Announced retirement and continuity to verify

A Sunset field signals intent; it establishes neither actual shutdown nor guaranteed continuity until then. Prepare dependencies, data and access to move.

  • Identify the announcement’s exact scope and owner.
  • Keep dates and updates with receipt evidence.
  • Test exit, in-flight operations and removal of obsolete access.

Compare deprecation and retirement announcements →

IETF · RFC 9745 · Deprecation · Standards Track · March 2025 · §2–5 · consulted 2026-10-23

IETF · RFC 8594 · Sunset · Informational · May 2019 · §3–5, §8 · consulted 2026-10-23