본문으로 건너뛰기

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 Instance Name
  • Purpose: 게이트웨이 인스턴스를 식별합니다.
  • Mandatory:
  • Input Instructions: 게이트웨이 이름을 기반으로 자동으로 채워집니다.

게이트웨이 인스턴스 이름

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

게이트웨이 설명

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

게이트웨이 태그

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

게이트웨이 CPU/메모리

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

데이터베이스 CPU/메모리

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

Kong 스토리지 클래스

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

스토리지 용량

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: 켜기/끄기. 켜져 있으면, 게이트웨이가 배포될 때 기본 Redis가 설치됩니다. 꺼져 있으면, 사용자는 APIM Redis가 Redis를 사용하는 정책(속도 제한, jwt 블랙리스트, OIDC)을 지원하지 않음을 알게 됩니다. 사용자는 꺼짐으로 전환을 계속하기 위해 프롬프트에서 확인해야 합니다.

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

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

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

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

생성 완료

CREATE A GATEWAY 버튼을 클릭하여 생성을 완료하고 게이트웨이 구성을 저장하십시오.

CREATE A GATEWAY button

게이트웨이 URL 추가 및 관리

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

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

Click on created Gateway

거기에서 사용자는 아래에 게이트웨이 URL 구성 섹션을 찾을 수 있습니다. 구성 화면에서 아래로 스크롤하여 게이트웨이 URL 구성 섹션을 찾으세요

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

URL 생성하기

여러 개의 URL을 생성하려면 ADDITION을 클릭하세요. 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는 이 접두사를 상속받습니다. 사용 중에 Basepath가 변경되면 기존 API가 제대로 호출되지 않을 수 있습니다.
  • Mandatory:
  • Input Instructions: 기본 경로를 입력하세요. /로 두면 루트가 사용됩니다.
  • Example:
노트

/ /apim

전역 BasePath

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

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

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

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

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

예시:
: [nginx.ingress.kubernetes.io/proxy-connect-timeout](http://nginx.ingress.kubernetes.io/proxy-connect-timeout)
: more_clear_headers \"server\

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

예시:
"key": "[nginx.ingress.kubernetes.io/configuration-snippet](http://nginx.ingress.kubernetes.io/configuration-snippet)",
"value": "more_clear_headers \"server\";more_clear_headers \"via\";"

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

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

두 개의 게이트웨이 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을 변경하면, 게이트웨이 저장 버튼을 클릭하기 전에 게이트웨이 URL 저장 버튼을 클릭해야 합니다.

다른 게이트웨이 구성 변경을 저장하기 전에 게이트웨이 URL 변경 사항을 저장하세요.

게이트웨이 삭제하기

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

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

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

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