학습 목표

Amazon CloudWatch — 지표, 로그, 알람

CloudWatch는 세 가지를 담습니다. 지표(metric)는 시간에 따른 숫자, 로그(log)는 텍스트 이벤트, 알람(alarm)은 지표가 조건을 만족할 때 동작을 일으키는 장치입니다. 이 셋이 어떻게 연결되는지가 이 절의 전부입니다.

CloudWatch 지표 · 로그 · 알람의 연결 경로 위쪽 줄은 지표 경로입니다. AWS 리소스가 지표를 내보내고, 알람이 그 지표를 감시하다가 조건을 만족하면 Amazon SNS 알림, Auto Scaling 조정, EC2 중지나 종료 같은 동작을 일으킵니다. 아래쪽 줄은 로그 경로이며 두 갈래로 갈립니다. 첫째 갈래는 지표 필터입니다. 로그 그룹에 들어온 로그에서 패턴을 뽑아 지표로 바꾸면 그 지표를 알람이 감시할 수 있습니다. 화살표가 위쪽 알람으로 올라가는 것이 그 경로입니다. 둘째 갈래는 구독 필터입니다. 로그를 AWS Lambda 나 Kinesis Data Firehose 로 실시간 전달해 별도 처리 파이프라인에 넘깁니다. 아래 주의 상자는 시험이 노리는 지점입니다. 메모리 사용률과 디스크 사용률은 하이퍼바이저가 볼 수 없는 게스트 OS 안의 값이라 EC2 기본 지표에 들어 있지 않습니다. CloudWatch 에이전트를 설치해 사용자 지정 지표로 올려야 알람을 걸 수 있습니다. 지표 경로 AWS 리소스 EC2 · RDS · ALB 지표 (Metrics) 기본 지표 + 사용자 지정 지표 알람 (Alarm) 평가 기간 동안 판정 Amazon SNS Auto Scaling EC2 중지 · 종료 로그 경로 — 두 갈래로 갑니다 로그 그룹 CloudWatch Logs 지표 필터 패턴을 지표로 지표가 되어 알람으로 구독 필터 실시간 스트림 AWS Lambda Kinesis Data Firehose 메모리 사용률과 디스크 사용률은 EC2 기본 지표가 아닙니다 게스트 OS 안의 값이므로 CloudWatch 에이전트를 설치해 사용자 지정 지표로 올려야 알람을 걸 수 있습니다 알람은 지표에만 걸립니다 — 로그로 알람을 걸려면 먼저 지표 필터로 지표를 만듭니다
CloudWatch의 세 요소와 연결 경로 — 지표는 알람을 거쳐 Amazon SNS · Auto Scaling · EC2 동작으로 이어지고, 로그는 지표 필터를 거쳐 지표가 되거나 구독 필터를 거쳐 Lambda나 Kinesis로 실시간 전달됩니다. 메모리와 디스크 사용률은 기본 지표가 아니어서 CloudWatch 에이전트를 통해 별도로 올려야 한다는 사실도 함께 표시됩니다

지표 — 해상도와 사용자 지정 지표

AWS 서비스는 지표를 자동으로 CloudWatch에 보냅니다. Amazon EC2의 경우 기본 모니터링에서는 데이터 포인트가 5분 단위로 제공되고, 세부 모니터링을 켜면 1분 단위가 됩니다. 기본 모니터링에는 추가 요금이 없고, 세부 모니터링은 전송되는 지표마다 요금이 붙습니다.

직접 올리는 사용자 지정 지표에는 해상도 선택지가 하나 더 있습니다. PutMetricData의 StorageResolution 값이 60이면 1분 해상도이고, 1로 지정하면 1초 단위까지 저장하는 고해상도 지표가 됩니다. API 문서는 고해상도가 사용자 지정 지표에서만 제공된다고 명시합니다.

put-custom-metric.sh — 고해상도 사용자 지정 지표 전송 (네임스페이스와 값은 예시입니다)
aws cloudwatch put-metric-data \
  --namespace 'Example/OrderService' \
  --metric-data '[
    {
      "MetricName": "QueueBacklog",
      "Dimensions": [{"Name":"Env","Value":"prod"}],
      "Value": 128,
      "Unit": "Count",
      "StorageResolution": 1
    }
  ]'

로그 — 지표 필터와 구독 필터는 다르다

