본문으로 건너뛰기
버전: v2.0.0

Gateway Management

API 게이트웨이와 게이트웨이 관리란 무엇인가요?

API Gateway는 API 트래픽을 위한 중앙 관리 지점입니다. 클라이언트 요청을 적절한 백엔드 서비스로 라우팅하고, 필요에 따라 요청 및 응답을 변환하며, 보안 정책을 시행하고, 트래픽을 모니터링하며, 전반적인 API 신뢰성을 보장합니다.

API 게이트웨이의 주요 기능

  • Routing: 클라이언트 요청을 적절한 백엔드 서비스로 안내합니다.
  • Transformation: 필요에 따라 요청 또는 응답 형식을 변환합니다.
  • Authentication & Authorization: 클라이언트 자격 증명을 검증하고 접근 권한을 부여합니다.
  • Traffic Control: 백엔드 과부하를 방지하기 위해 API 트래픽을 관리하고 제한합니다.
  • Logging & Monitoring: 추적 및 분석을 위한 API 사용 데이터를 기록합니다.
  • Security & Protection: 악의적인 공격을 차단하고 API 보안을 강화합니다.

APIM에서는 Kong API 게이트웨이를 사용하고 Kubernetes (K8s) 배포로 프로비저닝합니다.

게이트웨이 관리 메뉴

APIM의 Gateway Management 메뉴를 통해 사용자는:

  • 게이트웨이 목록을 보고 관리합니다.
  • 개별 게이트웨이의 상태를 모니터링합니다.
  • 프로젝트별로 게이트웨이를 쿼리, 생성, 업데이트 및 삭제합니다.
  • 여러 게이트웨이 URL을 관리합니다.
  • 노드 친화성, 허용 및 토폴로지 설정을 구성합니다.
  • HTTPS 보안을 위한 TLS 인증서를 설정합니다.
  • 주석/레이블(K8s Ingress 주석/레이블)을 통해 메타데이터를 추가합니다.

Gateway URL는 API 요청에 사용되는 엔드포인트를 나타냅니다.

예를 들어, API에 https://api.company.com/path로 접근하면, 게이트웨이 URL은 api.company.com입니다.

게이트웨이 목록 화면

Gateway List 화면은 프로젝트 내 모든 게이트웨이에 대한 개요를 제공하여 사용자가 다음을 수행할 수 있도록 합니다:

  • 모든 게이트웨이를 한눈에 보기.
  • CPU, 메모리 및 복제본 구성을 확인하기.
  • 각 게이트웨이의 실행 또는 대기 상태 모니터링하기.
  • 특정 게이트웨이를 검색하거나 새로 만들기.

게이트웨이 생성하기

새로운 게이트웨이를 생성하려면 다음 단계를 따르세요:

"게이트웨이 생성" 클릭하기

게이트웨이 생성 - “게이트웨이 생성” 버튼

프로젝트 선택하기

게이트웨이가 관리될 프로젝트를 선택합니다. 프로젝트를 생성하는 방법에 대한 지침은 Tenant Manager Console/Create a Project. 을 참조하세요.

게이트웨이 생성 - 프로젝트 선택

게이트웨이 설정 구성하기

게이트웨이 생성 - 게이트웨이 구성 화면

Gateway Configuration 섹션은 게이트웨이에 대한 세부적인 사용자 지정을 허용합니다. 아래는 주요 필드입니다:

Gateway Type
  • Purpose: API 게이트웨이 유형을 정의합니다.
  • Mandatory:
  • Input Instructions: 프로젝트의 게이트웨이 유형과 일치합니다. 변경할 수 없습니다.

게이트웨이 유형

Gateway Name
  • Purpose: 게이트웨이에 대한 고유 식별자입니다.
  • Mandatory:
  • Input Instructions: 영어 문자, 숫자, spaces, 하이픈 ‘-’, 언더스코어 ‘_’, 또는 이중 콜론 ‘:’만 사용할 수 있습니다. 영어 문자로 시작해야 합니다.

Gateway Name

Gateway Instance Name
  • Purpose: 게이트웨이 인스턴스를 식별합니다.
  • Mandatory:
  • Input Instructions: 게이트웨이 이름을 기반으로 자동으로 채워집니다.

Gateway Instance Name

