human-in-the-loop

3 개의 포스트

소프트웨어 3.0 시대를 맞이하며 (새 탭에서 열림)

소프트웨어 3.0 시대는 자연어 프롬프트가 프로그램이 되는 시대이지만, LLM이 실질적인 업무를 수행하기 위해서는 이를 제어하고 연결하는 '하네스(Harness)'가 필수적입니다. Claude Code와 같은 최신 에이전트 도구들은 이러한 하네스의 역할을 하며, 그 내부 구조는 놀랍게도 우리가 익히 알고 있는 소프트웨어 1.0의 레이어드 아키텍처 원칙을 그대로 따르고 있습니다. 결국 좋은 에이전트를 설계하는 힘은 기존의 객체 지향 설계와 추상화 원칙을 얼마나 잘 적용하느냐에 달려 있습니다. **소프트웨어 1.0의 눈으로 본 에이전트 구조** * **Slash Command (Controller):** `/review`, `/refactor`와 같은 명령어는 사용자 요청의 진입점 역할을 하며, 특정 워크플로우를 트리거하는 컨트롤러와 유사합니다. * **Sub-agent (Service Layer):** 여러 기술(Skill)을 조합하여 복잡한 비즈니스 로직을 완성하며, 독립된 컨텍스트를 가져 서비스 계층이나 별도의 스레드처럼 동작합니다. * **Skills (Domain Component):** 단일 책임 원칙(SRP)에 따라 "코드 리뷰", "테스트 생성" 등 명확한 한 가지 역할만 수행하는 기능 단위입니다. * **MCP (Infrastructure/Adapter):** 외부 API나 데이터베이스와의 연결을 담당하며, 내부 로직이 외부 환경에 의존하지 않도록 추상화된 어댑터 역할을 합니다. * **CLAUDE.md (Configuration):** 프로젝트의 기술 스택과 코딩 컨벤션을 담는 파일로, `package.json`이나 `pom.xml`처럼 프로젝트의 고정된 원칙을 정의합니다. **에이전트 설계의 핵심: 질문과 판단의 위임** * **Exception에서 Question으로:** 전통적인 코드에서는 모든 예외를 미리 정의해야 하지만, 에이전트는 불확실한 상황에서 사용자에게 질문(HITL)을 던져 판단을 위임할 수 있습니다. * **질문의 기준:** 삭제나 배포처럼 되돌리기 어려운 작업이나 리스크가 큰 결정은 사용자에게 묻고, 안전하게 반복 가능한 작업은 에이전트가 스스로 처리하도록 설계해야 합니다. * **안티패턴의 답습:** 에이전트 설계에서도 특정 객체가 너무 많은 일을 하는 'God Agent'나 불필요하게 복잡한 호출 구조는 유지보수성을 떨어뜨리는 코드 스멜이 됩니다. **토큰 최적화와 효율적인 설계 전략** * **토큰은 곧 메모리:** 컨텍스트 윈도우(Context Window)를 작업 메모리로 인식해야 하며, 무분별한 파일 읽기나 복잡한 지침은 토큰 폭발(OOM과 유사)을 야기합니다. * **결정적 로직의 분리:** 브랜치 명명 규칙과 같이 판단이 필요 없는 단순 반복 작업은 프롬프트가 아닌 별도의 스크립트로 작성하여 실행하게 함으로써 토큰 소모를 줄여야 합니다. * **점진적 노출(Progressive Disclosure):** 수많은 Skill이 시스템 프롬프트를 점유하지 않도록, 진입점만 제공하고 세부 지식은 필요할 때 참조하게 만드는 '디미터의 법칙'을 적용해야 합니다. 소프트웨어 3.0 시대에도 개발자가 쌓아온 레이어 분리, 추상화, 인터페이스 설계 역량은 여전히 유효합니다. 도구는 LLM으로 바뀌었지만 응집도와 결합도를 고려한 좋은 설계 원칙을 유지할 때, 비로소 실무에서 신뢰할 수 있는 강력한 에이전트를 구축할 수 있습니다.

[AI_TOP_100] 문제 출제 후기 – 기술이 아닌, 사람을 묻다. (새 탭에서 열림)