CloudWatch Logs는 로그 이벤트를 로그 그룹 아래 로그 스트림으로 담습니다. 로그 그룹에는 보존 정책을 걸 수 있고, 걸지 않으면 무기한 보관됩니다. 비용 항목이 되므로 보존 기간을 정해 두는 것이 기본입니다.

로그에서 무언가를 꺼내는 방법은 두 가지이며, 목적이 다릅니다.

지표 필터와 구독 필터의 차이
항목 지표 필터(metric filter) 구독 필터(subscription filter)
하는 일 패턴에 맞는 로그 이벤트를 세어 CloudWatch 지표로 만듭니다 로그 이벤트를 실시간 스트림으로 다른 서비스에 전달합니다
결과 지표 → 알람 → 알림·동작 Amazon Kinesis Data Streams, Amazon Data Firehose, AWS Lambda로 전달
쓰는 상황 "로그에 ERROR가 N번 넘게 나오면 알림" "로그를 실시간으로 가공해 다른 저장소로 보낸다", "여러 계정의 로그를 한 계정으로 모은다"
제약 추출된 지표는 사용자 지정 지표로 과금됩니다. 카디널리티가 높은 값을 차원으로 쓰지 않습니다 로그 그룹 하나에 구독 필터를 최대 2개까지 붙일 수 있습니다
error-metric-filter.sh — 로그에서 오류를 세어 지표로 만들고 알람을 거는 흐름 (이름은 예시입니다)
aws logs put-metric-filter \
  --log-group-name /app/order-service \
  --filter-name error-count \
  --filter-pattern 'ERROR' \
  --metric-transformations \
      metricName=OrderServiceErrors,metricNamespace=Example/OrderService,metricValue=1

aws cloudwatch put-metric-alarm \
  --alarm-name order-service-errors \
  --namespace Example/OrderService \
  --metric-name OrderServiceErrors \
  --statistic Sum \
  --period 300 \
  --evaluation-periods 1 \
  --threshold 10 \
  --comparison-operator GreaterThanThreshold \
  --treat-missing-data notBreaching \
  --alarm-actions arn:aws:sns:ap-northeast-2:123456789012:ops-alerts

알람 — 결측 데이터와 복합 알람

알람은 지표가 평가 기간 동안 조건을 만족하는지 보고 OK · ALARM · INSUFFICIENT_DATA 세 상태 사이를 오갑니다. 여기서 두 가지가 시험에 나옵니다.

첫째, 결측 데이터 처리입니다. TreatMissingData의 값은 breaching · notBreaching · ignore · missing 네 가지이고, 지정하지 않으면 기본값은 missing입니다. 데이터가 드문드문 들어오는 지표에 알람을 걸면 이 설정 때문에 알람이 계속 울리거나 아예 울리지 않는 일이 생깁니다.

둘째, 복합 알람입니다. 다른 알람들의 상태를 규칙식으로 조합해 만드는 알람이며, API 문서는 규칙식에 최대 100개의 하위 알람을 넣을 수 있다고 명시합니다. 여러 알람이 동시에 울려 알림이 쏟아지는 것을 줄이는 것이 목적입니다.

알람이 일으킬 수 있는 대표 동작
동작 쓰는 상황
Amazon SNS 알림 운영자에게 알리거나, 구독한 Lambda 함수로 후속 처리를 트리거합니다
Auto Scaling 정책 실행 지표 기반으로 인스턴스 수를 늘리거나 줄입니다(7장)
EC2 동작 상태 확인에 실패한 인스턴스를 재부팅하거나 복구합니다

대시보드

대시보드는 여러 리전과 계정의 지표를 한 화면에 모읍니다. 시험에서 대시보드 자체를 깊게 묻지는 않지만, "여러 계정의 운영 지표를 한곳에서 본다"는 요구가 나오면 교차 계정 대시보드가 답의 일부가 됩니다.

CloudTrail · Config · CloudWatch — 세 가지 질문 SAA 빈출

이 세 서비스를 구분하는 방법은 기능을 외우는 것이 아니라 각자 답하는 질문을 하나씩 붙여 두는 것입니다. 시험은 이 구분만 반복해서 묻습니다.

