API 설계, 문서화, 디버깅, 모킹, 테스트를 위한 협업 도구인 Apidog에는 요청 송수신 시 데이터베이스 작업 지원이라는 매우 호평받는 기능이 있습니다. 이 기능은 엔드포인트를 호출할 때 요청 데이터를 준비하거나 응답을 받을 때 데이터베이스에 데이터를 삽입해야 하는 사용자에게 큰 편의를 제공하여 사용자들에게 많은 사랑을 받고 있습니다.
하지만 많은 사용자가 이 기능을 매일 광범위하게 사용하면서 몇 가지 개선점이 발견되었습니다. 가장 자주 제기되는 의견 중 하나는 다음과 같습니다:
데이터베이스 연결 설정을 팀 관리자가 설정하고 다른 팀원들이 협업하여 사용할 수 없을까요? 모든 사람이 연결 정보를 다시 입력하는 것은 정말 번거롭습니다.
이 기능의 초기 설계 단계부터 데이터베이스 설정을 협업하여 사용할 수 있도록 허용할지 여부를 이미 고려했습니다. 하지만 데이터베이스 사용자 이름과 비밀번호 같은 민감한 정보를 클라우드 서버에 저장하도록 허용하는 것은 신중한 고려가 필요한 문제입니다. 따라서 당시에는 데이터 보안이 데이터베이스 연결 설정의 협업 사용을 구현하지 않은 핵심적인 이유였습니다.
오늘날 Apidog은 수백만 개발자를 위한 주요 API 협업 및 관리 도구가 되었으며, Apidog 자체의 기반 기능도 더욱 강력해졌습니다. 따라서 우리는 데이터 보안과 개발 효율성의 균형을 맞춰 사용자들을 만족시키기 위해 데이터베이스 연결 설정의 협업 사용에 대한 이 최적화 요구 사항을 재고했습니다.
클라우드에 데이터베이스 연결 설정 저장하기
1단계: 새 데이터베이스 연결 생성
Apidog 버전이 2.6.50 이상으로 업데이트되면 "프로젝트 설정 -> 데이터베이스 연결"로 이동하여 새 데이터베이스 연결을 생성합니다. 모든 연결 필드가 변수를 사용하여 필드 값을 채우도록 안내하는 것을 확인할 수 있습니다.

2단계: 다른 환경에서 변수 설정
환경 관리에서 다른 환경에서 사용할 데이터베이스 연결 변수를 설정합니다. 이렇게 하면 이 변수들을 데이터베이스 연결 설정에 적용할 수 있습니다.

3단계: 변수를 사용하여 데이터베이스 연결 구성
데이터베이스 연결 설정 페이지로 돌아가서, 변수 형식을 사용하여 변수를 수동으로 입력하거나 동적 값 기능을 통해 이 변수들을 직접 참조할 수 있습니다. 여기서는 환경 변수를 사용하는 것이 좋습니다. 이렇게 하면 다른 환경의 컨텍스트에 따라 설정이 자동으로 전환됩니다. 포트 번호를 제외한 모든 다른 필드는 변수를 사용하여 채우는 것이 가장 좋습니다.

4단계: 데이터베이스 연결 저장 및 사용
변수를 사용하는 데이터베이스 연결 설정을 저장하면 API 관리, 자동화된 테스트 및 기타 영역의 데이터베이스 작업에서 사용할 수 있습니다.

