CI (Continuous Integration)
한 줄 정의
코드가 변경될 때마다 테스트와 검증을 자동으로 실행하는 파이프라인.
흐름
코드 push
↓
CI가 자동으로:
1. 테스트 실행 (pytest, jest 등)
2. lint 검사
3. structural test (AC test)
↓
통과 → merge 가능
실패 → merge 차단
Harness Engineering에서 CI가 중요한 이유
agent가 코드를 짤 때 규칙 준수 여부를 인간이 매번 확인하면 병목이 생긴다. CI에 structural test를 넣어두면:
agent가 코드 작성
↓
CI 자동 실행
↓
레이어 위반 발견 → merge 차단
↓
agent가 스스로 수정 → 인간 개입 없음
NxCode 사례: CI가 agent 생성 코드의 약 15%를 잡아낸다.
실제 설정 예시 (GitHub Actions)
# .github/workflows/ci.yml
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: pip install -r requirements.txt
- run: pytest tests/test_architecture.py # AC test (레이어 구조 검증)
- run: pytest tests/ # 일반 테스트
Harness 레이어에서의 위치
AC test (tests/test_architecture.py) → 위반을 사전에 차단
CI (.github/workflows/ci.yml) → AC test를 자동으로 실행하는 트리거
CI 없이 AC test만 있으면 → 개발자가 직접 실행해야 함 (잊기 쉬움) CI가 있으면 → push할 때마다 자동 실행 → agent가 무시할 수 없음
관련 개념
- architectural-constraints — AC test 설계
- industry-harness-trends-2026 — 업계 CI 도입 현황
- research/harness-engineering/overview — Harness 전체 지도