EHR Harness Plugin"하네스 만들어줘" 한 마디의 설계도
Oracle 프로시저로 뒤엉킨 레거시 인사시스템(EHR)에서 AI 코딩 에이전트가 우리 방식대로만 일하도록: 규칙, 도메인 지식, 전문 스킬, 안전장치를 프로젝트마다 자동 생성하는 Claude Code 플러그인.
2026-09-05 기준: 소속 팀 공식 개발방법론으로 채택됐으며, 이후에도 버전 업데이트를 진행하고 있습니다. AI TFT는 완료됐고 그 성과를 바탕으로 Claude Code 전사 도입이 결정됐습니다. 아래 기술 설명은 v1.14.0 당시의 문서입니다.
하네스란
같은 요청, 다른 결과- 학습데이터 기반의 일반적인 React + REST API 코드를 새로 발명
- 회사 격리 없는 쿼리: 보안 결함
- 개발자마다, 세션마다 다른 결과물
- DB, 형상관리에 대한 통제 없음
- 기존 휴가 신청 화면을 복제 베이스로 선택: 그린필드 금지
- 권한 법칙 판정 → 표준 매퍼, IBSheet JSP 생성
- 셀프체크 14항목 통과 후 전달
- DB 접속, commit은 훅이 원천 차단: 커밋은 사람이
일관성은 모델 성능이 아니라 프로세스 설계에서 나온다. 하네스는 AI의 재량을 제거하고 검증된 기존 코드를 법으로 만드는 장치다: 팀원 누가, 어떤 AI 도구로 작업해도 같은 규칙이 강제된다.
설치와 사용
설치 2줄, 생성 한 마디# 설치 (Claude Code 안에서, 최초 1회 : 사내 마켓플레이스 등록) /plugin marketplace add <사내 GitLab 저장소> /plugin install ehr-harness@ehr-harness # 하네스 생성 (본인 EHR 프로젝트에서) 하네스 만들어줘 ← EHR4/EHR5 자동 감지 , 프로젝트 실측 분석 , ~40파일 생성 워크업 하네스 만들어줘 ← 클라우드 HR MSA (28서비스 멀티레포) 연말정산 하네스 만들어줘 ← yjungsan 전용 플러그인 # 일상 사용 : 자연어면 됨 휴가 신청 화면 비슷하게 교육 신청 화면 만들어줘 급여계산 프로시저 호출 체인 추적해줘 이 수정이 어디 영향 가는지 분석해줘 ← Go / HOLD / STOP 판정 하네스 점검해줘 ← drift 자동 감지, 보정 (audit)
프로젝트에 생성되는 것
프로젝트당 약 40파일고객사-EHR-프로젝트/ ├── AGENTS.md 프로젝트 규칙 (모든 AI 플랫폼 공통 진입점) : 최상단 "⛔ DB 접속 금지" ├── CLAUDE.md , GEMINI.md Claude Code / Gemini CLI 진입점 ├── .claude/ │ ├── settings.json 보안 훅 등록 : 모든 터미널 명령이 훅을 거침 │ ├── hooks/ (4종) DB 무접속 차단 , 커밋 차단 , 학습 캡처 , 선호 주입 │ ├── agents/ (4종) 화면 생성 , 프로시저 추적 , 릴리즈 검증 , DB 영향 검토 │ ├── commands/ehr/ (7종) /ehr:plan , work , review , compound : 업무 사이클 │ ├── skills/ (8종) 도메인 지식 , 화면 빌더 , 영향도 분석 , IBSheet API … │ └── HARNESS.json 매니페스트 : 실측 스냅샷, 지식 이력 (drift 점검 기준) ├── .agents/ + .codex/ Codex 호환 : 1회 생성하면 팀원 누구나, 어떤 AI든 동일 규칙 └── .gitignore
하네스는 프로젝트 저장소에 커밋된다: 한 명이 생성하면 checkout 받는 팀원 전원이 같은 규칙을 공유하고, 고객사별 지식은 프로젝트 안에 격리되어 서로 섞이지 않는다.
#프로파일 3종: 프로젝트 유형 자동 감지
| 프로파일 | 스택 | 특화 |
|---|---|---|
| EHR4 | Ant + Anyframe + Spring MVC | Velocity 매퍼, 레거시 화면 패턴, 릴리즈 검증 B1~B7 |
| EHR5 | Maven + MyBatis + Spring Boot | 동일 도메인, 스택별 코드 템플릿, 릴리즈 검증 B1~B11 |
| workup | Spring Cloud MSA + Vue2/3 | 28개 서비스 멀티레포, zuul 게이트웨이, 서비스별 Oracle/MySQL : SERVICE_MAP 추가 |
표를 가로로 움직여 전체 내용을 확인할 수 있습니다.
보안: DB 무접속 정책
v1.13+, 3중 방어AI는 DB에 일절 접속하지 않는다 (SELECT 포함). 명세가 필요하면 담당자가 export한 폴더만 읽는다: DB 비밀번호를 AI에게 줄 일 자체가 없다. 커밋, 푸시도 같은 방식으로 차단되어 최종 확정은 항상 사람이 한다.
| 레이어 | 내용 |
|---|---|
| 1층, 기술 | 훅 2종: DB CLI 18종 전면 차단(sqlplus, tbsql, mysql, sqlcmd, impdp…), git/svn 커밋, 푸시 차단. 우회 시나리오 자동 테스트 80+ 케이스 상시 검증 |
| 2층, 규칙 | AGENTS.md 최상단 "⛔ DB 접속 금지" 절대 규칙: 훅이 적용되지 않는 Codex, Gemini까지 커버 |
| 3층, 인프라 | read-only 계정 + 망분리가 최종 보장: 훅, 규칙은 보조 안전망임을 명시 |
표를 가로로 움직여 전체 내용을 확인할 수 있습니다.
쓸수록 똑똑해진다: EHR Cycle
지식 누적 폐곡선작업할수록 고객사별 노하우가 하네스 문서에 쌓인다. 일상 대화의 교정 신호는 자동 캡처(개인정보 7종 마스킹) → 주 1회 수확 → 사람 승인 후에만 반영. 소스가 많이 바뀌면 "하네스 점검해줘" 한 마디로 drift를 감지, 보정한다(audit). v1.14에서는 유료 그리드 솔루션 IBSheet의 API 522항목(메서드 322, 이벤트 67, 속성 133)을 개발자 가이드 PDF에서 인덱스화해, LLM 학습데이터가 없어 메서드명을 추측하던 문제까지 없앴다.
연말정산 전용 플러그인
yjungsan-harness같은 저장소의 두 번째 플러그인. 매년 바뀌는 세법을 국세청, 법령센터 API에서 자동 수집해 코드, DB와 교차검증하고 (시즌 임박 14/30/60일 자동 알림), 버그 조사, 화면 수정, 프로시저 추적부터 패치 배포 5단계 자동화(zip → 메일 초안 → 가이드 → diff → 영향 고객사 식별)까지 커버한다. 고객사 29곳의 커스텀 패턴과 DB 객체 217개 카탈로그 내장: 커맨드 16개, 전문 에이전트 6개.