CloudTrail · AWS Config · CloudWatch 에 질문을 하나씩 배정 세 서비스를 세 열로 놓고 각 열 맨 위에 그 서비스가 답하는 질문을 하나씩 붙였습니다. 첫째 열의 질문은 누가 무엇을 호출했는가입니다. 답하는 서비스는 AWS CloudTrail 이며 API 호출 이벤트를 남깁니다. 호출자 신원, 시각, 소스 IP, 요청과 응답 요소가 기록되므로 감사 추적과 누가 삭제했는지 조사하는 시나리오가 이 서비스를 지목합니다. 둘째 열의 질문은 리소스 구성이 규칙을 지키는가입니다. 답하는 서비스는 AWS Config 이며 리소스의 구성 항목 스냅샷과 변경 이력, 그리고 규칙 준수 여부를 남깁니다. 규정 준수 평가와 설정이 언제 어떻게 바뀌었는지를 묻는 시나리오가 이 서비스를 지목합니다. 셋째 열의 질문은 지금 얼마나 잘 동작하는가입니다. 답하는 서비스는 Amazon CloudWatch 이며 지표와 로그, 알람 상태, 대시보드를 다룹니다. 성능과 사용률 감시, 임계값을 넘으면 알림을 보내라는 시나리오가 이 서비스를 지목합니다. 감사와 규정 준수 시나리오에서 서비스를 고르는 유일한 기준은 문제문이 이 세 질문 가운데 어느 것을 하고 있는가입니다. 질문이 서비스를 고릅니다 누가 무엇을 호출했는가 AWS CloudTrail 남기는 것 API 호출 이벤트 호출자 · 시각 · 소스 IP 요청과 응답 요소 문제문의 신호 감사 추적이 필요하다 누가 지웠는지 조사 리소스 구성이 규칙을 지키는가 AWS Config 남기는 것 구성 항목 스냅샷 구성 변경 이력 규칙 준수 여부 문제문의 신호 규정 준수를 평가 설정이 언제 바뀌었나 지금 얼마나 잘 동작하는가 Amazon CloudWatch 남기는 것 지표와 로그 알람 상태 대시보드 문제문의 신호 성능 · 사용률 감시 임계값을 넘으면 알림 서비스를 고르는 유일한 기준은 문제문이 어느 질문을 하고 있는가입니다
세 서비스에 질문을 하나씩 배정한 그림 — AWS CloudTrail은 "누가 무엇을 호출했는가", AWS Config는 "리소스 구성이 규칙을 지키는가", Amazon CloudWatch는 "지금 얼마나 잘 동작하는가"에 답합니다. 감사·규정 준수 시나리오에서 서비스를 고르는 유일한 기준이 이 질문 구분입니다
CloudTrail · AWS Config · CloudWatch가 답하는 질문
서비스 답하는 질문 기록 단위 문제문의 신호
AWS CloudTrail 누가 언제 어떤 API를 호출했는가 API 호출 이벤트 "누가 삭제했는지 밝혀야 한다", "감사 추적", "API 활동 기록"
AWS Config 리소스 구성이 규칙에 맞는가, 언제 어떻게 바뀌었는가 리소스 구성 항목과 이력 "규정 준수 여부를 지속적으로 평가", "구성 변경 이력", "규칙 위반 시 자동 수정"
Amazon CloudWatch 지금 얼마나 잘 동작하고 있는가 지표와 로그 "사용률이 임계값을 넘으면", "응답 지연을 감시", "로그에서 오류를 찾아"

CloudTrail — 이벤트 유형과 무결성

CloudTrail은 계정의 API 호출을 기록하고 추적(trail)을 만들면 Amazon S3 버킷으로 로그 파일을 계속 전달합니다. 기록되는 이벤트는 유형에 따라 기본 동작이 다릅니다.

CloudTrail 이벤트 유형과 기본 기록 여부
이벤트 유형 무엇을 기록하는가 기본 동작
관리 이벤트 리소스를 만들고 바꾸고 지우는 제어 평면 호출. 보안 그룹 수정, 역할 생성 등 별도 선택기를 지정하지 않으면 읽기·쓰기 관리 이벤트가 모두 기록됩니다
데이터 이벤트 객체 수준 호출. Amazon S3 객체 GetObject·PutObject, Lambda 함수 Invoke, DynamoDB 테이블 항목 작업 등 기본적으로 기록되지 않습니다 — 이벤트 선택기로 켜야 하고 양이 많아 비용이 커질 수 있습니다
인사이트 이벤트 호출량이 평소와 크게 다른 비정상 패턴 별도로 켜야 합니다

