Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
distributed-system-testing — 분산 시스템 테스트를 위한 AI 에이전트 스킬 | Kitploit
도구/GitHubGitHub/shenli/distributed-system-testing
FuzzingPapers & ResearchLearning & EducationCurated ResourcesChaos EngineeringAI SecurityLabs & Practice
GitHubshenli/distributed-system-testing

distributed-system-testing

분산 시스템 테스트를 위한 AI 에이전트 스킬

저장소 보기
22712845일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

분산 시스템 테스트 스킬

데이터를 저장하거나 여러 프로세스 또는 머신에 걸쳐 실행되는 시스템을 위해 AI 코딩 에이전트가 의미 있는 테스트를 설계하고, 실행하며, 결과를 설명하도록 돕는 두 가지 스킬입니다.

"저장이 성공하면 재시작 후에도 데이터가 남아 있다"와 같은 제품 약속에서 시작하여, 에이전트가 실행하고 확인할 수 있는 테스트로 전환하세요. 재시도, 동시 요청 또는 장애로 인해 데이터가 유실되거나 중복될 수 있는 데이터베이스, 큐, 워크플로 엔진 및 서비스에 이 스킬을 사용하세요. 단일 머신에서 실행되는 서비스도 도움이 될 수 있습니다.

테스트 전문가가 될 필요는 없습니다. 기능과 무엇이 계속 참이어야 하는지 설명하면, 설계 스킬이 테스트를 선택하고 그것이 왜 중요한지 설명하는 데 도움을 줍니다.

스킬은 Markdown 지침, 템플릿 및 참고 자료입니다. 코딩 에이전트는 프로젝트의 테스트 도구와 런타임을 사용하여 이를 따릅니다. 이 저장소에는 데이터베이스 테스트 러너나 즉시 사용 가능한 클러스터가 포함되어 있지 않습니다.

스킬제공할 것생성물
테스트 설계코드베이스와 테스트하려는 변경 사항 또는 기능무엇을 테스트할지, 어떻게 확인할지, 얼마나 테스트할지 설명하는 계획
테스트 실행계획과 테스트 환경결과, 지원 로그 및 데이터, 실패 재현 단계, 보고서

설계 스킬은 단독으로 사용할 수 있습니다. 실행은 저장된 계획을 읽는 별도의 단계이므로, 실행하기 전에 작업과 비용을 검토할 수 있습니다.

빠른 시작, Codex 설정 또는 테스트 환경 가이드로 시작하세요.

빠른 시작

1. 스킬 설치

코딩 에이전트에 다음을 붙여넣으세요:

Read https://raw.githubusercontent.com/shenli/distributed-system-testing/main/INSTALL.md
and follow the instructions to install or update
distributed-testing-skills for this agent.

설치 가이드는 ~/.local/share/distributed-testing-skills/에 있는 공유 체크아웃을 사용하며, 에이전트를 위한 포인터 또는 심볼릭 링크를 구성합니다. 업데이트하려면 동일한 프롬프트를 재사용하세요. 아래 프롬프트에 명시된 경로를 사용하면 자동 검색 없이도 스킬을 로드할 수 있습니다. 다른 위치를 선택한 경우 설치 경로를 대체하세요.

Claude Code의 경우, 저장소에는 플러그인 설치 옵션도 포함되어 있습니다:

/plugin marketplace add shenli/distributed-system-testing
/plugin install distributed-testing-skills@distributed-testing-skills

2. 프로젝트 디렉터리에서 계획 설계하기

테스트하려는 저장소에서 에이전트를 시작하세요. 특정 변경 사항의 경우:

Use ~/.local/share/distributed-testing-skills/skills/designing-distributed-system-tests/SKILL.md

Design a test plan for the current branch's changes to adding log entries,
retrying failed requests, and recovering after a crash.
Reuse the existing tests and setup instructions.
Save the plan to docs/testing-plans/append-recovery.md.

예시 기능을 여러분의 것으로 교체하세요. 더 광범위한 검토를 원한다면 프로젝트 전체 계획을 요청하고 포함할 부분을 지정하세요. 이 모드는 단일 변경 사항이 아니라 기존 테스트를 검토하고 시스템 전반에서 누락된 커버리지를 식별합니다.

검사 중인 약속, 제안된 테스트, 필요한 도구, 실행 시간을 검토하세요. 문서 오타나 이와 유사하게 영향이 적은 변경에는 분산 테스트 계획 대신 가벼운 테스트 권장 사항이 제공되어야 합니다.

3. 일회용 테스트 환경에서 계획 실행

Use ~/.local/share/distributed-testing-skills/skills/executing-distributed-system-tests/SKILL.md

Run the small initial checks (the smoke tier) from
docs/testing-plans/append-recovery.md against this project's local test
environment. Keep temporary test scripts and results under
./test-sessions/. Use default mode; do not modify project source files.
Report what ran, what failed, and what remains untested.

