Apidog Docs
🇰🇷 한국인
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇰🇷 한국인
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇰🇷 한국인
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. 스크립트 사용
  • Apidog 학습 센터
  • 시작하기
    • Apidog 소개
    • Apidog의 기본 개념
    • Apidog 탐색하기
    • 빠른 시작
      • 개요
      • 엔드포인트 생성하기
      • 요청 만들기
      • 어서션 추가하기
      • 테스트 시나리오 생성
      • API 문서 공유
      • 더 알아보기
    • Apidog로 마이그레이션
      • 개요
      • 수동 가져오기
      • 예약 가져오기(데이터 소스 바인딩)
      • 가져오기 옵션
      • 데이터 내보내기
      • 가져오기
        • Postman에서 가져오기
        • OpenAPI Spec 가져오기
        • cURL 가져오기
        • Markdown 가져오기
        • Insomnia에서 가져오기
        • apiDoc에서 가져오기
        • .har 파일 가져오기
        • WSDL 가져오기
  • Mock API 데이터
    • 개요
    • 스마트 목
    • 사용자 지정 목
    • 목 우선순위 순서
    • 목 스크립트
    • 클라우드 목
    • Self-Hosted Runner Mock
    • 목 언어(로케일)
  • 계정 및 환경설정
    • 계정 설정
    • OpenAPI 액세스 토큰 생성
    • 알림
    • 언어 설정
    • 단축키
    • 네트워크 프록시 구성
    • 데이터 백업
    • Apidog 업데이트
    • 계정 삭제
    • 실험적 기능
  • 요청 보내기
    • 개요
    • SSE 디버깅
    • MCP 클라이언트
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP 또는 WebService
    • GraphQL
    • gRPC
    • 디버깅에 요청 프록시 에이전트 사용
    • 요청 만들기
      • 요청 기록
      • 요청 기본 사항
      • 매개변수 및 본문
      • 요청 헤더
      • 요청 설정
      • 요청 디버그
      • 요청을 엔드포인트로 저장하기
      • HTTP/2
    • 인증 및 권한 부여
      • 개요
      • CA 및 클라이언트 인증서
      • 인증 유형
      • Digest Auth
      • OAuth 1.0
      • OAuth 2.0
      • Hawk 인증
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • 응답 및 쿠키
      • API 응답 보기
      • 쿠키 관리
      • 개요
  • API 개발 및 디버깅
    • 개요
    • 요청 생성
    • 요청 보내기
    • 디버깅 케이스
    • 테스트 케이스
    • 동적 값
    • 응답 검증
    • 디자인 우선 vs 요청 우선
    • 코드 생성
    • 환경 및 변수
      • 개요
      • 변수 사용하기
      • 환경 관리
    • Vault 시크릿
      • 개요
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • 동적 값 모듈
      • Airline
      • 동물
      • 색상
      • Commerce
      • Company
      • 데이터베이스
      • Datatype
      • 날짜
      • 금융
      • Food
      • Git
      • Hacker
      • Helpers
      • Image
      • Internet
      • Location
      • Lorem
      • 음악
      • Number
      • Person
      • Phone
      • 과학
      • String
      • System
      • Vehicle
      • Word
    • 사전/사후 프로세서
      • 개요
      • 어서션
      • 변수 추출
      • Wait
      • 보안
      • 데이터베이스 작업
        • 개요
        • MySQL
        • MongoDB
        • Redis
        • Oracle Client
      • 스크립트 사용
        • 개요
        • 전처리 스크립트
        • 사후 처리 스크립트
        • Public Scripts
        • Postman 스크립트 참조
        • 다른 프로그래밍 언어 호출하기
        • JS 라이브러리 사용하기
        • 응답 시각화
        • 스크립트 예제
          • 어서션 스크립트
          • 변수 사용하기
          • 요청 수정하기
          • 기타 예시
    • API 디버깅
      • AI Agent Debugger
      • A2A Debugger
  • API 설계
    • 개요
    • 새 API 프로젝트 생성
    • 엔드포인트 기본 사항
    • API 설계 지침
    • 모듈
    • 여러 요청 본문 예시 구성
    • 컴포넌트
    • 공통 필드
    • 전역 매개변수
    • 엔드포인트 변경 이력
    • 댓글
    • 엔드포인트 일괄 관리
    • 사용자 지정 프로토콜 API
    • Spec-first 모드(Beta)
    • 보안 스키마
      • 개요
      • 보안 스키마 생성
      • 보안 스키마 사용
      • 온라인 문서의 보안 스키마
    • 고급 기능
      • 사용자 지정 엔드포인트 필드
      • 연결된 테스트 시나리오
      • 엔드포인트 상태
      • 매개변수 목록의 표시 방식
      • 엔드포인트 고유 식별
    • 스키마
      • 개요
      • 새 스키마 생성
      • 스키마 구축
      • JSON 등에서 스키마 생성
      • oneOf, allOf, anyOf
      • Discriminator 사용하기
  • API 테스트
    • 개요
    • 테스트 시나리오
      • 테스트 시나리오 생성
      • 요청 간 데이터 전달
      • 흐름 제어 조건
      • 엔드포인트 및 엔드포인트 케이스에서 데이터 동기화
      • 다른 프로젝트에서 엔드포인트 및 엔드포인트 케이스 가져오기
      • 테스트 시나리오 내보내기
    • 테스트 보고서
      • 테스트 보고서
    • 테스트 시나리오 실행
      • 테스트 시나리오 실행
      • 테스트 시나리오 일괄 실행
      • 데이터 기반 테스트
      • 공유 테스트 데이터
      • 예약 작업
      • 다른 프로젝트의 API 런타임 환경 관리
    • 테스트 스위트
      • 개요
      • 테스트 스위트 생성
      • 테스트 스위트 오케스트레이션
      • 로컬에서 테스트 스위트 실행
      • CLI를 통해 테스트 스위트 실행
      • 예약 작업
    • API 테스트
      • 통합 테스트
      • 성능 테스트
      • 엔드투엔드 테스트
      • 회귀 테스트
      • 계약 테스트
    • Apidog CLI
      • 개요
      • Apidog CLI 설치 및 실행
      • Apidog CLI 옵션
    • CI/CD
      • 개요
      • Github Actions와 통합
      • Gitlab과 통합
      • Jenkins와 통합하기
      • Git 커밋으로 테스트 트리거하기
  • API 문서 게시
    • 개요
    • 지원되는 API 기술
    • Quick Share
    • API 문서 보기
    • Markdown 문서
    • 문서 사이트 게시
    • 사용자 지정 로그인 페이지
    • 사용자 지정 레이아웃
    • 사용자 지정 CSS, JavaScript, HTML
    • 사용자 지정 도메인
    • AI 기능
    • SEO 설정
    • 고급 설정
      • 문서 검색
      • CORS 프록시
      • Google Analytics 통합
      • 폴더 트리 설정
      • 가시성 설정
      • 문서 URL에 값 임베드하기
    • API 버전
      • 개요
      • API 버전 생성
      • API 버전 게시
      • API 버전별 엔드포인트 공유
  • 브랜치
    • 개요
    • 스프린트 브랜치 생성
    • 브랜치에서 API 테스트하기
    • 브랜치에서 API 설계하기
    • 스프린트 브랜치 병합
    • 스프린트 브랜치 관리
    • AI Branch(베타)
  • AI 기능
    • 개요
    • AI 기능 활성화
    • 테스트 케이스 생성
    • AI로 스키마 수정하기
    • 엔드포인트 규정 준수 검사
    • API 문서 완성도 검사
    • AI 기반 필드 명명
    • 자주 묻는 질문
  • Apidog MCP 서버
    • 개요
    • AI에 Apidog 프로젝트 연결
    • 게시된 문서를 AI에 연결하기
    • OpenAPI 파일을 AI에 연결하기
  • 모범 사례
    • API 서명 처리
    • OAuth 2.0으로 보호되는 API에 접근하기
    • 협업 워크플로
    • 인증 상태 관리
  • 오프라인 공간
    • 개요
  • Apidog Europe
    • Apidog Europe
  • 관리
    • 프로젝트 관리
      • 프로젝트 관리
      • 알림 설정
      • 프로젝트 멤버 관리
      • 프로젝트 리소스
        • 데이터베이스 연결
        • Git 연결
    • 팀 관리
      • 팀 관리
      • 팀 멤버 관리
      • 팀 활동
      • 팀 역할 및 권한
      • 팀 리소스
        • General Runner
        • 팀 변수
        • 요청 프록시 에이전트
      • 실시간 협업
        • 팀 협업
    • 온보딩 체크리스트
      • 기본 개념
      • 온보딩 가이드
    • 조직 관리
      • 조직 관리
      • 조직 역할 및 권한
      • 플랜 관리
        • 조직의 청구 관리자
      • Single Sign-On (SSO)
        • SSO 개요
        • Microsoft Entra ID 구성
        • Okta 구성하기
        • 조직에 대한 SSO 구성
        • 사용자 계정 관리
        • 그룹을 팀에 매핑하기
      • SCIM 프로비저닝
        • SCIM 프로비저닝 소개
        • Microsoft Entra ID
        • Okta
      • 조직 리소스
        • 셀프 호스팅 Runner
  • 청구
    • 개요
    • 크레딧
    • 플랜 업그레이드
    • 대체 결제 방법
    • 구독 관리
    • 유료 팀을 조직으로 이동하기
  • 애드온
    • API Hub
    • Apidog Intellij IDEA 플러그인
    • 브라우저 확장 프로그램
      • Chrome
      • Microsoft Edge
    • 요청 프록시
      • 웹에서의 요청 프록시
      • 공유 문서의 요청 프록시
      • 클라이언트의 요청 프록시
  • 데이터 및 보안
    • 데이터 저장 및 보안
    • 사용자 데이터 개인정보 보호 및 보안
    • 요청 라우팅 및 데이터 보안
  • 참조
    • API 설계 우선 접근 방식
    • Apidog OpenAPI 사양 확장
    • JSONPath
    • XPath
    • 정규 표현식
    • JSON Schema
    • CSV 파일 형식
    • Java 환경 설치
    • Runner 배포 환경
    • Apidog Markdown 구문
    • Apidog Swagger 확장
      • 개요
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Apidog JSON Schema 확장
      • 개요
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • 지원 센터
  1. 스크립트 사용