추적을 만들 때 정하는 설정 중 시험에 나오는 것은 셋입니다.

create-trail.sh — 조직 전체를 대상으로 하는 다중 리전 추적 (버킷 이름은 예시입니다)
aws cloudtrail create-trail \
  --name org-audit-trail \
  --s3-bucket-name example-org-cloudtrail-logs \
  --is-multi-region-trail \
  --is-organization-trail \
  --enable-log-file-validation

aws cloudtrail start-logging --name org-audit-trail

AWS Config — 규칙과 자동 수정

Config는 리소스의 구성을 계속 기록하고, 규칙(rule)으로 그 구성이 원하는 상태인지 평가합니다. 규칙에는 AWS가 미리 만들어 둔 관리형 규칙과 직접 작성하는 사용자 지정 규칙이 있습니다.

AWS Systems Manager — 인스턴스를 열지 않고 운영한다

Systems Manager는 여러 기능의 묶음입니다. SAA에서 반복해서 나오는 것은 세 가지입니다.

Systems Manager의 시험 빈출 기능
기능 무엇을 하는가 고르는 신호
Session Manager 브라우저나 CLI로 인스턴스에 셸 세션을 엽니다. 인스턴스가 SSM 에이전트로 바깥으로 연결하므로 인바운드 포트를 열지 않아도 됩니다 "SSH 키를 관리하고 싶지 않다", "배스천 호스트를 없애고 싶다", "22번 포트를 열 수 없다"
Patch Manager 패치 기준선(patch baseline)과 유지 관리 기간에 따라 운영체제 패치를 자동으로 적용합니다 "수백 대 인스턴스에 패치를 일괄 적용", "패치 준수 상태를 보고"
Parameter Store 설정값과 비밀을 계층 구조로 저장합니다. 자세한 비교는 16장에 있습니다 "설정값을 코드 밖으로", "교체 요구가 없는 값"
start-session.sh — SSH 없이 인스턴스에 접속 (인스턴스 ID는 예시입니다)
aws ssm start-session --target i-0123456789abcdef0

# 세션 로그를 남기려면 세션 기본 설정에서 S3 버킷이나 CloudWatch Logs 를 지정합니다.
aws ssm describe-sessions --state Active \
  --query 'Sessions[].[SessionId,Target,Owner]' --output table

계정 거버넌스 — Organizations, Control Tower, Trusted Advisor

1장에서 AWS Organizations의 계층과 2장에서 SCP의 성질을 다뤘습니다. 여기서는 그 위에 얹히는 도구들을 정리합니다.