AI 기술이 비약적으로 발전하는 시대에 도구를 다루는 인간의 실제 문제 해결 역량을 측정하기 위해 ‘AI TOP 100’ 경진대회가 기획되었습니다. 단순히 AI를 사용하는 수준을 넘어, 인간과 AI의 긴밀한 협업 과정을 통해 복잡한 현실 문제를 해결하고 최적의 의사결정을 내리는 ‘문제 해결자’를 선별하는 데 초점을 맞추었습니다. 결과물뿐만 아니라 AI의 한계를 인간의 통찰로 보완해 나가는 '과정' 자체를 핵심 평가 지표로 삼은 것이 이번 대회의 결론입니다. **AI와 인간의 협업 루프(Human-in-the-loop) 설계** * 단순히 문제를 복사하여 붙여넣는 방식으로는 해결할 수 없도록, 사람의 분석과 AI의 실행, 그리고 다시 사람의 검증이 순환되는 구조를 지향했습니다. * 사람은 직관적으로 파악하지만 AI는 분석하기 어려운 데이터 구조(식단표, 복잡한 표의 행/열 관계 등)를 제공하여 인간의 사전 가이드가 성능을 좌우하게 설계했습니다. * 이미지 생성과 피드백 분석, 프롬프트 개선 과정을 에이전트에게 위임하여 자동화 파이프라인을 구축하는 등 고도화된 협업 능력을 측정했습니다. **'딸깍' 방지를 위한 입체적인 난이도 설계** * 최신 AI 모델이 단 한 번의 프롬프트(One-shot)로 정답을 맞히지 못하도록 의도적인 기술적 제약과 논리적 미로를 문제 속에 배치했습니다. * '낮은 진입 장벽과 높은 천장' 원칙에 따라, 초보자도 쉽게 접근할 수 있는 시작 문항부터 깊은 통찰이 필요한 킬러 문항까지 '난이도 사다리' 구조를 도입했습니다. * 특정 프레임워크에 국한되지 않고 출제자가 예상치 못한 창의적인 방식으로도 문제를 해결할 수 있는 열린 구조를 유지했습니다. **현실의 복잡성을 반영한 4가지 문제 패턴** * **분석 및 정의(Insight):** 정답이 없는 복합 데이터 속에서 유의미한 문제나 기회를 스스로 발견하는 역량을 평가합니다. * **구현 및 자동화(Action):** 정의된 문제를 해결하기 위해 AI 솔루션을 실제 작동하는 코드나 워크플로로 구현하는 능력을 측정합니다. * **전략 및 창의(Persuasion):** 기술적 솔루션을 비기술 이해관계자에게 설득력 있게 전달하기 위한 논리와 창의적 콘텐츠 생성 능력을 확인합니다. * **최적화 및 의사결정(Decision):** 제약 조건 하에서 목표를 최대화하는 최적의 의사결정 시뮬레이션을 수행합니다. **엄격한 검증을 거친 문제 고도화 파이프라인** * 아이디어 단계부터 최종 확정까지 4단계의 파이프라인을 구축하고, 출제위원 내부 테스트 및 알파·베타 테스트를 통해 문제의 신뢰도를 검증했습니다. * AI 모델이 매일 업데이트되어 어제의 난제가 오늘의 쉬운 문제가 되는 환경에 대응하기 위해 지속적인 실증 테스트를 반복했습니다. * 문제의 겉보기 난이도가 아니라 실제 해결에 필요한 노력 비용을 기준으로 점수를 재조정하는 '캘리브레이션' 과정을 거쳐 변별력을 확보했습니다. AI 시대의 진정한 경쟁력은 도구의 기능을 단순히 암기하는 것이 아니라, AI의 한계를 명확히 이해하고 이를 인간의 기획력으로 보완하여 실질적인 가치를 만들어내는 데 있습니다. 이번 출제 후기는 기술보다 '그 기술을 다루는 사람'의 사고방식이 더 중요하다는 점을 강조하며, 앞으로의 AI 리터러시 교육과 평가가 나아가야 할 방향을 제시합니다.

IUI 2025 참관기: AI의 지속성과 인간 중심의 AI에 대해서 (새 탭에서 열림)