실행 스킬은 기존 도구를 탐색하고, 환경에서 사용 가능한 것이 무엇인지 질문한 뒤, 요구 사항을 검증합니다. 누락된 의존성이나 효과가 없는 시뮬레이션 실패는 조용히 성공한 테스트로 집계되지 않고 반드시 보고되어야 합니다. 작게 시작한 뒤, 계획에 정의된 더 길고 철저한 실행을 요청하세요.

자세한 프롬프트, 사용자 지정 출력 경로, 작성자 모드에 대해서는 USAGE.md를 참조하세요.

Codex 사용자용

위의 설치 프롬프트를 Codex에서 실행하세요. 이 가이드는 공유 체크아웃의 두 스킬 폴더를 ~/.agents/skills/로 링크하며, Codex는 이곳에서 해당 폴더를 탐색합니다. 프로젝트 전용 설치의 경우에는 해당 프로젝트의 .agents/skills/를 대신 사용하세요. 이러한 위치와 심볼릭 링크 지원은 공식 Codex 스킬 문서에 설명되어 있습니다.

테스트하려는 프로젝트를 여세요. Codex CLI 또는 IDE 확장에서 /skills를 사용하여 두 스킬이 모두 나타나는지 확인하거나, $를 입력하여 하나를 선택하세요. 새로 설치한 스킬이 나타나지 않으면 Codex를 재시작하세요. 빠른 시작에 있는 명시적 파일 경로 프롬프트를 사용할 수도 있습니다. 공식 호출 안내를 참조하세요.

예를 들어, Codex에 계획 설계를 요청하세요:

$designing-distributed-system-tests
Design a test plan for this project's retry and recovery behavior.
I have Docker locally and can run disposable containers.
Start with normal operation, then simultaneous requests and restarts.
Save the plan to docs/testing-plans/retry-recovery.md.

검토한 후 초기 테스트를 실행합니다:

$executing-distributed-system-tests
Run the smoke tier of docs/testing-plans/retry-recovery.md.
Use default mode and save results under ./test-sessions/.
Docker is available; use the project's documented container setup.
Report any missing tools or permissions and which tests they prevent.

스킬을 설치한다고 해서 Docker, 원격 접속, 테스트 클러스터가 제공되는 것은 아니며, 지침만 제공됩니다. Codex는 명령이 실행될 환경에 접근할 수 있어야 합니다. 원격 테스트를 위해서는 테스트 호스트, 기존 연결 방식, 프로젝트의 설정 명령을 알려주어야 합니다. 접근이 불가능한 경우에도 계획은 설계할 수 있지만, 원격 테스트가 실행되었다고 보고할 수는 없습니다.

테스트 환경 선택 및 준비

질문에 답할 수 있는 가장 작은 구성부터 사용하세요. 다음은 애플리케이션에 맞게 조정할 출발점이며, 하드웨어 요구 사항이나 번들 배포 레시피가 아닙니다.

목표권장 구성알 수 있는 것
정확성 버그를 빠르게 찾기노트북, 프로젝트 런타임, 일회용 로컬 프로세스 또는 컨테이너해당 구성에서 요청, 재시도, 트랜잭션, 재시작이 올바르게 동작하는지 여부
버전 간 성능 비교조용한 전용 테스트 머신, 서비스를 측정할 때 요청을 보낼 별도 머신동일한 조건에서 변경이 속도나 리소스 사용에 영향을 주는지 여부
여러 머신에 걸친 장애 테스트별도의 테스트 호스트 또는 VM, 호스트당 서버 인스턴스 하나, 별도의 테스트 컨트롤러서버 하나가 중단되거나 서버 간 통신이 끊길 때 시스템이 어떻게 처리하는지

로컬 정확성 테스트

프로젝트의 기존 설정 지침부터 시작하세요. 필요한 언어/런타임을 설치하고, 컨테이너를 사용하는 경우 Docker 또는 지원되는 다른 컨테이너 런타임을 설치하세요. 각 인스턴스에 자체 포트와 데이터 디렉터리 또는 볼륨을 부여하세요. 전용 테스트 데이터베이스와 데이터를 재설정할 수 있는 반복 가능한 방법을 사용하세요.

이름으로 통신하는 컨테이너의 경우, 사용자 정의 Docker 네트워크가 컨테이너 간 이름 확인을 제공할 수 있습니다. Docker 네트워킹을 참조하세요. 노트북 하나에 여러 컨테이너를 두는 것은 통신을 시험하는 데 유용하지만, 여전히 호스트의 리소스와 장애 위험을 공유합니다. 별도 머신을 잃는 상황에 대한 복원력을 입증하지는 못합니다.

성능 테스트

