왜 이름이 '하네스'인가 — 마차 제어에서 AI 제어까지

…

한줄 요약

‘하네스’는 테스트 자동화에서 시작해 AI 제어 레이어를 뜻하는 말로 진화했다 — 공통점은 “강력한 것을 안전하게 묶는 구조”다.

본문

하네스(harness)의 원래 뜻

영어 단어 harness는 원래 마구(馬具)다. 말에 채우는 안장, 고삐, 가슴걸이, 등자를 통틀어 harness라고 부른다.

중요한 건 하네스가 말을 약하게 만들기 위한 게 아니라는 점이다. 말의 힘을 그대로 두면서 그 힘을 원하는 방향으로 쓰기 위한 구조다. 말은 여전히 강하다. 하네스는 그 강함을 제어 가능하게 만든다.

같은 의미로, 강을 막아 전기를 만드는 것도 “harness water power(수력을 하네스하다)“라고 한다. 강을 없애는 게 아니라 강의 힘을 쓸 수 있는 형태로 만드는 것이다.


소프트웨어에서의 하네스: 1990년대부터

소프트웨어 세계에서 harness가 처음 쓰인 건 테스트 하네스(test harness) 개념에서다. 1990년대 자동화 테스트가 발전하면서 등장했다.

테스트 하네스란 테스트 대상 코드를 둘러싸는 제어 구조다. 실제 코드는 건드리지 않고, 그 주변에 가짜 입력을 넣고 출력을 검사하는 환경을 만드는 것이다.

예를 들어 심장 박동 모니터링 소프트웨어를 테스트한다면:

  • 실제 환자를 쓸 수 없다
  • 테스트 하네스가 가짜 심박 데이터를 만들어 넣는다
  • 소프트웨어가 올바르게 반응하는지 확인한다
  • 소프트웨어 자체 코드는 한 줄도 바뀌지 않는다

이게 하네스의 핵심 철학이다 — 대상을 바꾸지 않고 대상을 둘러싸는 구조로 제어한다.


LLM 시대에 하네스가 다시 주목받은 이유

2022년 ChatGPT 출시 이후 이상한 일이 벌어졌다. 엄청나게 강력한 모델이 생겼는데, 그걸 실제 제품에 넣으면 예상치 못한 동작이 계속 나왔다.

모델 자체를 수정하는 건 보통 회사가 할 수 없는 일이다. OpenAI나 Anthropic이 만들어준 모델을 그냥 API로 쓰는 것이다. 수정할 수 없는 강력한 것을 안전하게 쓰려면? — 하네스를 씌우는 것 밖에 없다.

그래서 AI 엔지니어링 커뮤니티에서 test harness의 개념이 재해석됐다:

“AI 모델을 테스트하는 구조”에서 → “AI 모델을 제어하는 구조 전반”으로


하네스가 아닌 것들

혼동하기 쉬운 개념 정리:

파인튜닝은 모델 자체를 바꾼다 → 하네스가 아니다 프롬프트 엔지니어링은 입력 텍스트를 최적화한다 → 하네스의 일부다 RAG는 외부 지식을 검색해서 붙인다 → 하네스의 일부다 가드레일은 출력을 필터링한다 → 하네스의 일부다

하네스 엔지니어링은 이 모든 것을 포함하는 상위 개념이다. 모델을 둘러싸는 모든 제어 레이어의 설계.


실제로 하네스라는 단어를 쓰는 곳

  • Anthropic Claude: “Claude in a harness” — 에이전트 루프 안에서 Claude를 제어하는 구조
  • LangChain: 체인(chain)이라는 개념 자체가 하네스 패턴
  • AI SDK (Vercel): 툴 호출·스트리밍 제어를 하네스 레이어로 추상화
  • 평가 프레임워크 (Promptfoo, Braintrust): 모델 출력을 자동으로 검사하는 테스트 하네스

결국

하네스라는 단어가 AI 세계에서 자연스럽게 쓰이게 된 건 우연이 아니다. 수천 년 전 말을 다루던 사람들이 발견한 원리 — “강한 것을 없애지 않고 그 강함을 제어 가능하게 만든다” — 가 AI 시대에 그대로 적용됐다.

모델은 말이다. 하네스는 고삐다. 그리고 하네스 엔지니어는 마부다.