다중 계정 랜딩 존의 계정 분리와 중앙 집계 경로 맨 위에 관리 계정이 있고 그 아래로 두 개의 조직 단위가 갈라집니다. 왼쪽 워크로드 조직 단위에는 운영 워크로드 계정과 개발 워크로드 계정이 있고, 오른쪽 보안 조직 단위에는 로그 아카이브 계정과 감사 계정이 있습니다. 두 조직 단위에는 각각 SCP 가드레일이 붙어 있습니다. SCP 는 조직 단위 수준에 붙어 그 아래 모든 계정의 권한 상한을 정하며 멤버 계정의 루트 사용자에게도 적용됩니다. 가운데 화살표는 로그가 모이는 경로입니다. 워크로드 계정들의 CloudTrail 이벤트와 AWS Config 구성 기록이 로그 아카이브 계정의 중앙 버킷으로 흘러 들어갑니다. 그 버킷은 삭제가 제한되어 있습니다. 감사 계정은 그 로그를 읽기 전용으로만 조회합니다. 로그를 만드는 계정과 보관하는 계정과 조사하는 계정이 서로 다르기 때문에 워크로드 계정에서 사고가 나도 증거가 남습니다. 결론은 계정을 나누는 일 자체가 보안 경계라는 것입니다. 권한 실수와 리소스 폭주가 계정 밖으로 번지지 않습니다. 관리 계정 (조직 루트) 워크로드 OU SCP 가드레일 운영 워크로드 계정 애플리케이션이 도는 곳 개발 워크로드 계정 실험과 검증 보안 OU SCP 가드레일 로그 아카이브 계정 중앙 버킷 · 삭제 제한 감사 계정 읽기 전용으로만 조회 워크로드 계정의 CloudTrail 이벤트와 AWS Config 구성 기록이 로그 아카이브 계정으로 모입니다 가드레일은 OU 단위로 붙어 그 아래 모든 계정의 권한 상한을 정합니다 SCP 는 권한을 부여하지 않고 상한만 정하며 멤버 계정의 루트 사용자에게도 적용됩니다 계정을 나누는 일 자체가 보안 경계입니다 — 사고가 계정 밖으로 번지지 않습니다
다중 계정 랜딩 존 — 관리 계정, 로그 아카이브 계정, 감사 계정, 워크로드 계정으로 나뉜 구성에서 CloudTrail 로그와 Config 기록이 중앙 계정으로 모이고 가드레일이 조직 단위(OU)로 적용되는 경로를 보입니다. 계정을 나누는 것 자체가 보안 경계라는 것이 이 그림의 결론입니다
거버넌스 도구 세 가지의 역할
도구 무엇을 하는가 고르는 신호
AWS Organizations 계정을 조직과 OU로 묶고, 서비스 제어 정책으로 권한 상한을 걸며, 결제를 통합합니다 "여러 계정을 하나로 관리", "특정 리전 사용을 막는다", "통합 결제"
AWS Control Tower 모범 사례 구성의 랜딩 존을 자동으로 세우고, 제어(가드레일)를 OU에 적용하며, 계정 발급을 표준화합니다 "다중 계정 환경을 처음부터 표준에 맞게 구축", "새 계정을 규칙에 맞게 자동 발급"
AWS Trusted Advisor 계정을 모범 사례 점검 항목으로 검사합니다 — 비용 최적화 · 성능 · 보안 · 내결함성 · 서비스 한도 · 운영 우수성 여섯 범주 "낭비와 위험을 훑어본다", "서비스 한도에 근접했는지 확인"

Control Tower는 Organizations 위에 얹힌다

둘은 경쟁 관계가 아닙니다. Control Tower는 Organizations를 바탕으로 동작하며, 조직·OU·SCP·CloudTrail·Config를 미리 정해진 모범 사례 형태로 한 번에 구성해 줍니다. 직접 하나씩 세우는 것과 같은 결과를 자동화한 것이라고 보면 됩니다.

제어(control)는 성격이 셋으로 나뉩니다 — 위반을 막는 예방 제어, 위반을 알아채는 탐지 제어, 위반이 일어나지 않게 구성 자체를 강제하는 사전 예방 제어입니다. 예방 제어는 대체로 SCP로, 탐지 제어는 대체로 Config 규칙으로 구현됩니다.

AWS CloudFormation — 코드형 인프라

CloudFormation은 템플릿에 적힌 리소스 구성을 그대로 만들고 갱신하고 지웁니다. 만들어진 리소스 묶음이 스택(stack)이며, 스택을 지우면 그 안의 리소스가 함께 정리됩니다.