부하 생성기는 테스트 요청을 보내는 프로그램입니다. 프로젝트의 기존 벤치마크를 선호하세요. 예를 들어 PostgreSQL의 pgbench는 반복 트랜잭션과 사용자 정의 SQL 스크립트를 지원합니다. 도구의 기본 워크로드를 대표적인 것으로 간주하지 말고, 애플리케이션과 유사한 요청과 데이터 크기를 선택하세요.

  1. 비교를 공정하게 하세요. 이전 버전과 새 버전에 동일한 하드웨어, 데이터, 설정, 테스트 스크립트를 사용하세요. 테스트 머신에서 관련 없는 빌드나 무거운 작업을 피하세요. CPU, 메모리, 디스크, 소프트웨어 버전, 설정을 기록하세요.
  2. 시작과 측정을 분리하세요. 캐시와 연결이 워밍업될 시간을 준 다음, 고정된 구간을 측정하세요. 콜드 스타트가 중요하다면 별도로 테스트하세요. 각 버전의 실행을 여러 번 반복하고 변동을 보고하세요.
  3. 트래픽을 점진적으로 늘리세요. 초당 시도된 요청과 완료된 요청, 오류, 타임아웃을 기록하세요. 부하 생성기도 모니터링하세요. 생성기가 한계에 도달했다면, 테스트는 서비스가 아니라 클라이언트를 측정하고 있을 수 있습니다.
  4. 평균 너머를 보세요. p50, p95, p99 응답 시간, 즉 요청의 50%, 95%, 99%가 완료되는 시간을 보고하세요. 이와 함께 CPU, 메모리, 네트워크, 디스크 사용량을 수집하고, 데이터 정확성 검사를 계속 활성화해 두세요.
  5. 트래픽이 도착하는 방식을 맞추세요. 서비스가 느려지는 동안에도 프로덕션 요청이 계속 도착한다면, 그 도착률을 유지할 수 있는 생성기를 사용하세요. 각 응답을 기다린 후 다음 요청을 보내면 과부하를 숨길 수 있습니다. k6 트래픽 모델 가이드에서 그 차이를 설명합니다. 완료된 요청뿐 아니라 놓친 요청 시작도 보고하세요.

설계 스킬에 목표 요청률, 데이터 크기, 허용 가능한 응답 시간, 사용 가능한 머신을 알려주세요. 아직 목표가 없다면 초기 측정 계획을 요청하세요. 판정 중인 동일한 실행에서 합격 기준을 임의로 만들어내지 마세요.

실제 분산 구성

애플리케이션이 지원하는 클러스터 크기를 사용하세요. 세 개의 투표 복제본을 지원하는 서비스의 경우, 시작 레이아웃은 세 개의 서버 호스트와 요청을 보내고 결과를 수집하는 컨트롤러입니다. 3노드 과반수에는 두 개의 투표가 필요하므로, 이 레이아웃은 한 투표자의 손실을 시험할 수 있습니다. 다른 아키텍처에는 다른 레이아웃이 필요합니다. 하나의 물리적 호스트에 있는 별도의 VM은 여전히 물리적 호스트 손실을 테스트하지 못합니다.

테스트를 실행하기 전에:

  • 각 호스트의 주소, 역할, 소프트웨어 버전, 스토리지 위치를 기록하세요. 중요한 부분에서는 프로덕션 스토리지 동작과 일치시키세요. 공유 스토리지가 실제 설계의 일부가 아니라면 복제본에 동일한 데이터 디렉터리를 주지 마세요.
  • 클라이언트-서버 및 서버-서버 연결을 확인하세요. 설계에서 리더를 사용하는 경우, 장애를 유발하기 전에 리더가 누구인지와 복제가 작동하는지 확인하세요.
  • 원격 시작/중지 명령과 로그 수집을 준비하세요. 애플리케이션 트래픽을 중단하는 동안 컨트롤러의 관리 연결을 사용 가능하게 유지하여, 테스트가 통신을 복원하고 증거를 수집할 수 있도록 하세요.
  • 하나의 프로세스를 중지하거나 특정 네트워크 링크 하나를 중단하는 방법을 선택하고 필요한 권한을 확인하세요. 먼저 프로젝트의 기존 도구를 사용하세요. 다음 테스트 전에 각 중단을 복원하고 복구를 확인하세요.
  • 로그를 비교하기 위해 시계를 동기화된 상태로 유지하되, 서로 다른 호스트의 타임스탬프가 정확한 이벤트 순서를 확립한다고 가정하지 마세요. 계획의 검사기가 요구하는 기록 방법을 사용하세요.

정상 트래픽으로 시작한 다음, 서버 하나를 재시작하고, 그다음 요청이 계속되는 상태에서 연결을 끊으세요. 성공적인 복구와 데이터의 정확성을 모두 테스트하세요. 더 큰 클러스터, 리전 간 레이아웃, 스토리지 장애는 실제로 테스트해야 하는 보장 사항을 따라야 합니다.

Codex에 구체적인 환경 설명을 제공하세요. 예를 들어:

도구 다운로드