# 회귀 테스트 모드 (Regression Test Mode, regtest)

회귀 테스트 모드(Regression Test Mode, regtest)는 개발자가 테스트를 위해 필요할 때 거의 즉시 블록을 생성하고, 실제 가치가 없는 코인을 만들어 트랜잭션을 실험할 수 있는 로컬 테스트 환경입니다. 비트코인 코어(Bitcoin Core)에 내장된 실행 모드 가운데 하나입니다.

## 어떻게 동작하나요?

비트코인 코어를 `-regtest` 옵션으로 실행하면 메인넷이나 공개 테스트넷과 연결되지 않은, 개발자 한 사람(또는 팀)만의 독립된 블록체인이 새로 만들어집니다. 채굴 난이도가 매우 낮게 설정되어 있어 일반 컴퓨터에서도 명령 한 번으로 원하는 만큼 블록을 즉시 생성할 수 있습니다.

1. **블록 생성:** `bitcoin-cli -regtest generatetoaddress 101 <주소>`처럼 명령을 실행하면 지정한 주소로 블록 보상을 받으며 블록이 즉시 만들어집니다.
2. **코인 확보:** 블록 보상(코인베이스 출력)은 100블록이 더 쌓여야 사용할 수 있으므로, 처음에는 보통 101개 이상의 블록을 생성해 쓸 수 있는 테스트 코인을 마련합니다.
3. **트랜잭션 실험:** 이렇게 만든 코인으로 송금, 멀티시그, 타임락 같은 스크립트를 만들어 보고, 다시 블록을 생성해 컨펌 과정을 원하는 시점에 재현합니다.

regtest의 코인은 해당 컴퓨터 안에서만 존재하므로 실제 가치가 전혀 없고, 다른 네트워크로 옮길 수도 없습니다. 네트워크 상태를 언제든 초기화할 수 있다는 점도 특징입니다.

## 테스트넷·시그넷과의 차이

테스트넷(testnet)과 시그넷(signet)은 여러 사람이 함께 쓰는 공개 테스트 네트워크입니다. 실제 네트워크와 비슷한 환경을 제공하지만 블록이 생성되는 속도를 개발자가 조절할 수 없고, 테스트 코인을 별도로 구해야 합니다. 반면 regtest는 완전히 개인적인 환경이어서 블록 생성 시점과 네트워크 구성을 개발자가 직접 통제합니다. 그래서 자동화된 단위 테스트나 회귀 테스트, 즉 코드를 바꾼 뒤 기존 기능이 그대로 동작하는지 반복 확인하는 작업에 주로 쓰입니다.

## 주요 용도

- **지갑·노드 소프트웨어 개발:** 새로운 기능이 트랜잭션 생성과 검증 규칙에 맞게 동작하는지 확인합니다.
- **서비스 연동 점검:** 거래소나 결제 서비스, 트레이딩 봇의 입출금·트랜잭션 처리 모듈이 컨펌 수에 따라 올바르게 반응하는지 확인합니다. 다만 regtest에는 실제 시장 가격과 유동성이 없으므로 전략의 수익성 검증에는 쓸 수 없습니다.
- **교육:** 블록, UTXO, 수수료, 재구성(reorg) 같은 개념을 실제 비용 없이 직접 실습합니다.

## 장점

- **신속한 프로토타입 제작:** 실제 블록 확인을 기다리지 않고 새로운 기능이나 스크립트 로직을 빠르게 테스트합니다.
- **격리된 환경:** 실제 자금을 위험에 빠뜨리거나 라이브 블록체인에 영향을 미치지 않고 실험합니다.
- **비용 효율성:** 테스트 목적으로 실제 암호화폐를 획득하거나 소비할 필요가 없습니다.
- **재현성:** 같은 조건을 반복해서 만들 수 있어 엣지 케이스를 체계적으로 시험할 수 있습니다.

## 단점

- **제한된 현실성:** 라이브 블록체인의 네트워크 지연, 혼잡, 수수료 경쟁 같은 조건을 완전히 재현하지 못합니다.
- **불일치 가능성:** 일부 기본 설정이 메인넷과 다르므로 테스트 모드에서의 코드 동작이 라이브 환경과 약간 다를 수 있습니다.

---
출처: https://achivx.kr/glossary/regression-test-mode-%ED%9A%8C%EA%B7%80-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%AA%A8%EB%93%9C/ · ACHIVX 용어 사전 · 수정일 2026-10-20