Gateway Description
  • Purpose: 게이트웨이에 대한 추가 세부정보를 제공합니다.
  • Mandatory: 아니요
  • Input Instructions: 짧은 설명을 입력하세요.

Gateway Description

Gateway Tags
  • Purpose: 게이트웨이를 필터링하고 검색하는 데 도움이 됩니다.
  • Mandatory: 아니요
  • Input Instructions: 게이트웨이는 여러 태그를 가질 수 있습니다. Enter 키를 눌러 태그를 입력하세요..

Gateway Tags

Gateway CPU/Memory
  • Purpose: 게이트웨이에 대한 리소스를 할당합니다.
  • Mandatory:
  • Input Instructions: 슬라이더를 사용하여 조정하세요. 값 범위는 500에서 16000 m/mi입니다.

Gateway CPU/Memory

DataBase CPU/Memory
  • Purpose: 게이트웨이가 사용하는 내부 데이터베이스에 대한 리소스를 할당합니다.
  • Mandatory:
  • Input Instructions: 슬라이더를 사용하여 조정하세요. 값 범위는 500에서 16000 m/mi입니다.

DataBase CPU/Memory

Gateway Autoscaling
  • Purpose: 배포 후 게이트웨이 리소스 할당을 자동으로 조정합니다.
  • Mandatory:
  • Instructions: 자동 확장을 켜기 위해 전환합니다. 켜진 후, 최소 복제본, 최대 복제본, CPU 사용량, 메모리 사용량에 대한 자동 확장 값을 구성합니다.
Kong Namespace
  • Purpose: 게이트웨이가 Kubernetes에서 실행되는 위치를 결정합니다.
  • Mandatory:
  • Input Instructions: 드롭다운 목록에서 네임스페이스를 선택합니다. Kong Namespace
Kong Storage Class
  • Purpose: 게이트웨이에 대한 스토리지가 어떻게 프로비저닝되는지를 정의합니다.
  • Mandatory:
  • Input Instructions: 드롭다운 목록에서 스토리지 클래스를 선택합니다.

Kong Storage Class

Storage Capacity
  • Purpose: 게이트웨이에 대한 스토리지 할당을 지정합니다.
  • Mandatory:
  • Input Instructions: 5와 500(Gi) 사이의 값을 입력합니다.

Storage Capacity

Kong Proxy Service Type
  • Purpose: Kong 프록시의 서비스 유형을 결정합니다.
  • Mandatory:
  • Input Instructions: ClusterIP, NodePort, LoadBalancer 중 하나를 선택합니다. NodePort 또는 LoadBalancer가 선택되면, 사용자가 Kong 프록시 서비스 NodePort 값을 입력해야 합니다(30000과 32767 사이).
Affinity
  • Purpose: 친화성은 노드 레이블을 일치시켜 게이트웨이 포드가 예약될 노드를 제어하는 데 사용됩니다.
  • Mandatory: 켜져 있으면 예입니다.
  • Input Instructions: 친화성을 켜기 위해 전환합니다. 그런 다음 노드 레이블에 대한 키와 값을 제공합니다. 이는 nodeAffinity 규칙으로 Kubernetes에서 requiredDuringSchedulingIgnoredDuringExecution를 사용하여 변환됩니다. 예를 들어:
노트

nodeAffinity:

Toleration
  • Purpose: 허용은 게이트웨이 포드가 특정 작업 부하에 대해 표시된 노드에 스케줄될 수 있도록 합니다.
  • Mandatory: 켜져 있으면 예입니다.
  • Input Instructions: 켜진 후, 다음을 입력하십시오:
    • 연산자: Equal 또는 Exists 중에서 선택하십시오. Equal: 키와 값이 정확히 일치해야 합니다. Exists: 키만 존재하면 되며, 값은 필요하지 않습니다.
    • 키와 값: 오염 키와 값을 제공하십시오(연산자가 Exists인 경우 값은 선택 사항입니다).
노트

tolerations:

  • effect: NoSchedule

key: "tolerationKey"

operator: "Equal" 또는 Exists

value: "tolerationValue"

