변수를 사용하면 값에 이름을 부여하고 필요한 곳 어디에서든 재사용할 수 있습니다.
예를 들어, 자주 변경되는 API 토큰을 모든 요청에 붙여넣는 대신, ACCESS_TOKEN
과 같은 변수를 정의하고 요청에서 {{ACCESS_TOKEN}}
을 사용하세요. 토큰이 만료되면 변수를 한 번만 업데이트하면 해당 토큰을 사용하는 모든 요청이 자동으로 새 값을 가져옵니다.

변수 유형 한눈에 보기
Apidog는 특정 시나리오에 맞게 설계된 여러 변수 유형을 지원합니다. 팀 수준 전역 변수, 프로젝트 수준 전역 변수, 모듈 변수, 환경 변수, 테스트 데이터 변수 및 로컬 변수를 사용할 수 있습니다.
전역 변수
전역 변수를 사용하면 데이터를 광범위하게 공유할 수 있습니다. 두 가지 종류가 있습니다.
프로젝트 수준 전역 변수: 현재 프로젝트로 제한됩니다. 동일한 프로젝트 내의 요청 간에 데이터를 전달하는 데 적합합니다. 예를 들어, 로그인 엔드포인트에서 받은 토큰을 프로젝트 수준 전역 변수로 저장한 다음, 해당 프로젝트 내의 다른 요청에서 재사용할 수 있습니다.

팀 수준 전역 변수: 팀 내의 모든 프로젝트에서 공유됩니다. 프로젝트 간 협업에 이상적입니다. 예를 들어, 인증 서비스가 여러 프로젝트에서 사용되는 토큰을 발행하는 경우, 이를 팀 전역 변수로 저장할 수 있습니다.

권한 참고: 일반 멤버는 기존 팀 수준 전역 변수의 현재 값만 보고 변경할 수 있습니다. 변수를 추가/삭제하거나 이름을 변경할 수는 없습니다. 팀 관리자만 팀 리소스 → 변수에서 팀 수준 변수를 완전히 관리할 수 있습니다.

모듈 변수
모듈 변수는 특정 모듈에 범위가 지정됩니다. Postman Collection을 가져오면 해당 컬렉션 변수는 Apidog 모듈 변수로 가져와집니다.
모듈별 구성에 유용합니다. 예를 들어, 프로젝트에 사용자, 주문, 제품에 대한 별도의 모듈이 있을 수 있으며, 각 모듈은 모듈 변수에 자체 구성을 유지할 수 있습니다.

모듈 변수를 사용하려면 Apidog를 최신 버전으로 업데이트하세요.
환경 변수
환경 변수는 가장 많이 사용되는 유형일 것입니다. 각 요청에 대한 구성을 변경하지 않고도 환경 간에 전환할 수 있습니다.

실제로는 일반적으로 여러 환경(로컬, 테스트, 스테이징, 프로덕션)이 있습니다. 각 환경은 다른 서버 주소, 데이터베이스 연결 또는 타사 구성을 가집니다. 환경 변수를 사용하면 이러한 환경 간에 즉시 전환할 수 있습니다.
참고: 한 번에 하나의 환경만 활성화될 수 있습니다. 환경을 선택하면 해당 환경에 정의된 모든 변수가 적용됩니다.

테스트 데이터 변수
테스트 데이터 변수는 데이터 기반 테스트를 가능하게 합니다. 동일한 엔드포인트를 여러 데이터 세트로 테스트해야 할 때 유용합니다.
여러 행(또는 객체)이 포함된 CSV 또는 JSON 파일을 준비하세요. 자동화된 테스트 시나리오에서 파일을 가져오면 Apidog는 각 행을 하나의 변수 세트로 반복하고 각 세트에 대해 테스트를 실행합니다.

로컬 변수
로컬 변수는 수명이 가장 짧으며, 단일 요청 또는 테스트 실행 중에만 유효합니다. 실행 후에는 사라집니다.

로컬 변수는 가장 높은 우선순위를 가지므로, 다른 변수 유형을 일시적으로 재정의하는 데 완벽합니다. 예를 들어, 환경에서 user_id
를 정의했지만 특정 테스트를 위해 다른 값이 필요한 경우, 환경을 변경하는 대신 동일한 이름의 로컬 변수를 설정할 수 있습니다.
변수 우선순위
여러 변수가 동일한 이름을 공유하는 경우, Apidog는 우선순위(가장 높음에서 가장 낮음)에 따라 변수를 해결합니다: 로컬 변수 > 테스트 데이터 변수 > 환경 변수 > 모듈 변수 > 프로젝트 수준 전역 변수 > 팀 수준 전역 변수
예시: userId
라는 이름의 세 가지 변수를 정의하는 경우:
- 프로젝트 수준 전역 변수
userId = 1000
- 모듈 변수:
userId = 2000
- 환경 변수:
userId = 3000
요청에서 {{userId}}
를 사용하면 유효 값은 3000
(환경에서 가져옴)이 됩니다. 환경 값이 없으면 모듈 값(2000
)으로, 그 다음에는 프로젝트 전역 값(1000
)으로 대체됩니다.
초기 값 vs 현재 값
전역, 모듈 및 환경 변수는 초기 값과 현재 값을 모두 가지며, 이는 팀 공유와 개인 프라이버시의 균형을 맞춥니다.