다른 프로그래밍 언어 호출하기

Apidog에서는 Javascript 환경에서 외부 프로그램(스크립트, JAR, 바이너리)을 실행할 수 있습니다. 이를 통해 Java, Python, PHP, Go, Shell 등과 같은 언어로 작성된 기존 코드를 활용할 수 있습니다.
보안 안내
외부 프로그램은 Apidog 샌드박스 외부에서 실행되며 시스템에 대한 전체 접근 권한을 갖습니다. 실행하려는 코드를 신뢰할 수 있는지 확인하십시오.

지원되는 언어#

Apidog는 파일 확장자를 기준으로 실행 명령을 추론합니다.
언어확장자명령 접두사
Java.jarjava -jar
Python.pypython
Node.js.jsnode
PHP.phpphp
Go.gogo run
Shell.shsh
Ruby.rbruby
Lua.lualua

외부 프로그램을 호출하는 방법#

1.
외부 프로그램 디렉터리 열기: 스크립트 편집기에서 폴더 아이콘을 클릭하여 외부 스크립트를 배치해야 하는 디렉터리를 여십시오.
외부 프로그램 디렉터리
2.
스크립트를 통해 실행하기: pm.executeAsync를 사용하여 프로그램을 호출하십시오.

API 참조#

pm.executeAsync#