Topology Spread
  • Purpose: 토폴로지 분산 제약 조건은 게이트웨이 포드가 실패 도메인(영역 또는 노드와 같은) 전반에 고르게 분산되도록 하여 복원력과 가용성을 향상시킵니다.
  • Mandatory: 켜져 있으면 예입니다.
  • Input Instructions: 켜진 후, 다음을 입력하십시오:
    • Max Skew: 토폴로지 도메인 간의 게이트웨이 포드 수의 최대 허용 차이(예: 1로 설정하면 각 영역의 포드 수는 1을 초과하여 다를 수 없습니다).
    • When Unsatisfiable: 다음 중 하나를 선택하십시오: ScheduleAnyway (기본값): 분산 제약 조건이 완전히 충족되지 않더라도 여전히 스케줄링을 허용합니다; DoNotSchedule: 제약 조건이 실패하면 포드 스케줄링을 차단합니다; DoNotScheduleIfNotSatisfied: 분산 조건이 충족되지 않을 경우에만 스케줄링을 제한하는 새로운 전략입니다.
노트

이것이 매핑되는 예제 Kubernetes 규칙:

topologySpreadConstraints:

  • maxSkew: 1

topologyKey: topology.kubernetes.io/zone

whenUnsatisfiable: ScheduleAnyway

labelSelector: matchLabels:

app.kubernetes.io/instance: test-kong

Inner Redis
  • Purpose: 내부 Redis 인스턴스를 캐싱을 위해 허용합니다.
  • Mandatory: 토글 시 예
  • Input Instructions: ON/OFF 전환. ON인 경우, Gateway가 배포될 때 기본 Redis가 설치됩니다. OFF인 경우, 사용자는 APIM Redis가 Redis를 사용하는 정책(속도 제한, jwt 블랙리스트, OIDC)을 지원하지 않음을 통보받습니다. 사용자는 OFF로 전환을 계속하기 위해 프롬프트에서 확인해야 합니다.

Inner Redis

Fluent Bit
  • Purpose: Fluent Bit은 게이트웨이 컨테이너에서 로그를 수집, 필터링 및 전달하는 경량 로그 프로세서입니다.
  • Mandatory: 아니요
  • Input Instructions: 활성화되면, 다음 목적지 옵션 중 하나를 추가로 선택할 수 있습니다:
    • OpenTelemetry: OpenTelemetry 에이전트를 사용하여 로그 및 텔레메트리 데이터를 전달합니다.
    • Elasticsearch: Elasticsearch 클러스터로 로그를 전달하여 인덱싱 및 검색을 수행합니다.

참고: 이러한 옵션 중 하나만 활성화될 수 있습니다. 하나를 활성화하면 다른 하나가 이미 활성화되어 있는 경우, 현재 활성화된 것을 비활성화하라는 확인 프롬프트가 나타납니다.

Kong Configuration
  • Purpose: 이 필드는 성능이나 동작을 세밀하게 조정해야 할 경우, 원시 구성을 JSON 형식으로 제공하여 Kong Gateway 런타임에 고급 저수준 구성을 직접 적용할 수 있도록 합니다.
  • Mandatory: 토글 시 예
  • Input Instructions: 토글 후, 사용자 정의 Kong 런타임 설정을 입력할 수 있는 JSON 편집기가 나타납니다.
노트

예:

"upstream_keepalive_idle_timeout": 60, "upstream_keepalive_max_requests": 100000,

"nginx_http_keepalive_requests": 100000,

"upstream_keepalive_pool_size": 1024

Note: 잘못된 구성은 불안정한 게이트웨이 동작을 초래할 수 있습니다. 변경 사항을 적용하기 전에 Kong 문서 또는 플랫폼 관리자에게 문의하십시오.

게이트웨이 구성은 아래 표에 요약되어 있습니다:

Field NamePurposeInput NotesMandatory
게이트웨이 유형API 게이트웨이 유형을 정의합니다.프로젝트의 게이트웨이 유형과 일치합니다. 변경할 수 없습니다.예. 기본값은 kong입니다.
게이트웨이 이름게이트웨이에 대한 고유 식별자입니다.영어 문자, 숫자, 하이픈 ‘-’, 밑줄 ‘_’, 또는 이중 콜론 ‘:’만 사용할 수 있습니다. 영어 문자로 시작해야 합니다.
게이트웨이 인스턴스 이름게이트웨이 인스턴스를 식별합니다.게이트웨이 이름을 기반으로 자동으로 채워집니다.
게이트웨이 설명게이트웨이에 대한 추가 세부 정보를 제공합니다.짧은 설명을 입력하십시오.아니요
게이트웨이 태그게이트웨이를 필터링하고 검색하는 데 도움이 됩니다.게이트웨이는 여러 태그를 가질 수 있습니다. Enter 키를 눌러 태그를 입력하십시오..아니요
게이트웨이 CPU/메모리게이트웨이에 대한 리소스를 할당합니다.슬라이더를 사용하여 조정합니다. 값 범위는 500에서 16000 m/mi입니다.
데이터베이스 CPU/메모리게이트웨이가 사용하는 내부 데이터베이스에 대한 리소스를 할당합니다.슬라이더를 사용하여 조정합니다. 값 범위는 500에서 16000 m/mi입니다.
게이트웨이 자동 확장배포 후 자동으로 포드 리소스 확장을 활성화합니다.ON/OFF 전환합니다. ON인 경우 구성: 최소 복제본, 최대 복제본, CPU 임계값 (%), 메모리 임계값 (%)전환 시 예
Kong 네임스페이스Kubernetes에서 게이트웨이가 실행되는 위치를 결정합니다.드롭다운 목록에서 네임스페이스를 선택합니다.
Kong 스토리지 클래스게이트웨이에 대한 스토리지가 어떻게 제공되는지를 정의합니다.드롭다운 목록에서 스토리지 클래스를 선택합니다.
저장 용량게이트웨이에 대한 저장 할당을 지정합니다.5와 500(Gi) 사이의 값을 입력하세요.
콩 프록시 서비스 유형외부 액세스를 위한 콩 프록시의 서비스 유형을 정의합니다.ClusterIP, NodePort 또는 LoadBalancer 중에서 선택하세요. 기본값은 ClusterIP입니다.
친화성게이트웨이 포드를 일치하는 레이블이 있는 노드에 예약합니다.ON/OFF 전환. ON인 경우, 노드 레이블에 대한 키와 값을 입력하세요.전환 시 예
관용게이트웨이 포드가 오염된 노드에서 실행될 수 있도록 허용합니다.ON/OFF 전환. ON인 경우, 연산자를 선택하세요: Equal 또는 Exists. 키를 입력하고, 선택적으로 값을 입력하세요.전환 시 예
토폴로지 분산가용성을 높이기 위해 포드를 영역에 고르게 분산시킵니다.ON/OFF 전환. ON인 경우, 입력: 최대 편차(예: 1). 만족하지 않을 때의 옵션을 선택하세요: ScheduleAnyway, DoNotSchedule, DoNotScheduleIfNotSatisfied 중에서 선택하세요.전환 시 예
내부 Redis캐싱을 위한 내부 Redis 인스턴스를 허용합니다.ON/OFF 전환. ON인 경우, 게이트웨이가 배포될 때 기본 Redis가 설치됩니다.전환 시 예
플루언트 비트메트릭 수집을 위한 OpenTelemetry 에이전트 또는 로그 수집을 위한 Elasticsearch를 활성화합니다.OpenTelemetry 또는 Elasticsearch 중에서만 선택할 수 있습니다.전환 시 예
콩 구성콩 구성을 수동으로 재정의할 수 있도록 합니다.편집기를 활성화하려면 ON으로 전환하고 유효한 JSON을 입력하세요.전환 시 예

생성 완료

생성을 완료하고 게이트웨이 구성을 저장하려면 CREATE A GATEWAY 버튼을 클릭하세요.

CREATE A GATEWAY 버튼

게이트웨이 URL 추가 및 관리

게이트웨이 URL 구성은 사용자가 API 게이트웨이에 대해 하나 이상의 공개 도메인을 정의할 수 있도록 합니다. 또한 HTTPS를 위한 TLS 인증서, API 라우팅을 위한 글로벌 베이스 경로 및 주석을 통한 추가 메타데이터를 지원합니다. 각 게이트웨이는 API 게이트웨이에 접근하는 방식을 정의하는 여러 게이트웨이 URL을 가질 수 있습니다.

게이트웨이 URL을 추가하려면 사용자는 게이트웨이 관리 화면에 나열된 생성된 게이트웨이를 클릭하여 게이트웨이 수정 화면으로 들어갈 수 있습니다.

생성된 게이트웨이 클릭

그곳에서 사용자는 아래에 있는 게이트웨이 URL 구성 섹션을 찾을 수 있습니다.