- 초기 값은 Apidog 서버에 저장되며 팀원들과 동기화됩니다. 테스트 서버 URL 및 공개 API 키와 같은 공유 구성에 사용하세요.
- 현재 값은 사용자 기기에만 저장됩니다. 개인 API 키, 비밀번호 또는 개인 환경 설정과 같은 비밀 정보에 사용하세요.
현재 값이 존재하면 Apidog는 이를 선호합니다. 현재 값이 비어 있으면 Apidog는 초기 값을 사용합니다. 현재 값이 초기 값을 따르도록 하려면 현재 값 옆의 링크 아이콘을 클릭하여 다시 바인딩하세요.

현재 값은 사용자 기기에 저장되며, 캐시를 지우거나 기기를 전환하면 손실될 수 있습니다. Apidog 웹 버전에서는 브라우저에 저장됩니다. 새 기기로 이동하려면 환경을 내보내기/가져오기하여 현재 값을 마이그레이션하세요.
참고: Apidog CLI로 자동화된 테스트를 실행할 때, 중요한 차이점을 기억하세요: Apidog 클라이언트는 실행 중에 현재 값을 사용하는 반면, CLI는 초기 값을 사용합니다. 클라이언트와 CLI 간에 결과가 다른 경우, 이것이 일반적인 원인입니다.
변수 설정 방법
값이 어디에서 오는지, 어떻게 사용할지에 가장 적합한 방법을 선택하세요.
환경 관리 페이지에서 직접 변수 설정
가장 간단한 방법입니다. 환경 관리 버튼(오른쪽 상단)을 클릭하고, 전역 또는 특정 환경으로 전환한 다음, 이름과 값을 추가하세요.

이 방법은 데이터베이스 연결과 같은 안정적인 구성에 유용합니다. 초기 값(공유)과 현재 값(개인)을 모두 설정할 수 있습니다.
"변수 저장" 기능 사용
변수 값은 종종 응답에서 나옵니다. 예를 들어 로그인 엔드포인트의 토큰이나 사용자 생성 엔드포인트의 사용자 ID와 같습니다. 후처리(Post Processors)에서 시각적인 "변수 저장" 기능을 사용하여 새 변수를 설정하세요.
요청의 후처리(Post Processors)에서 "변수 저장"을 추가하고, 소스(일반적으로 JSON 응답)를 선택한 다음, JSONPath를 사용하여 필드를 선택합니다.

예를 들어, 응답 JSON이 다음과 같을 경우:
{
"user": {
"id": "69",
"email": "Ralph85@gmail.com",
"first_name": "Katlynn",
"last_name": "Reichert",
"api_token": "dolore ut mollit Duis sit",
"created_at": "2025-09-19T01:03:50.236Z",
"updated_at": "2025-05-10",
"deleted_at": "2025-09-18T18:30:51.217Z",
"role": "developer",
"metadata": {}
}
}
$.user.email
을 사용하여 토큰을 추출합니다.

요청의 응답 섹션에서 직접 변수를 설정할 수도 있습니다.

스크립트를 통한 변수 설정
더 복잡한 로직의 경우, 전처리(Pre Processors) 또는 후처리(Post Processors)에서 커스텀 스크립트를 사용하세요. Apidog는 모든 변수 유형을 조작할 수 있는 완전한 스크립트 API를 제공합니다.
// 프로젝트 수준 전역 변수 설정
pm.globals.set('variable_key', 'variable_value');
// 팀 수준 전역 변수 설정 (먼저 팀 리소스 페이지에서 정의해야 함)
pm.globals.set('variable_key', 'variable_value', 'TEAM');
// 환경 변수 설정
pm.environment.set('variable_key', 'variable_value');
// 모듈 변수 설정
pm.moduleVariables.set('variable_key', 'variable_value');
// 로컬 변수 설정
pm.variables.set('variable_key', 'variable_value');
객체나 배열을 저장할 때는 먼저 문자열화(stringify)하고, 읽을 때는 파싱(parse)하세요. 예를 들어:
pm.environment.set('user', JSON.stringify(userObj));
const users = JSON.parse(pm.environment.get('user'));
참고: 스크립트는 변수의 현재 값만 설정할 수 있습니다. 초기 값은 환경 관리 페이지에서 설정해야 합니다.
데이터베이스 데이터를 변수로 사용
Apidog는 데이터베이스에서 직접 데이터를 가져와 변수로 설정할 수 있습니다. 이는 실제 레코드에 의존하는 테스트에 매우 유용합니다.
후처리(Post Processors)에 데이터베이스 작업을 추가하고, 연결을 구성하고, SQL을 작성하세요. 그런 다음 JSONPath를 사용하여 필드를 변수로 추출합니다.

