커리어와 조직 변화
새로운 역할: Harness Engineer
섹션 제목: “새로운 역할: Harness Engineer”2026년, 소프트웨어 엔지니어링에 새로운 전문 역할이 등장했습니다. Harness Engineer는 AI 에이전트가 올바르게 동작할 수 있는 환경을 설계하고 운영하는 사람입니다.
이 역할은 기존 역할들과 어떻게 다를까요?
| 역할 | 주요 산출물 | 핵심 관심사 |
|---|---|---|
| 소프트웨어 엔지니어 | 프로덕션 코드 | 기능 구현, 버그 수정 |
| DevOps 엔지니어 | 배포 파이프라인 | 안정성, 확장성 |
| ML 엔지니어 | 모델 학습 파이프라인 | 정확도, 성능 |
| Harness Engineer | 에이전트 실행 환경 | 에이전트 성공률, 비용, 안전성 |
5가지 핵심 역량
섹션 제목: “5가지 핵심 역량”1. 시스템 사고 (Systems Thinking)
섹션 제목: “1. 시스템 사고 (Systems Thinking)”개별 컴포넌트가 아닌 전체 시스템의 동작을 이해합니다.
전통적 사고: "이 함수가 올바른 값을 반환하는가?"시스템 사고: "이 에이전트가 이 도구를 호출할 때 전체 시스템에 어떤 영향을 미치는가?"시스템 사고를 키우는 방법:
- 에이전트 실행 전체를 추적하는 습관
- 실패 모드 분석 (무엇이 잘못될 수 있는가?)
- 피드백 루프 식별 (어디서 정보가 순환하는가?)
2. 아키텍처 설계 (Architecture Design)
섹션 제목: “2. 아키텍처 설계 (Architecture Design)”에이전트 시스템의 구조적 결정을 내립니다.
결정해야 할 질문들:- 단일 에이전트 vs 멀티 에이전트?- 어떤 도구를 에이전트에게 줄 것인가?- 컨텍스트는 어떻게 구조화할 것인가?- 실패 시 복구 전략은?- 어느 지점에서 인간을 개입시킬 것인가?3. 명세 작성 (Specification Writing)
섹션 제목: “3. 명세 작성 (Specification Writing)”에이전트가 이해할 수 있는 정확하고 구체적인 명세를 작성합니다.
약한 명세: "사용자 인증 기능을 구현하라"
강한 명세: "JWT 기반 인증 구현: - /auth/login: POST, { email, password } → { token, expiresAt } - /auth/refresh: POST, { refreshToken } → { token } - 토큰 만료 시간: 15분 (액세스), 7일 (리프레시) - 실패 시: 401 { error: 'INVALID_CREDENTIALS' } - bcrypt rounds: 12 - 테스트: 정상 로그인, 잘못된 비밀번호, 만료된 토큰 최소 포함"4. 옵저버빌리티 (Observability)
섹션 제목: “4. 옵저버빌리티 (Observability)”에이전트 시스템의 내부 상태를 외부에서 관찰할 수 있게 만듭니다.
세 가지 옵저버빌리티 축:- Metrics: 성공률, 비용, 지연 시간 (숫자)- Logs: 에이전트 행동 기록 (텍스트)- Traces: 에이전트 실행 전체 흐름 (그래프)import { trace, metrics, logs } from '@opentelemetry/api'
const tracer = trace.getTracer('agent-harness')const meter = metrics.getMeter('agent-harness')
const agentSuccessCounter = meter.createCounter('agent.success', { description: '에이전트 성공 횟수'})
const agentDurationHistogram = meter.createHistogram('agent.duration', { description: '에이전트 실행 시간 (ms)', unit: 'ms'})
async function instrumentedAgentRun( task: string, agentFn: () => Promise<string>): Promise<string> { const span = tracer.startSpan('agent.run', { attributes: { 'task.length': task.length } })
const start = Date.now() try { const result = await agentFn() agentSuccessCounter.add(1, { status: 'success' }) span.setStatus({ code: 1 }) // OK return result } catch (error) { agentSuccessCounter.add(1, { status: 'failure' }) span.recordException(error as Error) span.setStatus({ code: 2, message: String(error) }) // ERROR throw error } finally { agentDurationHistogram.record(Date.now() - start) span.end() }}5. 반복 속도 (Iteration Speed)
섹션 제목: “5. 반복 속도 (Iteration Speed)”빠르게 실험하고, 측정하고, 개선하는 능력입니다.
느린 반복 사이클 (피해야 함): 변경 → 수동 테스트 (1시간) → 결과 확인 → 다시 변경
빠른 반복 사이클 (목표): 변경 → 자동 테스트 (5분) → 메트릭 확인 → 다시 변경팀 구조 변화
섹션 제목: “팀 구조 변화”기존 팀 구조
섹션 제목: “기존 팀 구조”프로덕트 매니저 ↓ 요구사항소프트웨어 엔지니어 (5~10명) ↓ 코드QA 엔지니어 ↓ 검증DevOps 엔지니어AI 에이전트 도입 후
섹션 제목: “AI 에이전트 도입 후”프로덕트 매니저 ↓ 요구사항Harness Engineer (1~2명) ↓ 에이전트 환경 설계AI 에이전트 (다수) ↓ 코드 작성소프트웨어 엔지니어 (3~5명) ← 리뷰, 의사결정, 복잡한 작업 ↓ 검증/머지CI/CD 파이프라인 (자동화)핵심 변화:
- 엔지니어 수가 줄어드는 것이 아니라 역할이 바뀜
- 코드 작성 비중 감소, 코드 리뷰·설계·명세 작성 비중 증가
- 에이전트 환경을 전담하는 Harness Engineer 포지션 등장
커리어 전환 로드맵
섹션 제목: “커리어 전환 로드맵”현재: 소프트웨어 엔지니어 ↓Step 1 (1~3개월): Agent Harness 기초 학습 - 이 과정 완료 - 개인 프로젝트에 에이전트 도입 ↓Step 2 (3~6개월): 팀 도입 경험 - 팀에 AGENTS.md, CI 통합 제안 - 에이전트 성공률 측정 시작 ↓Step 3 (6~12개월): 전문화 - 옵저버빌리티 스택 구축 - 비용 최적화 실적 데이터 확보 - 조직 내 Harness Engineering 챔피언 ↓목표: Harness Engineer / AI Platform EngineerHarness Engineer는 코드 작성에서 에이전트 환경 설계로 무게 중심이 이동한 새로운 역할입니다. 시스템 사고, 아키텍처 설계, 명세 작성, 옵저버빌리티, 반복 속도의 5가지 역량이 핵심입니다. 팀 구조는 점진적으로 변화하며, 엔지니어의 역할은 사라지는 것이 아니라 더 높은 수준의 판단과 설계로 이동합니다.