filePath string 외부 프로그램 경로
args string[] 매개변수입니다. jar 패키지에서 지정된 메서드를 호출할 때는 변환에 JSON.stringify가 사용됩니다. 그 외에는 _string_이 아닌 타입이 암시적으로 _string_으로 변환됩니다.
options Object
command string 외부 프로그램의 실행 명령입니다. "명령 접두사"의 첫 번째 부분이 실행 명령입니다. 선택 사항이며, 기본값은 자동으로 추론됩니다(위의 "명령 접두사" 표 참조). 원하는 프로그램으로 사용자 지정할 수 있습니다.
cwd string 하위 프로세스의 작업 디렉터리입니다. 선택 사항이며, 기본값은 "External Programs Directory"입니다.
env Record<string, string> 하위 프로세스의 환경 변수입니다. 선택 사항이며, 기본값은 {}입니다.
windowsEncoding string Windows 시스템에서 사용되는 인코딩입니다. 선택 사항이며, 기본값은 "cp936"입니다.
className string jar 패키지에서 호출할 클래스 이름을 지정합니다. 예: "com.apidog.Utils".
method string jar 패키지에서 호출할 메서드 이름을 지정합니다. 예: "add".
paramTypes string[] jar 패키지에서 호출할 메서드의 매개변수 타입을 지정합니다. 예: ["int", "int"].
반환: Promise<string>
command 매개변수 사용법
기본적으로 Apidog는 .py 파일을 실행할 때 python을 사용합니다. 컴퓨터에 python3가 이미 설치되어 있는 경우, command를 python3로 지정할 수 있습니다.