구성 화면에서 게이트웨이 URL 구성 섹션 찾기 위해 아래로 스크롤

아래는 게이트웨이 URL을 생성하는 단계입니다:

URL 생성하기

여러 URL을 생성하려면 추가 버튼을 클릭합니다. URL을 구성하기 위한 새로운 블록이 아래에 생성됩니다.

게이트웨이 URL - URL 생성

게이트웨이 URL 구성하기

아래는 게이트웨이 URL을 구성하기 위한 주요 필드입니다:

Gateway URL
  • Purpose: 게이트웨이에 접근할 수 있는 공개 도메인(s)을 정의합니다. 사용자가 사용 중인 게이트웨이 URL을 변경하면 기존 API가 제대로 호출되지 않을 수 있습니다.
  • Mandatory:
  • Input Instructions: 유효한 도메인을 입력합니다.
  • Example:
노트

your.domain.com

your.domain.com:8443

게이트웨이 URL

Global BasePath
  • Purpose: 이 게이트웨이 아래의 모든 API에 대한 공통 접두사를 설정합니다. 정의된 경우 이 게이트웨이 아래의 모든 API는 이 접두사를 상속받습니다. 사용 중에 베이스 경로가 변경되면 기존 API가 제대로 호출되지 않을 수 있습니다.
  • Mandatory:
  • Input Instructions: 기본 경로를 입력하세요. /로 두면 루트가 사용됩니다.
  • Example:
노트

/ /apim

Global BasePath

HTTPS Only and TLS Certificates
  • Purpose: tls.crt를 포함하여 SSL 인증서를 제공하고 tls.key 파일을 통해 TLS 인증서를 인증하여 HTTPS 통신을 활성화합니다. 네트워크 정책이 Gateway URL과 통신할 때 HTTPS만 허용하도록 적용된 경우, 사용자는 HTTPS를 활성화해야 합니다. 사용자가 K8s Secret으로 TLS 인증서를 등록하고 K8s Ingress를 통해 TLS 인증을 처리하는 경우, tls.crt/tls.key 값을 입력해야 합니다.
  • Mandatory: 의존
  • Input Instructions: PEM 형식으로 인증서 내용을 붙여넣습니다. 안전한 HTTPS 연결에 필요합니다.

Ingress Class
  • Purpose: 이 Gateway URL 구성에 사용할 인그레스 컨트롤러를 지정합니다.
  • Mandatory: 예
  • Input Instructions: 드롭다운에서 인그레스 클래스를 선택합니다. 사용 가능한 옵션은 다음과 같을 수 있습니다:
    • nginx (기본값)
    • alb
    • appsec-kong

이 설정은 선택한 인그레스 컨트롤러를 통해 Gateway URL을 라우팅합니다.

Labels
  • Purpose: 이 Gateway URL을 위해 생성된 인그레스 리소스에 Kubernetes 레이블을 추가합니다. 분류 또는 자동화 목적으로 유용합니다.
  • Mandatory: 아니요
  • Input Instructions: 하나 이상의 키-값 쌍을 입력합니다. 이러한 레이블은 생성된 인그레스 객체에 적용됩니다. 여러 항목을 추가하려면 더하기 버튼을 사용하고 추가된 항목을 제거하려면 삭제 버튼을 사용하세요.
Annotations
  • Purpose: Kubernetes 인그레스 주석을 추가하여 사용자 정의 시간 초과, 헤더 조작 또는 컨트롤러별 옵션과 같은 고급 구성을 제공합니다.
  • Mandatory: 아니요
  • Input Instructions: 두 가지 모드를 사용하여 주석을 입력할 수 있습니다:

폼 모드 (JSON 토글 OFF): 각 주석에 대해 키와 값을 수동으로 입력합니다. 일부 필드는 시스템 제약에 따라 편집이 잠길 수 있습니다. 더하기 버튼을 클릭하여 여러 주석을 추가하거나, X 버튼을 클릭하여 추가된 주석을 제거할 수 있습니다. 최소한 하나의 주석은 유지해야 합니다.

예시:
"key": "nginx.ingress.kubernetes.io/proxy-connect-timeout",
"value": "300"

JSON 모드 (JSON 토글 ON): 편집기에서 키-값 JSON 객체 배열로 주석을 입력합니다.