변수 사용 팁
변수 사용 가능 위치
변수는 요청이 실제로 전송될 때만 해결됩니다. 즉, 헤더, 매개변수, 본문, 테스트 시나리오 및 스크립트 등 요청 전송과 관련된 모든 곳에서 사용할 수 있습니다.
Apidog는 시각적 접근을 우선하므로, 간단한 규칙은 다음과 같습니다: "동적 값" 버튼이 보이면 그곳에서 변수를 사용할 수 있습니다.


기본 문법
변수를 참조하려면 이중 중괄호를 사용합니다: {{variableName}}
. 이는 URL, 헤더, 매개변수 및 본문에서 작동합니다.
예를 들어, 매개변수에서:

그리고 본문에서:

JSON 본문 참고 사항: 문자열 변수에는 따옴표가 필요하고, 숫자 변수에는 필요하지 않습니다. 이중 중괄호는 JSON 린트 경고를 유발할 수 있지만, 안전하게 무시할 수 있습니다.
"해결되지 않은 변수"가 표시되어도 당황하지 마세요. 후처리(Post Processors) 또는 스크립트에서 설정된 변수는 요청이 실행될 때까지 존재하지 않을 수 있으며, 로컬 변수는 실행 후에 사라집니다. 확인하는 가장 좋은 방법은 실제로 요청을 보내는 것입니다.
변수에서 하위 필드 가져오기
때로는 변수가 문자열이나 숫자뿐만 아니라 객체나 배열을 저장하기도 합니다. 예를 들어, 사용자 API는 종종 ID, 이름, 이메일 등을 포함하는 객체를 반환합니다.
이 응답 객체를 user
라는 변수로 저장했다고 가정해 봅시다:
{
"id": 1001,
"name": "Joe",
"email": "joe@example.com",
"role": "admin"
}
{{user.id}}
(1001) 또는 {{user.name}}
("Joe")와 같이 점 표기법으로 특정 필드를 참조할 수 있습니다.
배열의 경우도 비슷합니다. users
변수가 있다면:
[
{"id": 1001, "name": "Joe"},
{"id": 1002, "name": "Rio"},
{"id": 1003, "name": "Outher"}
]
첫 번째 사용자의 이름을 얻으려면 {{users[0].name}}
을 사용하고, 두 번째 사용자의 ID를 얻으려면 {{users[1].id}}
를 사용합니다.
이는 JSONPath와 유사한 의미론을 따릅니다. 변수 이름이 루트($
)처럼 작동합니다.
스크립트에서 변수 사용
전처리(Pre Processors) 또는 후처리(Post Processors)의 커스텀 스크립트에서 변수를 사용할 수 있습니다. Apidog는 다양한 유형의 변수에 유연하게 접근할 수 있는 완전한 스크립트 API를 제공합니다.
// 프로젝트 수준 전역 변수 가져오기
pm.globals.get('variable_key');
// 팀 수준 전역 변수 가져오기
pm.globals.get('variable_key', 'TEAM');
// 환경 변수 가져오기
pm.environment.get('variable_key');
// 모듈 변수 가져오기
pm.moduleVariables.get('variable_key');
// 로컬 변수 가져오기
pm.variables.get('variable_key');
문자열로 저장된 객체/배열의 경우, 먼저 파싱합니다:
const userObj = JSON.parse(pm.environment.get('user'));
console.log(userObj.name);
테스트 데이터 변수를 사용한 데이터 기반 테스트
여러 데이터 행을 포함하는 CSV 또는 JSON 파일을 업로드하세요. 실행 중에 Apidog는 각 행의 값으로 {{variableName}}
을 대체하고 각 행당 한 번씩 테스트를 실행합니다. 이는 많은 입력으로 견고성을 검증하는 데 완벽합니다.


동적 값 표현식
사용자 정의 변수 외에도 Apidog는 특정 규칙에 따라 무작위 데이터를 생성하는 동적 값을 지원합니다.

스크립트에서 await pm.variables.replaceInAsync()
를 사용하여 동적 표현식이 포함된 문자열을 처리할 수 있습니다:
const template = "Hello, {{$person.fullName}}";
const result = await pm.variables.replaceInAsync(template);
console.log(result); // 무작위로 생성된 이름 출력

동적 값은 미리 데이터셋을 준비할 필요 없이 무작위 테스트 데이터를 생성하는 데 완벽합니다.
요약
변수는 Apidog의 가장 강력한 기능 중 하나입니다. 변수는 반복을 줄이고, 테스트를 유연하게 만들며, 프로젝트와 환경 간 전환을 단순화합니다. 팀 전체에 전역 설정을 공유하든, CSV 데이터로 테스트를 구동하든, 로컬에서 값을 재정의하든, 변수는 워크플로우를 효율적이고 체계적으로 유지하는 데 도움이 됩니다. 변수 유형, 우선순위 및 설정 방법을 숙달하면 API 요청을 일관성 있고 유지보수 가능하며 실제 시나리오에 대비할 수 있습니다.