pm.execute#

대신 pm.executeAsync를 사용하는 것을 권장합니다.
pm.execute(filePath, args, options)
filePath string 외부 프로그램 경로
args string[] 매개변수입니다. jar 패키지에서 지정된 메서드를 호출할 때는 변환에 JSON.stringify가 사용됩니다. 그 외에는 _string_이 아닌 타입이 암시적으로 _string_으로 변환됩니다.
options Object
windowsEncoding string Windows 시스템에서 사용되는 인코딩입니다. 선택 사항이며, 기본값은 "cp936"입니다.
className string jar 패키지에서 호출할 클래스 이름을 지정합니다. 예: "com.apidog.Utils".
method string jar 패키지에서 호출할 메서드 이름을 지정합니다. 예: "add".
paramTypes string[] jar 패키지에서 호출할 메서드의 매개변수 타입을 지정합니다. 예: ["int", "int"].
반환: string

실행 및 로그#

프로그램을 실행하면 실행된 명령이 콘솔에 출력됩니다(참고용). 결과가 기대와 일치하지 않는 경우, 명령을 복사하여 Shell/CMD에 붙여 넣고 디버그할 수 있습니다.
콘솔에는 실행된 프로세스의 "표준 출력(stdout)" 및 "표준 오류 출력(stderr)"도 출력됩니다. stdout 콘텐츠(끝의 줄바꿈 문자 제외)가 실행의 최종 결과가 됩니다.
TIP
역사적인 이유로 pm.execute는 stderr에 콘텐츠가 있으면 실행이 실패한 것으로 처리합니다. 이로 인해 일부 프로그램은 경고 또는 오류 메시지를 출력할 때 실패할 수 있습니다. pm.executeAsync는 실행 실패 여부를 판단하기 위해 프로세스의 종료 코드를 사용하도록 변경되었습니다.

외부 프로그램의 입력 및 출력#

매개변수#

지정된 외부 프로그램은 명령줄 실행으로 실행되므로, 전달된 매개변수는 명령줄 인수를 통해서만 가져올 수 있습니다.
예를 들어, 스크립트 pm.executeAsync('add.js', [2, 3])에서 실제 실행되는 명령은 node add.js 2 3입니다. 외부 스크립트 add.js에서 매개변수를 가져오려면 다음과 같이 하십시오.
TIP
1.
프로그래밍 언어마다 명령줄 인수를 가져오는 방법이 다르므로, 해당 언어 문서를 참조하십시오.
2.
명령줄 인수의 타입은 항상 _string_이므로 실제 타입에 따라 변환해야 합니다.

반환 값#

위에서 언급했듯이 Apidog는 stdout 콘텐츠를 프로그램 실행 결과로 사용합니다. 따라서 stdout에 콘텐츠를 출력하면 결과를 반환할 수 있습니다.
예를 들어, 스크립트 const result = await pm.executeAsync('add.js', [2, 3])에서 결과는 다음과 같이 반환할 수 있습니다.
1.
프로그래밍 언어마다 stdout에 출력하는 방법이 다르므로, 해당 언어 문서를 참조하십시오.
2.
반환 타입은 _string_이므로 실제 타입에 따라 변환해야 합니다.
3.
결과의 끝에 있는 줄바꿈 문자는 제거됩니다.
4.
jar 패키지에서 지정된 메서드를 호출할 때는 호출된 메서드의 반환 값이 최종 반환 값으로 사용됩니다.

오류 발생시키기#

오류를 발생시키면 현재 작업이 실패하고 실행이 중지될 수 있습니다. 예:
1.
프로그래밍 언어마다 오류를 발생시키는 방법이 다르므로, 해당 문서를 참조하십시오.
2.
JavaScript에서 console.error('Error')는 오류를 발생시키는 대신 stderr에만 출력합니다. 다른 언어를 사용할 때도 이 점을 고려하십시오.

디버그 정보#

pm.executeAsync는 성공 여부를 판단할 때 stderr 대신 종료 코드를 사용하므로, stderr를 사용하여 실행에 영향을 주지 않고 디버그 정보를 출력할 수 있습니다.
예:
TIP
1.
pm.executeAsync만 이 방식의 디버그 정보 출력을 지원합니다.
2.
프로그래밍 언어마다 stderr에 출력하는 방법이 다르므로, 해당 문서를 참조하십시오.