IUI(Intelligent User Interfaces) 2025 학회에서는 단순히 기술적 성능이 뛰어난 AI를 넘어, 인간의 능력을 증강하고 윤리적 책임을 존중하는 '인간 중심의 AI(Human-Centered AI)'가 핵심 화두로 다뤄졌습니다. 전문가들은 AI가 인간의 인지와 현실을 어떻게 재설계할 것인지, 그리고 복잡한 모델을 사용자가 어떻게 신뢰하고 통제할 수 있을지에 대한 실천적인 방법론을 제시했습니다. 결론적으로 미래의 AI는 독립적인 자동화 도구가 아니라, 인간과 상호작용하며 함께 성장하고 사회적 맥락 안에서 투명하게 소통하는 협력적 지능으로 진화해야 함을 강조했습니다. **리얼리티 디자인: 인터페이스를 넘어 현실을 설계하는 AI** * HCI(인간-컴퓨터 상호작용) 연구의 범위를 단순한 화면 속 인터페이스에서 인간의 삶이 이루어지는 '현실 자체'로 확장해야 한다는 '리얼리티 디자인' 개념이 제시되었습니다. * AI와 센서, XR 기술을 결합하여 인간의 기억을 기록 및 재구성하거나, 특정 음성을 선택적으로 청취하고 동작을 슬로 모션으로 지각하는 등 인간의 감각과 인지 능력을 물리적으로 증강하는 연구 사례들이 소개되었습니다. * 다만, 기술이 인간의 사고와 학습 의지를 약화시켜 '인지적 퇴화'를 초래할 수 있다는 점이 경고되었으며, 기술과 인간이 서로 영향을 주고받는 순환적 관계임을 고려한 설계가 필요합니다. **인간 중심의 AI 투명성: 사회기술적 간극 해소** * 기존의 기술 중심적 설명 가능성(XAI)에서 벗어나, 사용자가 실제 맥락에서 이해하고 신뢰할 수 있는 '사회기술적(socio-technical)' 관점의 투명성 확보가 강조되었습니다. * 투명성을 구현하기 위한 구체적 방법론으로 확정적이지 않은 결과를 명확히 전달하는 '불확실성 커뮤니케이션', 조건 변화에 따른 결과 차이를 보여주는 '반사실적 설명', 사용자가 피드백을 통해 모델을 조정하는 '상호작용 기반 투명성'이 제시되었습니다. * LLM 시대의 투명성은 단순한 정보 공개를 넘어 모델 카드(Model Card)를 통한 데이터/개발 배경 공유, 안전성 및 리스크 평가 결과 포함, 그리고 사용자가 직접 통제권을 가질 수 있는 수단을 함께 제공하는 방향으로 나아가야 합니다. **인터랙티브 머신러닝: 사용자와 함께 성장하는 모델** * AI를 고정된 데이터를 학습하는 정적 도구로 보지 않고, 사용자가 모델의 오류를 수정하고 그 피드백이 다시 학습에 반영되는 '인간 참여형(Human-in-the-loop)' 루프의 중요성이 재조명되었습니다. * 이 방식은 교육 도구에서 학생들이 데이터를 조작하며 학습 원리를 깨우치게 하거나, 연구 현장에서 대규모 데이터를 분석할 때 인간의 직관을 결합하는 등 다양한 실무 분야에서 인용되고 있습니다. * 좋은 AI의 기준은 독립적인 성능 수치보다 사용자와의 지속적인 상호작용을 통해 얼마나 유연하게 적응하고 발전할 수 있는지에 달려 있습니다. **전문가 협업 시스템: 상담 분석을 돕는 AI** * 아동 상담 분석과 같이 고도의 전문성이 필요한 영역에서 AI가 상담사의 녹취 및 전사 작업을 보조하고, 상담사가 AI의 결과물을 손쉽게 편집 및 교정할 수 있는 협업 시스템 연구가 발표되었습니다. * 이는 AI가 인간의 일자리를 대체하는 것이 아니라, 번거로운 작업을 효율화함으로써 전문가가 본연의 가치 있는 업무에 집중할 수 있도록 돕는 실질적인 협업 모델의 예시를 보여줍니다. **실용적 제언** AI 시스템을 설계할 때 단순히 정확도를 높이는 데 그치지 말고, 사용자가 시스템의 판단 근거를 납득할 수 있는 '설명 수단'과 잘못된 결과를 바로잡을 수 있는 '통제 수단'을 반드시 세트로 설계해야 합니다. 특히 고위험군 서비스를 개발할 때는 모델의 불확실성을 시각적·언어적으로 친절하게 전달하여 사용자가 적절한 수준의 신뢰를 형성하도록 유도하는 것이 중요합니다.