사용 시, 로컬에 저장된 데이터베이스 연결 설정과 클라우드에 저장된 데이터베이스 연결 설정의 실제 사용 메커니즘은 다음과 같습니다:
| 로컬 저장 설정 (변수 미사용) | 클라우드 저장 설정 (변수 사용) |
| 1. 엔드포인트 요청이 데이터베이스 작업을 트리거하면 지정된 데이터베이스 설정이 읽혀집니다. | 1. 엔드포인트 요청이 데이터베이스 작업을 트리거하면 지정된 데이터베이스 설정이 읽혀집니다. |
| 2. 시스템은 로컬 파일에서 설정 세부 정보를 실제 값을 직접 사용하여 읽습니다. | 2. 설정은 클라우드에서 가져오며 변수를 포함합니다. 시스템은 이름과 우선순위에 따라 이 변수들을 해석합니다. |
| 3. 이 값들(예: 호스트, 사용자 이름, 비밀번호)은 완전한 데이터베이스 연결을 구축하고 연결을 시작하는 데 사용됩니다. | 3. 변수는 실제 값으로 대체되어 완전한 데이터베이스 연결 설정을 형성하고 연결이 시작됩니다. |
| 4. 연결이 성공하면 데이터베이스 작업에 정의된 SQL 문이 실행되며, 결과를 변수에 저장하는 등의 작업도 함께 수행됩니다. | 4. 연결이 성공하면 데이터베이스 작업에 정의된 SQL 문이 실행되며, 결과를 변수에 저장하는 등의 작업도 함께 수행됩니다. |
전문가 팁: 이 데이터베이스 연결 설정을 사용해야 하는 다른 프로젝트 멤버들은 이제 환경 관리로 이동하여 해당 변수를 찾아 로컬 값을 입력하기만 하면 됩니다. 이전처럼 프로젝트 관리에서 설정할 필요가 없습니다.
이것은 클라우드 데이터베이스 연결을 구성하는 자세한 단계입니다. 로컬 값 사용이 권장되며 실제 설정은 여전히 로컬에 저장되므로 데이터 보안 위험에 대해 걱정할 필요가 없습니다. 변수는 단순히 프로세스를 더 편리하고 관리하기 쉽게 만듭니다.
Apidog은 데이터베이스 연결 설정에 실제 값을 직접 입력하는 것도 계속 지원합니다. 이는 기존 설정과의 호환성을 보장하고 로컬 데이터로 작업하는 것을 선호하는 사용자를 지원합니다. 하지만 더 나은 효율적인 경험을 위해 변수로 전환하고 클라우드에 저장하도록 권장하는 명확한 알림이 표시될 것입니다.

클라우드 데이터베이스 연결 사용 시 주의사항:
데이터베이스 연결 설정에서 변수를 사용할 때, 실제로 클라우드에 저장되는 것은 변수 이름입니다. 데이터베이스 연결을 실행할 때, 변수 사용 규칙에 따라 완전한 연결 설정이 구성되어 연결이 시작됩니다.
✅ 권장 조치:
- 변수 값에 "현재 값" 또는 "볼트 변수"를 사용하십시오.
- 포트 번호는 편의성과 위험 없음으로 인해 변수를 사용할 필요 없이 직접 입력할 수 있습니다.
❌ 권장하지 않는 조치:
- 변수 값에 "초기 값"을 사용하는 것.
- 일반 텍스트와 변수를 혼합하는 것. 이는 여전히 모든 사람이 프로젝트 설정에서 개별적으로 구성해야 합니다.
볼트 변수를 사용하여 데이터베이스 연결 설정 저장하기
데이터베이스 연결 설정에는 볼트 변수를 사용하는 것이 좋습니다. 이 변수들은 외부 비밀 관리 서비스에서 가져와 로컬 머신에 암호화된 형태로 저장됩니다. 이 접근 방식은 안전한 데이터 보호와 클라우드 스토리지를 통한 효율적인 팀 협업이라는 두 가지 이점을 모두 제공합니다.
1단계: 볼트 변수 구성
볼트 제공자를 설정하고 데이터베이스 연결 자격 증명의 일반 텍스트를 저장합니다. 다른 환경의 데이터베이스 연결 설정을 위해 제공자에서 다른 볼트 키를 생성해야 합니다. 구체적인 방법은 도움말 문서를 참조하십시오.

2단계: 환경 변수 생성
각 환경에 대해 dbHost와 같은 동일한 이름의 환경 변수를 생성합니다. 그런 다음, 해당 환경에 맞는 볼트 변수를 참조하도록 초기 값을 설정하고, 현재 값은 초기 값을 따르도록 합니다.

왜 이렇게 해야 할까요?
- 볼트 변수를 환경 변수로 래핑합니다. 따라서 나중에 데이터베이스 연결을 구성할 때 환경 변수를 선택하기만 하면 됩니다. Apidog은 현재 환경에 따라 올바른 값을 자동으로 사용합니다.
- 데이터를 초기 값으로 저장하면 모든 프로젝트 멤버가 수동으로 다시 설정할 필요 없이 사용할 수 있어 팀 효율성이 향상됩니다.
3단계: 볼트 비밀을 사용하여 데이터베이스 연결 설정
데이터베이스 연결을 설정할 때, 환경 관리에서 정의한 환경 변수(예: dbHost, dbUser, dbPassword)를 사용합니다. 이 변수들을 빠르게 참조하려면 동적 값 기능을 사용하십시오.