CloudFormation 스택의 수명주기 순환 템플릿에서 시작해 다시 템플릿으로 돌아오는 순환 흐름입니다. 먼저 JSON 이나 YAML 로 쓴 템플릿을 준비합니다. 그 템플릿으로 변경 세트를 만들면 실제로 무엇이 바뀌는지 미리 볼 수 있습니다. 검토가 끝나면 생성이나 업데이트를 실행하고, 성공하면 스택이 완료 상태가 됩니다. 실행이 실패하면 아래쪽 갈래로 빠져 자동 롤백이 일어나 스택이 이전 상태로 되돌아갑니다. 절반만 적용된 상태로 남지 않습니다. 오른쪽 위 점선 화살표는 사고의 원인입니다. 누군가 콘솔이나 CLI 로 스택 밖에서 리소스를 직접 바꾸면 실제 구성이 템플릿과 어긋납니다. 드리프트 감지가 그 어긋난 부분을 찾아내고, 찾아낸 차이를 템플릿에 반영하거나 원래대로 되돌리면서 순환이 처음으로 돌아갑니다. 이 순환이 코드형 인프라의 기본 작업 흐름이며, 손으로 바꾼 변경을 템플릿으로 되돌리는 단계까지 포함해야 흐름이 닫힙니다. 템플릿에서 시작해 템플릿으로 돌아오는 순환 템플릿 JSON · YAML 변경 세트 바뀔 내용 미리 보기 생성 또는 업데이트 실행 스택 완료 CREATE_COMPLETE 콘솔 · CLI 직접 변경 실패하면 자동 롤백 이전 상태로 복귀 드리프트 감지 어긋난 부분 찾기 찾아낸 차이를 템플릿에 반영하거나 원래대로 되돌립니다 손으로 바꾼 변경을 템플릿으로 되돌리는 단계까지 포함해야 이 흐름이 닫힙니다
CloudFormation 스택의 수명주기 — 템플릿에서 변경 세트를 만들어 검토하고, 생성이나 업데이트를 실행하며, 실패하면 롤백되고, 콘솔이나 CLI로 직접 바꾼 부분은 드리프트 감지로 찾아냅니다. 이 순환이 코드형 인프라의 기본 작업 흐름입니다
CloudFormation의 핵심 개념
개념 무엇인가 왜 필요한가
스택 템플릿 하나로 만들어진 리소스 묶음이자 관리 단위 생성·갱신·삭제를 한 단위로 다룰 수 있습니다
변경 세트(change set) 템플릿을 적용하기 전에 무엇이 생기고 바뀌는지 미리 보여 주는 목록 운영 환경에서 의도치 않은 리소스 교체를 사전에 발견합니다
드리프트 감지(drift detection) 실제 구성이 템플릿에서 정의한 기대 구성과 달라졌는지 검사합니다. 템플릿에 명시된 속성만 검사합니다 콘솔에서 손으로 바꾼 변경을 찾아냅니다. 상태가 DRIFTED · IN_SYNC 등으로 표시됩니다
StackSets 하나의 템플릿을 여러 계정과 여러 리전에 배포합니다. 조직 단위(OU)를 대상으로 지정할 수 있습니다 계정마다 같은 스택을 손으로 만들지 않아도 됩니다
롤백 생성이나 업데이트가 실패하면 이전 상태로 되돌립니다 부분적으로만 만들어진 인프라가 남는 것을 막습니다
bucket.yaml — 최소한의 CloudFormation 템플릿 뼈대
AWSTemplateFormatVersion: '2010-09-09'
Description: 로그 보관용 버킷과 보존 규칙

Parameters:
  RetentionDays:
    Type: Number
    Default: 365

Resources:
  LogBucket:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled
      LifecycleConfiguration:
        Rules:
          - Id: expire-old-logs
            Status: Enabled
            ExpirationInDays: !Ref RetentionDays

Outputs:
  LogBucketName:
    Value: !Ref LogBucket
deploy-with-change-set.sh — 변경 세트로 검토한 뒤 적용하고 드리프트를 확인하는 흐름
aws cloudformation create-change-set \
  --stack-name log-archive \
  --template-body file://bucket.yaml \
  --change-set-name review-1

aws cloudformation describe-change-set \
  --stack-name log-archive \
  --change-set-name review-1 \
  --query 'Changes[].ResourceChange.[Action,LogicalResourceId,Replacement]' \
  --output table

aws cloudformation execute-change-set \
  --stack-name log-archive \
  --change-set-name review-1

aws cloudformation detect-stack-drift --stack-name log-archive

AWS X-Ray — 요청이 어디서 느려지는가

지표와 로그는 구성 요소 하나하나를 보여 주지만, 요청 하나가 여러 서비스를 거칠 때 어느 구간에서 시간이 걸렸는지는 알려 주지 않습니다. AWS X-Ray는 요청에 추적 정보를 붙여 서비스 맵과 구간별 지연을 만듭니다.

흔한 오해

시험 포인트 정리

이 장의 주제는 보안 아키텍처 설계(30%)의 감사·거버넌스 부분과 복원력 있는 아키텍처 설계(26%)의 관측 부분에 걸쳐 있습니다.

확인 문제

이 장의 핵심을 확인하는 10문항입니다. 키보드만으로 완주할 수 있습니다 — 숫자키 1~5로 선택지를 고르고 Enter로 제출합니다.

학습용 유형 연결형과 순서 배열 문항이 섞여 있을 수 있습니다. 이 두 유형은 암기 확인에 효율이 좋아서 기본개념 확인 문제에만 넣었으며, 실제 SAA-C03 시험에는 출제되지 않습니다.

이어서 볼 곳

공식 문서 출처

이 장의 개념 서술과 API 동작은 모두 아래 문서에서 확인했습니다.