pm.execute에서 pm.executeAsync로 마이그레이션하기#

pm.executeAsync의 반환 값은 Promise 타입이므로, execute를 executeAsync로 직접 변경할 수는 없습니다. 하지만 async/await를 사용하면 최소한의 변경으로 마이그레이션할 수 있습니다.
TIP
Apidog 버전 2.3.24 이상(CLI 버전 1.2.38 이상)은 최상위 await를 지원합니다.
단계:
1.
execute를 executeAsync로 변경합니다.
2.
함수 호출 앞에 await를 추가합니다.

.jar 패키지에서 지정된 메서드 호출하기#

TIP
이 기능은 Apidog 버전 2.1.39 이상이 필요합니다. 리플렉션을 통해 jar를 호출하는 것만 지원하며, 내부 런타임 리플렉션을 사용하는 Spring Boot와 같은 jar는 지원하지 않습니다.
기본적으로 jar를 호출하면 Main 클래스의 main 메서드가 호출됩니다. options.className이 지정된 경우, 기본 동작을 재정의하고 대신 jar에서 지정된 메서드를 호출합니다.
jar에서 지정된 메서드를 호출하는 것은 다른 외부 프로그램과 다릅니다. Apidog는 내장 실행기를 사용하여 리플렉션으로 jar에서 메서드를 찾고 호출합니다. 호출된 메서드에 반환 값이 있는 경우, 문자열로 변환된 후 최종 반환 값으로 사용됩니다. 그렇지 않은 경우에는 다른 호출과 동일하게 stdout 콘텐츠를 반환 값으로 사용합니다.
예:
실제로 실행되는 명령은 다음과 같습니다.
여기서 <app-dist>/assets/JarExecuter-1.1.0-jar-with-dependencies.jar는 내장 실행기이며, 리플렉션을 통해 사용자 프로그램 ./scripts/jar-1.0-SNAPSHOT.jar에서 메서드 com.apidog.Test.combine(String,String)을 찾고, 매개변수(JSON 문자열) "hello" 및 "world"로 호출하는 역할을 합니다.
TIP
paramTypes는 선택 사항입니다. 지정하지 않으면 타입은 매개변수를 기반으로 자동 추론됩니다. 정수는 "int", 부동 소수점 수는 "double", 불리언은 "boolean", 문자열은 "String"으로 추론되며, 배열은 첫 번째 요소를 기반으로 추론됩니다. 예를 들어 [3]은 "int[]", [3.14]는 "double[]" 등으로 추론됩니다.
추론된 타입이 호출된 메서드의 실제 매개변수 타입과 일치하지 않는 경우, paramTypes를 수동으로 지정해야 합니다.
paramTypes 배열에서 지원되는 값: "Number"、"int"、"Integer"、"long"、"Long"、"short"、"Short"、"float"、"Float"、"double"、"Double"、"boolean"、"Boolean"、"String"、"Number[]"、"int[]"、"Integer[]"、"long[]"、"Long[]"、"short[]"、"Short[]"、"float[]"、"Float[]"、"double[]"、"Double[]"、"boolean[]"、"Boolean[]"、"String[]"
따라서 위 예시의 paramTypes는 생략할 수 있습니다.

예시#

1. PHP 프로그램#

스크립트:
test.php:

2. Jar 프로그램#

스크립트:
com.apidog.utils.jar:

일반적인 문제#

1. 일부 프로그램은 프로젝트 설정 파일이 필요하며, 없으면 오류가 발생합니다#

Rust 및 Go:
Rust:
could not find `Cargo.toml` in `<...>/ExternalPrograms` or any parent directory
Go:
go.mod file not found in current directory or any parent directory; see 'go help modules'
해결 방법: pm.executeAsync를 사용하고 cwd를 지정하십시오.

2. MacOS에는 Python 3가 기본 제공되지만 Python 2는 없습니다#

pm.executeAsync를 사용하고 command를 "python3"로 설정하십시오.

3. Command xxx not found#

해당 프로그램을 설치하고 필요한 디렉터리를 시스템 PATH에 추가하십시오. Java 설치에 대해서는 docs를 참조하십시오.

4. 일부 Windows 시스템에서 외부 스크립트 호출 시 깨진 문자가 출력됩니다#

windowsEncoding을 'utf-8'로 설정하십시오.
Modified at 2026-06-09 08:53:32
Previous
Postman 스크립트 참조
Next
JS 라이브러리 사용하기
Built with