4단계: 데이터베이스 연결 테스트
"연결 테스트"를 클릭합니다. 테스트를 위한 환경을 선택하라는 메시지가 표시됩니다.
연결에 사용되는 변수(예: 호스트, 포트, 사용자 이름 등)가 해당 환경에 올바르게 구성되었는지 확인하십시오. 확인되면 시스템이 연결을 테스트합니다:
- ✅ 성공하면 준비 완료입니다.
- ❌ 실패하면 특정 문제 해결 단계를 위해 오류 메시지를 확인하십시오.

5단계: 엔드포인트 요청에서 데이터베이스 작업 사용
엔드포인트 요청의 Pre Processors 또는 Post Processors에서 저장된 클라우드 데이터베이스 설정을 사용하여 데이터베이스 작업을 추가할 수 있습니다.

예시:
다음과 같은 작업을 수행한다고 가정해 봅시다:
- 데이터베이스에서 "Nancy"라는 이름의 반려동물
id를 조회합니다. - 해당 ID를 사용하여 엔드포인트 요청을 통해 상세 정보를 가져옵니다.

그러면 Apidog은 다음을 수행합니다:
- 데이터베이스 작업 실행
- 값 가져오기 (예:
petID) - 변수로 저장 (예:
petId) - 엔드포인트 요청에서 해당 변수 사용
위에서 설명한 대로 데이터베이스 설정이 클라우드에 구성되면:
- 다른 팀원들이 자신의 데이터베이스 작업에서 재사용할 수 있습니다.
- 각 개인이 수동으로 구성할 필요가 없습니다.
- 시간을 절약하고 프로젝트 전반의 일관성을 보장합니다.
마무리
위에서 설명한 방법은 볼트 변수를 사용하여 데이터베이스 연결 설정을 안전하게 저장하고 적용하는 방법을 보여줍니다. 다음은 단계별 요약입니다:
- 각 환경의 데이터베이스 설정에 대해 별도의 볼트 변수를 생성합니다 (예: 테스트용
testDBHost, 프로덕션용prodDBHost). 포트는 일반적으로 동일하므로 건너뛸 수 있습니다. - 모든 환경에서 동일한 이름의 환경 변수를 정의합니다. 각 환경에 대해 환경 변수의 초기 값을 해당 볼트 변수를 참조하도록 설정합니다.
아래 표는 테스트 및 프로덕션 환경에서 이러한 환경 변수를 설정하는 방법을 보여줍니다. 현재 값을 초기 값과 일치하도록 설정할 수 있습니다.
| 환경 | 환경 변수 이름 | 초기 값 | 설명 |
| 테스트 환경 | dbHost | {{vault:testDbHost}} | 테스트 환경의 데이터베이스 주소에 대한 볼트 변수 참조 |
| dbUsername | {{vault:testDbUsername}} | 테스트 환경의 데이터베이스 사용자 이름에 대한 볼트 변수 참조 | |
| dbPwd | {{vault:testDbPwd}} | 테스트 환경의 데이터베이스 비밀번호에 대한 볼트 변수 참조 | |
| dbTable | store | 데이터 보안 문제가 없으므로 직접 입력합니다. 볼트 변수는 선택 사항입니다. | |
| 프로덕션 환경 | dbHost | {{vault:prodDbHost}} | 프로덕션 환경의 데이터베이스 주소에 대한 볼트 변수 참조 |
| dbUsername | {{vault:prodDbUsername}} | 프로덕션 환경의 데이터베이스 사용자 이름에 대한 볼트 변수 참조 | |
| dbPwd | {{vault:prodDbPwd}} | 프로덕션 환경의 데이터베이스 비밀번호에 대한 볼트 변수 참조 | |
| dbTable | store | 데이터 보안 문제가 없으므로 직접 입력합니다. 볼트 변수는 선택 사항입니다. |