예시:
[
{
"key": "nginx.ingress.kubernetes.io/configuration-snippet",
"value": "more_clear_headers \"server\";more_clear_headers \"via\";"
},
{
"key": "nginx.ingress.kubernetes.io/proxy-connect-timeout",
"value": "300"
},
{
"key": "nginx.ingress.kubernetes.io/proxy-read-timeout",
"value": "300"
},
{
"key": "nginx.ingress.kubernetes.io/proxy-send-timeout",
"value": "300"
}
]

게이트웨이 URL 구성은 아래 표에 요약되어 있습니다:

Field NamePurposeInput Notes
게이트웨이 URL게이트웨이에 접근할 수 있는 공개 도메인을 정의합니다. 사용자가 사용 중인 게이트웨이 URL을 변경하면 기존 API가 제대로 호출되지 않을 수 있습니다.유효한 도메인을 입력하세요 (예: api.example.com). 필수 필드입니다.
글로벌 기본 경로이 게이트웨이 아래의 모든 API에 대한 공통 접두사를 설정합니다. 정의된 경우, 이 게이트웨이 아래의 모든 API는 이 접두사를 상속받습니다.기본 경로를 입력하세요 (예: /api). /로 남겨두면 루트가 사용됩니다.
TLS Certificates (tls.crt)HTTPS 통신을 가능하게 하며 SSL 인증서를 제공합니다.인증서 내용을 PEM 형식으로 붙여넣습니다. 안전한 HTTPS 연결에 필요합니다.
사용자가 K8s Secret로 TLS 인증서를 등록하고 K8s Ingress를 통해 TLS 인증을 처리하는 경우, 사용자는 tls.crt/tls.key 값을 입력해야 합니다.
TLS Private Key (tls.key)TLS 인증서를 인증하는 데 사용됩니다.개인 키 내용을 PEM 형식으로 붙여넣습니다. 제공된 인증서와 일치해야 합니다.
Ingress Class이 Gateway URL 구성에 사용할 Ingress 컨트롤러를 지정합니다.nginx(기본값), alb 또는 appsec-kong에서 Ingress 클래스를 선택합니다.
Labels이 Gateway URL에 대해 생성된 Ingress 리소스에 Kubernetes 레이블을 추가합니다.하나 이상의 키-값 쌍을 입력합니다. 쌍을 추가하거나 제거할 수 있습니다.
Annotations고급 구성을 위한 Kubernetes Ingress 주석을 추가합니다.두 가지 모드(키-값 쌍(제이슨 모드 OFF) 또는 제이슨 스크립트(제이슨 모드 ON))를 사용하여 여러 주석을 입력할 수 있습니다.
Example:
노트

두 개의 Gateway URL(api.example.com 및 service.example.com)이 BasePath /api로 구성된 경우:

https://api.example.com/api/{API-Path}

https://service.example.com/api/{API-Path}

유효한 API 엔드포인트가 됩니다.

게이트웨이 수정

사용자는 기존 게이트웨이를 다음과 같이 수정할 수 있습니다:

  • 목록에서 게이트웨이를 선택합니다. 생성된 게이트웨이를 클릭합니다

  • 구성 가능한 필드 및 입력(게이트웨이 설명, 게이트웨이 태그, 게이트웨이 CPU/메모리, 데이터베이스 CPU/메모리, 토글 및 값 등)을 편집합니다.

  • 필요에 따라 Gateway URLs를 업데이트합니다.
  • 변경 사항을 저장하여 업데이트를 적용합니다.

사용자가 게이트웨이 URL을 변경하는 경우, 게이트웨이 저장 버튼을 클릭하기 전에 SAVE GATEWAY URL 버튼을 클릭하는 것을 잊지 마십시오. 게이트웨이 구성 변경 사항을 저장하기 전에 게이트웨이 URL 변경 사항을 저장하세요.

게이트웨이 삭제

게이트웨이를 삭제하면 permanently remove 모든 관련 데이터가 삭제됩니다. 이 작업은 cannot be undone.

  • Gateway Management로 이동합니다.
  • 삭제할 게이트웨이를 선택합니다.

생성된 게이트웨이를 클릭하세요

  • "Deleting A Gateway"를 클릭하고 작업을 확인합니다.
경고
  • 이 게이트웨이에 의존하는 API는 더 이상 접근할 수 없습니다.
  • 삭제하기 전에 활성 API가 의존하지 않는지 확인하세요.