레이블이 AI인 게시물을 표시합니다. 모든 게시물 표시
레이블이 AI인 게시물을 표시합니다. 모든 게시물 표시

4/21/2026

AI 시대의 소프트웨어 개발 시간 예측은?


프로젝트를 진행하면서 여러가지 생각이 든다. 이제까지는 소프트웨어 개발에서 공수산정을 할때, 생산성의 단위는 사람이었다. 개발자는 코드를 생산하고, 프로젝트는 그 생산량을 기준으로 계획되었다. 그래서 공수는 "사람 x 시간"이라는 공식으로 산출하였다.

사실 위 방식은 안정적인 방법은 아니었다. 코드 라인 수(LOC)는 기능의 복잡도를 설명하기 어려웠기에 스토리포인트나 기능 점수(Function Point)와 같은 대안이 등장했다. 그러나 이 역시 동일한 전제를 유지했다. 작업량은 측정 가능하며, 그 작업량은 결국 사람의 노력으로 환산된다.

생성과 생산의 분리

AI가 코드 생성에 개입하면서 이 전제가 흔들리기 시작했다. 코드는 더 이상 개발자의 시간만으로 만들어지지 않는다. 생성은 AI가 담당하고, 개발자는 그 결과를 다룬다.

이 변화는 단순한 생산성 향상이 아니라 생산의 구조 자체가 바뀌는 것이라고 생각한다. 일반적으로 코딩은 생성, 검증, 조정 세 단계로 구분되고 이 단계중 "생성"은 점점 자동화되고, 비용의 중심은 다른 영역으로 이동되고 있다.

생산성의 재배치

최근 여러가지 글들을 읽고 있는데, 일관된 패턴을 보여준다. AI 도구를 사용하는 개발자는 개별 작업 단위에서 더 빠른 결과를 낸다. 그러나 프로젝트 전체 단위에서는 그 효과가 일정하지 않다. 생성 비용은 감소했지만 검증 비용은 증가했다. 레거시를 안고 있는 환경에서는 A to Z를 새롭게 만드는 환경이 아니기에, 검증이 중요하기 때문이다.

즉, 생산성은 증가하는 것이 아니라 재배치되고 있다.

공수의 중심 이동

이 상황은 공수산정의 기준을 바꾼다고 생각한다. 과거에는 생성 비용이 중심이었다. 얼마나 많은 코드를, 얼마나 빠르게 작성할 수 있는가였다.

그러나 지금은 검증 비용 중심으로 이동된다고 생각된다. 얼마나 정확하게 이해하고, 얼마나 안정적으로 수정할 수 있는가다.

이 관점에서 보면 공수는 더 이상 인력의 문제가 아니다. 문제의 복잡도와 검증 난이도의 문제다.

공수를 구성하는 변수의 변화

파트너사의 도움을 받기위해 계약을 할 때, 고려해야 할 포인트들이 생기기 시작했다. 기존 모델은 단순했다.

공수 = 사람 x 시간

AI 환경에서는 위 식이 그대로 유지되지 않는다. 보다 현실적인 형태는 다음과 같은 구조에 가깝다.

공수 = 문제 복잡도 x AI 토큰비 x 검증 비용

여기서 중요한 요소는 아래와 같다.

  • AI 도구 숙련도
  • 작업이 AI를 쓰기에 얼마나 적합한가?
  • AI가 생성한 결과의 품질
  • 기존 시스템과 통합 난이도
  • 검증 및 수정 비용

이 요소들은 기존 모델에서는 거의 고려되지 않았다. 하지만 이제는 공수에 직접적인 영향을 미친다.

RFP 방식의 변화

이제까지 언급한 공수산정의 변화는 RFP에도 영향을 끼친다. 기존 RFP는 텍스트 중심이었다. 요구사항을 문서로 정의하고, 이를 기반으로 제안을 받았다.

하지만 AI 환경에서는 이 방식이 비효율적으로 비친다. 대신 아래와 같은 방식을 고려할 수 있다.

  • 프로토타입 생성
  • UI 및 인터렉션 구현
  • 이를 기준으로 범위 정의

즉, 명세보다 만들고자 하는 결과물이 먼저 나오는 구조다. 이 구조에서는 공수산정도 달라지게된다.

비용 구조의 변화

비용 역시 변화가 생긴다. 인건비 비중은 감소하고, AI 사용 비용과 인프라 비용은 증가하게된다. 가장 중요한 변화는 검증과 품질 관리 비용이다. 이 영역은 상황에 따라 다르겠지만, 레거시가 있는 경우에는 자동화가 어렵고 여전히 높은 전문성을 요구한다. AI가 생성한 결과는 불확실성을 포함한다. 이 불확실성을 제거하는 과정이 새로운 비용이 된다.

마무리

여러개의 프로젝트를 준비하고 있는 이 시점에서 고민이 많다. 그래서 스스로에게 질문을 던진다.

이 작업은 몇 명이 할 수 있는가가 아니라, 얼마나 빠르고 정확하게 안정적으로 결과를 만들 수 있는가?

이 질문에 답하는 방식이 앞으로의 공수산정 모델이 될 가능성이 높다. 지금 진행하는 프로젝트에는 AI 토큰비를 반영했고, 개발자 리소스는 줄어드는 구조로 진행된다. 그리고 앞으로 다가올 프로젝트는 위에서 언급한 인터렉션을 포함한 프로토타입을 제공하는 형태로 준비중이다.

AI를 활용하는 지금 시점에서 고객사나 파트너사 둘 다 모두 공수산정이 기존의 형태를 유지하기가 어렵다고 인지를 하고 준비를 해야한다고 생각한다. 사람 중심의 계산에서 변수 중심의 판단으로 이동하고 있기 때문이다.

References:

4/11/2026

AI를 쓰고 있는데, 왜 바뀌지 않을까?

Man On Arrow
Photo by Smart on Unsplash

현재 AI를 쓰지 않는 조직은 거의 없다. 레포트에 따르면 약 88%의 기업이 최소 한 개 이상의 업무에 AI를 활용하고 있다고 한다.

하지만 질문을 하나 던져보면 답이 달라진다.

"그 AI가 조직의 결과를 바꿨는가?"

또 다른 연구에서는 기업의 생성형 AI 프로젝트 중 95%가 실제 성과에 영향을 주지 못했다고 한다. 이건 기술 문제가 아니다.

AI는 이미 작동하고 있다.
작동하지 않는 것은 조직이다.

실패의 본질 - 우리는 AI를 "도입"하고 있다.

AI 프로젝트 실패율은 자료마다 다르지만, 대략 70% ~ 95% 수준이라는 공통된 범위가 나온다.
이 숫자의 핵심은 실패율이 아니라 "실패 이유"이다.
대부분의 실패 원인은 다음과 같다.

  • 기술 문제 X
  • 조직 문제 O

연구에 따르면 AI 실패의 63%는 기술이 아니라 인간, 조직 요인에서 발생한다. 여기서 중요한 차이가 하나 나온다.

도입 vs 전환

  • 도입: AI 도구를 업무에 추가
  • 전환: 업무 자체를 다시 설계

문제는 대부분의 기업이 전환이 아니라 도입을 하고 있다는 점이다.

AX팀 패러독스 - 전환을 하겠다고 하면서 더 멀어진다.

FLowkater 블로그의 "AX Team Paradox" 글에서 매우 중요한 통찰이 하나 제시된다.

AX팀을 만드는 순간, AX는 실패한다.

위 문장은 과장처럼 보일 수 있지만 구조적으로 보면 맞다고 생각된다. 이유는 단순한다.

AX의 본질은:

  • 의사결정 -> 실행 간 거리 축소
  • 중간 레이어 제거

그런데 아래의 조직을 만든다:

  • AX팀
  • AI TF
  • 전환 조직

즉, 단순한 실행 문제를 넘어서 구조적 모순이다라는 점이다.

계층을 줄여야 하는데
계층을 하나 더 추가하는 모양새다.

개인은 변했지만 조직은 변하지 않았다.

현재 기업에서 실제로 일어나는 변화는 대부분이 아래 수준이다.

  • 개발자 -> Claude Code, Cursor, Codex 등 사용
  • 마케터 -> GPT 사용
  • 기획자 -> AI 리서치 사용

즉, 개인 생산성은 올라간다.

하지만 조직 수준에서는:

  • 승인 프로세스 변화 없음
  • 핸드오프 변화 없음
  • KPI 변화 없음

결과적으로 "고도화된 각자도생" 상태가 된다.

이건 MacKinsey 레포트와도 정확하게 일치한다.

AI 성과를 내는 기업은 워크플로우를 재설계한다.

왜 조직은 바뀌지 않는가?

AI 전환이 어려운 이유는 크게 3가지라고 본다.

조직 구조의 문제

기존 조직은 역할 기반이다.

  • PM
  • 기획
  • 개발
  • QA
  • 운영 등

AI는 위 구조를 무너뜨린다. 한명이 기획 -> 개발 -> 테스트를 수행할 수 있게 만든다.
하지만 조직은 그대로 유지된다.

결과적으로 AI는 도입했지만, 병목은 그대로 유지된다.

정체성의 문제

AI 전환은 단순한 생산성 문제가 아니다.

"나는 개발자다"
"나는 기획자다"

이 정체성이 흔들린다. 그래서 서로 가지 않았던 영역을 걸어가야 한다고 가이드하고 있다.
즉, AI는 업무를 바꾸는 것이 아니라, 사람의 역할을 재정의한다.

시스템의 문제 (하네스 부재)

현재 대부분의 기업은 여러 AI 도구를 가지고 있다. 그러나 없는 것이 있다. (물론 있는 기업도 있다.)

"어떻게 같이 일하게 할 것인가?"

이게 바로 하네스(Harness) 문제다.

전환의 본질 - 조직을 다시 설계하는 것

McKinsey에서는 이 문제에 대해 이야기한다. "AI 경쟁력은 기술이 아니라 어떻게 적용하느냐에서 나온다." 그리고 가장 중요한 요소는 "워크플로우 재설계"라고 언급한다.

즉, AI는 기능 자동화 기술이 아니라 조직 구조를 바꾸는 도구다.

새로운 운영 모델

AI 전환의 끝에는 완전히 다른 조직 형태가 나온다. 그 특징은 아래와 같다.

  • 역할 중심 -> 결과 중심
  • 부서 중심 -> 문제 중심
  • 사람 중심 -> 사람 + AI Agent 협업

그리고 가장 중요한 변화는.,

"팀"의 정의가 바뀐다.

단순한 자동화가 아니라 조직 단위 자체의 변화다.

핵심 매커니즘 - 하네스 엔지니어링

AI 전환의 핵심은 모델이 아니다. 물론 모델도 중요하다. 하지만 모든 작업에 동일한 모델을 사용하지 않을 것이다. 이것만큼 비효율은 없으니까...

Orchestration

그래서 하네스 엔지니어링이 필요하다. 구성 요소는 다음과 같다.

  • 역할 정의 (Agent)
  • 워크플로우
  • 메모리
  • 피드백 루프

Zero Human Company - 전환의 끝

AI 전환의 궁극적인 형태는...

  • 사람은 실행하지 않는다.
  • 사람은 설계한다.

즉,

"운영하는 회사" -> "설계하는 회사"

위 개념은 아직 극단적으로 보이지만, 이미 일부 영역에서는 현실이 되고 있다.

실행 전략 - 어떻게 시작할 것인가?

현실적인 전략은 다음에 언급하는 네 가지이다.

AX팀을 만들지 말 것

별도 조직을 만들지 말고, 기존 조직 내에 embedding 해야 한다.

도구가 아니라 워크플로우 설계

AI 도구 도입이 우선시 되는 것이 아니라, End-to-End를 AI기반으로 설계해야 한다.

개인 자동화에서 조직 자동화로

개인 생산성은 이미 어느정도 올라가 있다. 이것을 조직 구조 변화로 확장해야 한다.

역할을 다시 정의

하나의 질문을 해보자.

"AI가 60%를 하면, 남은 40%는 무엇인가?"

마무리

AI는 이미 충분히 발전했다. 문제는 기술이 아니라고 생각한다.

AI는 도입하는 순간 실패하고, 조직을 다시 설계하는 순간 시작된다.

위 차이를 이해하는 것과 이해하는 못한 상황의 격차는 앞으로 훨씬 더 벌어질 것이다.

References:

4/10/2026

모델이 읽는 쓰레기 줄이기

요즘 팀내에서 토큰 부족 현상이 자주 발생한다. 

Budget을 무한정 투입할 수 없는 상황이라 여러 고민을 하던 중, Github에 꽤 괜찮은 Repo가 있는 것을 발견했다. 팀에 내용을 공유하고 여기에 정리해본다.

A close up of a thermometer and a hose
Photo by camera obscura on Unsplash

AI 코딩 도구를 처음에 쓸땐 대부분 감탄한다. 코드를 읽고, 테스트를 수행하고, 수정안을 내놓는 속도가 생각보다 빠르다. 사람보다 빠르다는 말이 과장이 아닐 때도 있다.

그러나 오랫동안 붙잡고 있으면 문제가 나타난다. 대화가 길어질수록 에이전트가 점점 이상해진다. 방금 전까지 이해하던 문맥을 놓치고, 이미 확인한 내용을 다시 확인하고, 중요하지 않은 로그에 매달린다. 모델이 멍청해졌다기보다는 모델이 읽는 환경이 나빠졌다고 봐야한다.

RTK는 이런 문제를 해소하기 위해 등장했다. 공식 설명은 단순하다.

CLI 출력이 LLM의 context window에 들어가기전에 필터링하고 압축하는 CLI Proxy이다.

즉, 모델을 바꾸는 도구가 아니라, 모델에게 들어가는 입력의 형태를 바꾸는 도구다. CLI noise를 줄여 더 나은 reasoning, 더 긴 세션, 더 낮은 비용을 만들기 위함히다.

우리는 종종 더 큰 모델, 더 긴 컨텍스트, 더 좋은 에이전트를 원한다. 하지만 실제 사용에서 문제가 되는 것은 모델의 지능이 아니라 입력의 질이다. 지나치게 장황한 git diff, 쓸모없는 pass log로 가득한 cargo test, 사람이 터미널에서 볼 때는 무해하지만, 모델에게는 비용과 혼란만 남기는 출력들... RTK는 이 문제를 아래와 같이 접근한다.

모델이 읽는 터미널은 아직도 인간용으로 설계되어 있다.

공식 사이트를 보면 숫자가 매력적이다. 평균 89%의 노이즈 제거, 3배 더 긴 세션을 언급한다. 대체로 큰 폭의 출력 압축을 지향하지만 수치는 커맨드와 환경에 따라 다르다고 인지해야 한다.


RTK의 구조는 생각보다 단순하다. Github 아키텍처 문서를 보면 이 도구는,

  1. 특정 커맨드를 감지하고
  2. 원래 커맨드를 실행한 뒤
  3. stdout/stderr를 캡쳐하고
  4. 커맨드 종류에 맞는 필터를 적용하고
  5. 더 짧은 형태로 다시 출력한다.

즉, RTK는 커맨드별 규칙 기반 압축기이다. 단순해서 신뢰가 간다. 모델이 요약하는 구조가 아니라, 개발 도구의 출력 형식을 사람이 이해 가능한 규칙으로 재구성하는 쪽에 가깝기 때문이다.

그렇다고 RTK를 단순한 "토큰 절약기"로만 보는 것은 이 도구의 확장성 관점에서 아깝다. RTK는 LLM용 인터페이스 레이어라고 볼 수 있다.

우리가 사용하는 CLI는 원래 인간을 위한 인터페이스다. 행 단위로 길게 출력하고, 강조를 위해 반복하고, 상태를 친절하게 설명하고, 때때로 인테리어 장식도 넣는다. 그중 사람은 필요한 것만 골라서 본다.

반면 대부분 LLM의 경우는 사람처럼 골라보지 못한다. 읽을 수 있는 것은 읽고, 읽은 것은 비용이 되고, 비용은 곧 컨텍스트 오염이 된다. RTK는 이 오래된 CLI를 LLM 친화적으로 번역한다. 같은 사실을 더 짧고 구조적으로 표현하는 것이다.

이 아이디어는 생각보다 큰 의미를 가진다. AI 시대에 경쟁력이 모델 그 자체에서만 생기는 것이 아니라, 모델이 무엇을 어떤 형태로 읽게 하느냐에서 생길 수 있단느 점을 보여주기 때문이다.

물론, 모든 컨텍스트 문제의 해결사는 아니다. Shell 출력이라는 오염원 하나를 잘라내는 도구로 봐야 한다. 그러나 이것만 해도 꽤 큰 오염원 제거이다. 현실의 생산성 도구는 대체로 이렇게 부분적인 문제를 해결해나가기 때문이다.

이제까지 살펴본 바로는 이 프로젝트는 "더 똑똑한 모델"을 포커싱하는 것이 아니라, "더 적절한 입력"을 문제의 중심에 놓고 있다. 지금까지 AI 도구 시장은 주로 모델 교체를 경쟁처럼 진행되었다. GPT가 좋냐, Claude가 좋냐, Gemini가 좋냐 등... 그런데 현장에서는 종종 더 하위 레이어가 중요하다. 파일을 어떻게 읽히게 할 것인가, 테스트 결과는 어디까지 보여줄 것인가, diff를 어떤 단위로 잘라줄 것인가, 이런 문제들은 모델의 IQ보다 입구의 형식과 더 가깝다. RTK는 이 문제에 접근해서 풀어냈다.

이미 있는 모델이 쓸데없는 것을 덜 읽게 만든다.

이것은 화려하진 않지만 대단히 실용적이다.

그런데, 불편한 점도 존재한다. 압축은 trade-off다. 출력이 짧아진다는 것은 토큰 낭비를 덜한다는 점에서 좋아보이지만, 어떤 상황에서는 정보 손실이 될 수 있다. 상황에 따른 호불호가 있다고 생각된다. 그래서 RTK에서는 언제 압축하고 언제 원본으로 돌아갈지를 사용자가 통제할 수 있게 하였다.

이 프로젝트는 단순한 유틸리티로 볼 수도 있다. 하지만 AI Native 개발 환경 관점에서 보면 느낌이 다르다.

모델은 두뇌이고, RTK와 같은 도구는 감각을 정리하는 장치다.

두뇌를 키우는 일만큼, 들어오는 감각을 정제하는 일도 중요하다는 것을 이 도구가 보여주기 때문이다.

결국 RTK가 던지는 질문은 단순하다.

정말 필요한 것은 더 큰 모델일까? 아니면 더 깨끗한 입력일까?

아마도 답은 둘 다일 것이다. 그러나 현장에서는 두 번째가 더 중요하다. 더 큰 모델은 비싸고, 느리고, 언제나 접근 가능하지 않기 때문이다. 반면 입력을 정리하는 일은 상대적으로 싸고, 빠르고, 바로 적용이 가능하다. 이 작은 도구는 거대한 AI 혁신처럼 보이지는 않지만, 실제 사용 경험의 병목을 직접 건드린다.

"LLM이 읽는 모든 것을 더 많이 넣자!"는 방향이 아니라, "LLM이 읽을 가치가 없는 것을 빼자!"는 방향을 선택한다.

이 프로젝트가 의미 있다고 보는 이유는, 문제를 정확히 문제로 본다는 데 있다. AI 코딩의 병목은 모델안에만 있지 않다. 종종 모델 바깥, 터미널의 지저분한 출력과 도구 체인에 있을 수 있다.

즉, "AI가 일하는 환경을 인간 중심 인터페이스에서 기계 중심 인터페이스로 번역하려는 시도다."

나는 이런 종류의 시도가 앞으로 더 많아질 것이라고 본다. 모델이 좋아질수록, 오히려 모델 앞단의 정제 레이어가 더 중요해질 가능성이 크기 때문이다.

지금 이 모델은, 무엇을 읽고 있는가?


References:

  1. https://github.com/rtk-ai/rtk
  2. https://www.rtk-ai.app/

3/29/2026

Mitchell Hashimoto의 「My AI Adoption Journey」를 읽고

본 글은 Mitchell Hashimoto의 을 읽고 정리한 글이다.

AI를 둘러싼 이야기는 대체로 두 갈래로 흐른다. 하나는 모든 것이 곧 AI로 대체될 것이라는 과장된 낙관론이고, 다른 하나는 아직은 실무에서 믿고 쓰기 어렵다는 냉소다. 

그런데 실제로 생산성을 만들어내는 사람들의 이야기는 중간 어딘가에 있다. Mitchell Hashimoto가 2026년 2월에 쓴 "My AI Adoption Journey" 도 그런 글이다. 

이 글은 특정 모델을 찬양하는 글도 아니고, 반대로 AI를 무의미한 유행으로 치부하는 글도 아니다. 그는 자신이 AI를 어떤 순서로 받아들였고, 어디에서 실망했고, 어느 시점부터 실질적인 가치를 느꼈는지를 여섯 단계로 정리한다.

Hashimoto는 새로운 도구를 도입할 때 대체로 세 시기를 거친다고 말한다. 

처음에는 비효율의 시기가 있고, 그다음에는 그럭저럭 쓸 만한 단계가 오고, 마지막에는 워크플로우 자체를 바꾸는 수준의 발견에 도달한다는 것이다. 

AI도 예외가 아니었다. 이미 손에 익은 방식이 있는데 새로운 도구를 배우는 일은 그 자체로 비용이 들고, 그래서 대개 사람은 초반의 불편함을 견디지 못한 채 포기한다. 그럼에도 그는 그 비효율의 시기를 통과해야만 진짜 판단이 가능하다고 얘기한다. 이것이 중요한 이유는, AI 도입을 단순히 “좋으냐 나쁘냐”로 나누지 않고, 도구 채택의 자연스러운 학습 곡선으로 보기 때문이다.

그의 첫 번째 결론은 의외로 단호하다. 의미 있는 코딩 작업을 웹 챗봇 인터페이스에서 하려는 시도를 그만두라는 것이다. ChatGPT나 Gemini 같은 챗 인터페이스는 여전히 가치가 있지만, 복잡한 코드 작업에서는 한계가 분명하다고 얘기한다. 

특히 기존 코드베이스처럼 맥락이 많은 환경에서는 결과가 자주 어긋나고, 사람이 코드와 로그를 복사해 붙여넣으며 계속 오류를 바로잡아야 하므로 오히려 비효율적이라는 판단이다. 그가 본격적으로 가치를 느낀 지점은 챗봇이 아니라 에이전트였다. 그가 말하는 에이전트는 단순히 대화하는 모델이 아니라, 파일을 읽고, 프로그램을 실행하고, HTTP 요청을 보내며, 이런 행동을 반복 루프 안에서 수행할 수 있는 형태의 도구다. 즉, “답해주는 AI”보다 “일할 수 있는 AI”가 필요하다는 이야기다.

두 번째 단계에서 그는 AI에게 자신의 일을 맡기기 전에 먼저 아주 불편한 실험을 한다. 사람이 직접 한 작업을, 에이전트만으로 다시 재현해보는 것이다. 같은 일을 두 번 하는 셈이니 당연히 비효율적이다. 실제로 그는 이 과정을 고통스럽다고 표현한다. 하지만 이 반복 속에서 중요한 감각이 생겼다고 말한다. 

하나의 거대한 세션으로 모든 것을 해결하려고 하면 실패 확률이 높고, 작업은 명확하고 실행 가능한 작은 단위로 나눠야 한다는 점이다. 또 요청이 모호하다면 계획 단계와 실행 단계를 분리해야 하며, 에이전트가 자기 결과를 검증할 수 있는 방법을 주면 스스로 실수를 고치고 회귀를 줄일 가능성이 높아진다는 점도 확인한다. 

결국 여기서 얻은 가장 큰 성과는 “AI가 무엇을 잘하는가”보다 “AI에게 무엇을 맡기면 안 되는가”를 배운 데 있었다. 이 경계를 아는 것만으로도 시간 낭비를 크게 줄일 수 있기 때문이다.

대부분 많은 사람들이 지금도 AI 생산성을 모델의 지능에서만 찾으려 하고 있다. Hashimoto의 경험은 조금 다르다. 생산성은 더 똑똑한 모델에서만 오지 않는다. 오히려 실패할 일을 애초에 던지지 않는 판단, 모호한 일을 계획과 실행으로 분리하는 습관, 검증 수단을 함께 주는 방식 같은 운영 감각에서 더 많이 나온다. 즉, AI를 잘 쓰는 능력은 “좋은 질문을 던지는 능력”만이 아니라 “실패할 조건을 미리 제거하는 능력”에 가깝다. 

그는 이 단계에서 이미 에이전트를 워크플로우 안에 넣을 수 있을 정도의 가치를 느꼈지만, 아직 자신보다 확실히 빠르다고 생각하지는 않았다고 얘기한다.

세 번째 단계는 하루의 끝을 활용하는 방식이다. 그는 근무 마지막 30분 정도를 따로 확보해 하나 이상의 에이전트를 실행한다. 사람의 집중력은 하루 후반부로 갈수록 떨어지고, 이때 억지로 깊이 있는 작업을 계속하기보다 에이전트를 돌려 다음 날의 준비물을 만들어두는 편이 낫다고 본 것이다. 

여기에는 몇 가지 유형이 있다. 특정 언어나 라이선스 조건에 맞는 라이브러리를 조사해 장단점과 개발 현황, 커뮤니티 반응까지 정리하게 하는 딥 리서치, 아직 모양이 잡히지 않은 아이디어를 병렬적으로 탐색하는 시도, 그리고 GitHub 이슈나 PR을 분류하고 검토 보고서를 만드는 일이 대표적이다. 

그는 에이전트를 밤새 무한 루프로 돌리는 극단적인 방식까지 간 것은 아니라고 분명히 얘기한다. 대부분의 작업은 30분 이내에 끝났다. 그러나 그 정도만으로도 다음 날 아침 더 빨리 일에 들어갈 수 있는 “웜 스타트”가 만들어졌다고 평가한다.

우리는 흔히 AI가 사람보다 즉시 빠르고 정확해야만 유용하다고 생각한다. 하지만 실제 업무에서는 사람이 일하지 못하는 시간에 다음 작업의 맥락과 재료를 준비해두는 것만으로도 충분히 큰 가치가 생긴다. 

AI는 사람과 경쟁하는 속도 도구가 아니라, 사람의 비가동 시간을 생산적인 준비 시간으로 바꾸는 장치가 될 수 있다는 뜻이다. 여기서 중요한 것은 완전 자동화가 아니라, 사람의 리듬에 맞춘 보조다. Hashimoto의 경험은 AI 활용이 반드시 실시간 협업만을 의미하지 않으며, 비동기적으로도 충분히 강력할 수 있음을 보여준다.

네 번째 단계에서 그는 조금 더 과감해진다. 이제는 에이전트가 거의 틀리지 않을 것 같은 일을 골라, 백그라운드에서 실제로 맡기기 시작한다. 전날 밤 에이전트가 분류해둔 이슈나 작업 목록을 보고, 그중 성공 확률이 높은 것만 골라 하나씩 돌려두고, 자신은 그동안 다른 깊은 작업을 한다. 

여기서 그가 강조하는 원칙 하나는 에이전트의 데스크톱 알림을 꺼야 한다는 것이다. 이유는 단순하다. 컨텍스트 스위칭 비용이 크기 때문이다. 인간이 언제 에이전트를 통제해야지, 에이전트가 사람의 집중을 끊어서는 안 된다. 

자연스러운 휴식 구간이나 전환 지점에서만 에이전트를 확인하고 다시 자기 일로 돌아가야 한다는 것이다. 이 원칙은 AI 도입의 문제를 기술 문제가 아니라 주의력 관리 문제로도 바라보게 만든다. 

그는 이 단계가 AI가 기술 형성을 해칠 수 있다는 우려와도 일정한 균형을 만든다고 본다. 덜 중요하거나 비교적 확실한 작업은 에이전트에게 맡기되, 자신이 계속 성장하고 싶은 영역의 작업은 여전히 수작업으로 유지하는 방식이다. 

이 우려는 과장된 것이 아니다. Anthropic이 2026년 1월 공개한 연구는, 새로운 Python 라이브러리를 익히는 과제에서 AI 도움을 받은 참가자들이 도움을 받지 않은 집단보다 개념 이해, 코드 읽기, 디버깅 능력에서 더 낮은 점수를 기록했다고 보고했다. 

논문 초록은 평균적으로 유의미한 효율 향상도 크지 않았으며, 특히 과제를 AI에 많이 위임할수록 학습 손실이 커졌다고 설명한다. 반면 AI를 단순 대행자가 아니라 설명과 분석 보조 도구로 쓴 참가자들은 상대적으로 더 나은 학습을 보였다는 해석도 함께 나온다. 결국 문제는 AI 사용 여부 자체가 아니라, 무엇을 위임하고 무엇을 직접 이해할 것인가에 대한 것이다.

다섯 번째 단계에서 이 글의 핵심이 나온다. 바로 “Engineer the Harness” 하네스를 설계하라는 말이다. Hashimoto는 에이전트가 처음부터 맞는 결과를 내거나, 최소한 아주 적은 수정만 필요하도록 만들수록 효율이 급격히 높아진다고 봤다. 그리고 이를 위한 가장 확실한 방법은, 에이전트가 틀렸을 때 빠르고 정확하게 틀렸음을 알려주는 좋은 도구를 주는 것이라고 말한다. 

그는 이 접근을 “하네스 엔지니어링”이라 부른다. 뜻은 명확하다. 에이전트가 어떤 실수를 했다면, 그 실수를 다시는 반복하지 못하도록 환경과 도구를 설계하는 것이다. 이 발상이 중요한 이유는 AI 활용의 중심을 프롬프트에서 시스템 설계로 이동시키기 때문이다. 반복되는 실수를 사람의 인내로 감당하는 대신, 작업 환경의 규칙과 검증 장치로 흡수하는 것이다.

그는 하네스 엔지니어링을 두 가지 형태로 설명한다. 

첫째는 더 나은 암묵적 프롬프팅이다. 예를 들어 AGENTS.md 같은 파일에, 에이전트가 자주 잘못 사용하는 명령어, 자주 엉뚱하게 찾는 API, 특정 서브시스템에서 먼저 확인해야 하는 파일, 플랫폼별 검증 방법 같은 맥락 정보를 짧고 구체적으로 적어두는 방식이다. 

Hashimoto는 Ghostty 저장소의 AGENTS.md를 사례로 제시하며, 그 파일의 각 줄이 실제로 나쁜 에이전트 행동 하나를 겨냥해 추가된 것이고 결과적으로 문제를 거의 해결했다고 말한다. 

둘째는 실제 도구다. 스크린샷을 찍는 스크립트, 일부 테스트만 빠르게 실행하는 스크립트, 결과를 필터링해 이상 여부를 바로 확인하는 도구 등이 여기에 속한다. 

핵심은 에이전트가 결과를 스스로 검증할 수 있어야 한다는 점이다. 사람의 눈으로만 확인해야 하는 작업은 결국 병목이 된다. 반대로 검증이 자동화되면, AI는 “시도하는 도구”에서 “자기 오류를 교정하는 시스템의 일부”가 된다.

이 부분이 특히 중요한 이유는, 소프트웨어 엔지니어링의 좋은 원칙과 정확히 닿아 있기 때문이다. 

좋은 팀은 버그를 하나 고치고 끝내지 않는다. 왜 그 버그가 다시 생기지 않게 할 것인지까지 고민한다. 테스트를 추가하고, 린트 규칙을 넣고, 배포 전 체크를 강화하고, 문서와 실행 규칙을 손본다. 

Hashimoto가 말하는 하네스 엔지니어링은 사실 AI 시대에 새로 생긴 마법이 아니라, 익숙한 프로그래밍 원칙을 AI 작업에 그대로 확장한 것이다. 

에이전트가 잘못했다면 그것은 한 번의 실패가 아니라, 다음부터 시스템으로 줄일 수 있는 결함 패턴이다. 따라서 AI를 잘 쓰는 사람은 답변을 더 정교하게 유도하는 사람이라기보다, 실패를 재발 방지 가능한 구조로 바꾸는 사람에 가깝다.

여섯 번째 단계는 “항상 에이전트 하나는 돌아가고 있는 상태”를 목표로 삼는 것이다. 그는 아직 여러 에이전트를 동시에 대규모로 운영하고 싶지는 않다고 말한다. 다만 최소한 하나의 에이전트는 가능한 자주 백그라운드에서 일하고 있기를 바란다. 

에이전트가 돌아가고 있지 않을 때면, 지금 당장 에이전트가 대신 할 수 있는 일이 없는지 스스로 묻는다는 것이다. 다만 여기서도 그는 중요한 선을 긋는다. 에이전트를 돌리기 위해 억지로 일을 만드는 것이 목적은 아니다. 실제로 도움이 되는 일이 있을 때만 돌려야 한다. 그래서 이 목표를 실현하려면, 자신의 워크플로우 자체를 개선해 위임 가능한 고품질 작업이 꾸준히 나오도록 만들어야 한다고 본다. 

그는 현재 자신이 근무 시간의 대략 10~20% 정도만 이런 방식으로 효과적으로 운영하고 있다고 밝힌다. 이 수치는 AI 도입이 완성형이 아니라 계속 다듬어가는 과정임을 보여준다.

마지막으로 그는 자신이 AI 기업에서 일하지도, 투자하지도, 자문하지도 않는다고 밝힌다. 또 AI가 영원히 남을지 여부보다, 지금 자신이 무언가를 만드는 데 실제로 도움이 되는지가 더 중요하다고 말한다. 

AI 시대의 생산성 차이는 누가 더 화려한 프롬프트를 쓰느냐에서 갈리지 않는다. 진짜 차이는 누가 더 좋은 작업 환경을 설계하느냐에서 발생한다. 

챗봇에 멋진 질문을 던지는 능력은 출발점일 수 있지만, 지속적인 생산성의 원천은 아니다. 더 큰 차이는 에이전트가 일할 수 있는 문맥을 만들고, 잘못된 행동을 빠르게 잡아내고, 반복되는 실수를 규칙과 도구로 제거하며, 사람은 더 중요한 문제에 집중할 수 있도록 일의 배치를 다시 짜는 데서 생긴다. 

그런 의미에서 Hashimoto의 여정은 AI 사용 팁이라기보다, 새로운 도구를 실무에 흡수하는 엔지니어링 방법론에 가깝다. AI를 잘 쓰는 사람은 프롬프트를 다듬는 데서 멈추지 않는다. 결국 하네스를 만든다.

2/10/2026

AI가 비서를 넘어 대리인이 되는 시대


OpenClaw란 무엇인가?

'챗봇'과 '에이전트'의 결정적 차이

우리가 그동안 사용해온 ChatGPT나 Claude는 엄밀히 말하면 '챗봇'입니다. 여러분이 질문을 던지면 답을 해주는 일종의 '백과사전'이나 '상담원'에 가깝습니다. 하지만 OpenClaw는 'AI 에이전트(Agent)' 라고 불립니다.

  • 챗봇: "이 이메일 답장 좀 써줘" 답장 초안을 써서 화면에 보여줌 (실제 전송은 사람이 해야 함)
  • OpenClaw(에이전트): "이 이메일에 답장 보내줘" 실제로 이메일 앱을 열고, 내용을 입력한 뒤 전송 버튼까지 누름

즉, OpenClaw는 단순히 말만 하는 존재가 아니라, 여러분의 컴퓨터에서 직접 마우스와 키보드를 움직여 실제로 일을 끝마치는 '디지털 직원' 입니다.


왜 지금 OpenClaw인가?

2026년 초, OpenClaw가 깃허브(GitHub)에서 스타 15만 개를 돌파하며 전 세계적인 신드롬을 일으킨 이유는 단순합니다. "진짜로 작동하기 때문" 입니다. 이전에도 비슷한 시도는 많았지만, 너무 느리거나 실수가 잦았습니다. OpenClaw는 마치 숙련된 비서처럼 빠르고 정확하게 업무를 처리하며, 우리가 '귀찮아하던 일'들을 대신해주기 시작했습니다.


세번의 개명과 탄생 비화

OpenClaw의 창시자 '피터 스타인버거'는 원래 PDF 기술로 수천억 원의 기업 가치를 일궈낸 성공한 사업가였습니다. 그는 은퇴 후 한가로운 삶을 즐기려 했으나, 2025년 AI 기술이 폭발적으로 발전하는 것을 보고 다시 키보드를 잡았습니다.

이 프로젝트는 처음에 'Clawdbot'으로 시작했습니다. 앤스로픽(Anthropic)의 AI 모델 '클로드(Claude)'의 이름을 딴 장난스러운 명칭이었죠. 하지만 상표권 이슈로 인해 잠시 'Moltbot'이라는 이름을 거쳤습니다. Molt는 게나 가재가 허물을 벗고 더 크게 성장하듯, AI가 스스로 학습하고 진화하며 껍질을 깨고 나온다는 철학적 의미를 담고 있습니다.

결국 이 프로젝트는 누구나 자유롭게 사용할 수 있다는 의미의 'Open'과 실행력을 상징하는 'Claw(집게발)'를 합쳐 현재의 OpenClaw로 확정되었습니다.


OpenClaw의 3대 핵심 철학

"나의 데이터는 밖으로 나가지 않는다" (Local-first)

대부분의 AI는 우리가 입력한 모든 정보를 서버로 보냅니다. 기업 비밀이나 사생활이 유출될까봐 걱정되는 부분이죠. 하지만 OpenClaw는 '로컬 우선' 방식으로 작동합니다.

  • 모든 중요한 작업 기록과 파일은 여러분의 PC나 개인 서버에만 저장됩니다.
  • AI 모델(두뇌)만 외부와 연결될 뿐, 여러분의 개인적인 문서는 철저히 여러분의 공간 안에 머뭅니다. 이는 보안을 중시하는 기업들이 OpenClaw에 열광하는 결정적 이유입니다.

"한 번에 하나씩, 완벽하게" (Lane Queue)

사람도 한꺼번에 너무 많은 지시를 받으면 실수를 하듯, AI도 여러 작업을 동시에 하면 엉뚱한 결과를 낼 때가 있습니다. OpenClaw는 이를 해결하기 위해 'Lane' 시스템을 도입했습니다. 마치 고속도로의 전용 차선처럼, 한 명의 사용자가 시킨 일은 순서대로 하나씩 확실하게 처리하여 시스템이 꼬이지 않도록 합니다.


"보는 것이 아니라 이해한다" (Semantic Snapshots)

OpenClaw가 인터넷 쇼핑몰에서 물건을 대신 산다고 가정해 봅시다. 기존 AI는 화면을 사진 찍듯 캡처해서 분석했습니다. 그래서 버튼 위치가 1cm만 바뀌어도 당황했죠.

OpenClaw는 화면의 '디자인'이 아니라 '구조와 의미'를 읽습니다. "이 버튼은 결제 버튼이구나"라고 의미 자체를 파악하기 때문에, 웹사이트가 개편되어도 길을 잃지 않습니다.


무엇을 할 수 있나요?: 실생활 활용 사례

OpenClaw를 처음 접하는 분들이 가장 많이 묻는 질문입니다. "그래서 이걸로 뭘 할 수 있죠?"

  1. 스마트 비서 업무: "내 이메일 훑어보고, 이번 주 회의 일정들 캘린더에 다 정리해 놔. 겹치는 시간 있으면 상대방한테 사과 메일 보내고 시간 조정해."
  2. 데이터 수집 및 정리: "경쟁사 5곳의 신제품 가격을 조사해서 엑셀로 표 만들어줘. 지난번 조사랑 비교해서 가격이 오른 곳은 빨간색으로 표시해."
  3. 복잡한 예약 대행: "내일 저녁 7시 강남역 근처 이탈리안 레스토랑 4명 예약해줘. 만약 예약 꽉 찼으면 비슷한 급의 다른 곳으로 알아보고 나한테 물어봐."

"먼저 말을 거는 AI"

기존의 AI들은 우리가 질문을 하기 전까지는 죽은 듯이 가만히 있었습니다. 하지만 OpenClaw는 다릅니다. 가끔 "아까 지시하신 작업 결과가 나왔는데 확인해보실래요?"라며 먼저 말을 걸기도 하죠. 이게 어떻게 가능할까요?


AI의 심장 박동, 하트비트

OpenClaw 내부에는 'Heartbeat'라는 기능이 있습니다. 말 그대로 일정한 간격으로 심장이 뛰듯 AI가 스스로를 깨우는 것입니다.

  • 체크리스트 확인: 자다가 깬 AI는 "내가 지금 놓친 작업이 있나?", "사용자가 기다리는 결과가 있나?"를 확인합니다.
  • 능동적인 보고: 만약 작업이 끝났거나 중요한 변화가 생겼다면, 사용자가 물어보기 전에 먼저 알림을 보냅니다.

이 기술 덕분에 OpenClaw는 단순한 '도구'가 아니라, 항상 곁에서 상황을 살피는 '진짜 비서' 같은 느낌을 줍니다.


AI의 건망증을 치료하다

많은 분이 AI와 대화하다 보면 답답해한 적이 있을 겁니다. AI는 기본적으로 대화가 길어지면 앞 내용을 잊어버리는 '건망증'이 있기 때문입니다. OpenClaw는 이 문제를 두 개의 기억 저장소로 해결했습니다.

  • 블랙박스 (모든 기록): 비행기의 블랙박스처럼 AI가 했던 모든 행동과 대화를 하나도 빠짐없이 기록합니다. 나중에 문제가 생겼을 때 "너 그때 왜 그랬어?"라고 추궁하면 이 기록을 뒤져봅니다.
  • 요약 노트 (핵심 기억): 하지만 모든 기록을 다 읽으면 시간이 너무 오래 걸리죠. 그래서 OpenClaw는 중요한 정보(예: 사용자의 취향, 프로젝트 마감일 등)만 골라 MEMORY.md라는 파일에 깔끔하게 정리해 둡니다.

AI는 일을 시작하기 전 항상 이 '요약 노트'를 먼저 읽습니다. 덕분에 토큰(비용)은 아끼면서도, 사용자의 중요한 요청사항은 절대 잊어버리지 않는 똑똑한 기억력을 갖게 되었습니다.


AI에게 새로운 기술을 가르치기

OpenClaw가 처음 설치되었을 때는 기본적인 일만 할 줄 압니다. 하지만 여러분이 원한다면 얼마든지 새로운 기술을 가르칠 수 있습니다. 이를 'Skills(스킬)'이라고 부릅니다.


스마트폰 앱 같은 확장성

우리가 스마트폰에 앱을 깔아 기능을 늘리듯, OpenClaw에도 '기술'을 추가할 수 있습니다. 예를 들어서 "포토샵으로 이미지 보정하기", "사내 인사 시스템에서 휴가 신청하기" 등의 기술을 추가할 수 있습니다. 예전에는 개발자가 일일이 코드를 짜야 했지만, 이제 OpenClaw는 설명서(API 문서)만 읽어주면 스스로 그 기술을 습득합니다. "아, 이렇게 하면 휴가 신청을 할 수 있구나!" 라고 스스로 배우는 것이죠.


AI들의 SNS, '몰트북(Moltbook)'

OpenClaw의 가장 놀라운 점은 혼자 일하지 않는다는 것입니다. 전 세계의 OpenClaw 에이전트들이 서로 정보를 공유하는 거대한 네트워크, '몰트북(Moltbook)'이 있기 때문입니다.

여러분의 OpenClaw가 아주 어려운 문제에 봉착했다고 가정해 봅시다.

  1. 검색: OpenClaw는 몰트북에 접속해 "이런 문제를 해결해본 다른 에이전트 있어?"라고 물어봅니다.
  2. 학습: 다른 에이전트가 올려둔 성공 사례(작업 로그)를 다운로드하여 순식간에 공부합니다.
  3. 해결: 사용자의 개입 없이도 새로운 지식을 얻어 업무를 완수합니다.

이것은 AI들이 서로 노하우를 공유하는 페이스북과 같습니다. 전 세계 에이전트들의 지혜가 모이면서, OpenClaw는 시간이 갈수록 기하급수적으로 똑똑해지고 있습니다.


여러 대의 AI가 팀을 이루다: 멀티 에이전트

이제 업무는 한 대의 AI가 아니라 'AI 팀'이 처리합니다. OpenClaw 안에서 여러 명의 가상 직원이 협업하는 모습을 상상해 보세요.

  • 매니저 AI: 전체 계획을 세우고 업무를 분담합니다.
  • 실무자 AI: 실제로 코드를 짜거나 문서를 작성합니다.
  • 검수자 AI: 실무자가 한 일에 실수가 없는지 꼼꼼히 체크합니다.

이들은 서로 대화하며 정보를 주고받습니다. 여러분은 그저 최종 결과물만 승인하면 됩니다. 이것이 바로 OpenClaw가 꿈꾸는 '1인 기업'의 미래입니다.


내 컴퓨터를 지키는 울타리

OpenClaw는 매우 강력합니다. 여러분의 컴퓨터에서 명령어를 직접 실행할 수 있기 때문이죠. 하지만 이는 마치 "칼을 쥔 요리사"와 같습니다. 맛있는 요리를 할 수도 있지만, 실수로 손을 다칠 수도 있죠. 그래서 필요한 것이 바로 '샌드박스'입니다.

샌드박스는 말 그대로 '모래 놀이터'라는 뜻입니다. 아이들이 모래판 안에서 아무리 모래를 뿌리고 성을 허물어도 놀이터 밖의 화단은 망가지지 않는 것과 같은 원리입니다.

  • 격리 환경: OpenClaw가 작업하는 공간을 실제 내 중요한 파일들이 있는 곳과 분리합니다.
  • 피해 최소화: 만약 AI가 실수로 "모든 파일 삭제"라는 명령을 내려도, 샌드박스라는 가상의 상자 안에서만 파일이 삭제될 뿐, 실제 여러분의 소중한 사진이나 업무 문서는 안전하게 보호됩니다.

설치의 기술: "어떤 바구니에 담을 것인가?"

OpenClaw를 설치할 때 가장 고민되는 지점입니다. 전문가들은 보통 '도커(Docker)'라는 방식을 강력하게 권장합니다.

구분 직접 설치 (Native) 컨테이너 설치 (Docker)
비유 내 거실 바닥에서 요리하기 주방 보조 칸(별도 공간)**에서 요리하기
보안성 낮음 (거실 전체가 지저분해질 수 있음) 높음 (주방 칸만 치우면 끝)
편의성 복잡함 (설치할 게 많음) 간편함 (상자 통째로 가져오면 끝)
추천 대상 개발자 일반 사용자 및 기업

'에이전트 경제(Agent Economy)'의 서막

OpenClaw가 불러온 변화는 단순히 "일이 편해졌다"에서 끝나지 않습니다. 우리가 돈을 벌고 쓰는 방식 자체가 바뀌는 '에이전트 경제'로 진입하고 있습니다.


사람이 쇼핑하지 않는 시대 (A2A 거래)

지금은 우리가 쿠팡이나 아마존에 들어가서 최저가를 검색하고 결제 버튼을 누릅니다. 하지만 이 양상이 달라집니다.

  1. 나의 에이전트: "사용자님, 냉장고에 우유가 떨어졌어요. 평소 드시던 저지방 우유 중 가장 신선하고 싼 걸로 주문할게요."
  2. 마트의 에이전트: "우리 마트 지금 타임 세일 중이야! 우리한테 사면 쿠폰 줄게."
  3. 협상과 결제: 에이전트들끼리 0.1초 만에 협상을 끝내고 결제까지 완료합니다. 우리는 그저 도착한 우유를 마시기만 하면 됩니다.

'노동'의 정의가 바뀝니다

이제는 "얼마나 성실히 엑셀을 채우는가"는 중요하지 않습니다.

  • 과거: 기술을 배우고 직접 실행하는 사람
  • 미래: AI 에이전트에게 정확한 의도(Intention)를 전달하고, 결과물을 승인하는 사람

지금 당장 시작해야 할 3가지 액션 플랜

이 글을 읽고 "와, 신기하다"에서 멈추면 기회를 놓치게 됩니다. 지금 바로 다음 세 단계를 실천해 보세요.

  1. AI 거버넌스 이해하기: 무턱대고 AI에게 모든 권한을 주지 마세요. "어디까지 허용할 것인가"에 대한 나만의 기준을 세워야 합니다.
  2. 데이터를 깨끗하게 정리하기: AI는 여러분이 가진 데이터를 먹고 자랍니다. 폴더 이름 하나, 문서 제목 하나를 깔끔하게 정리해 두는 것만으로도 OpenClaw의 성능은 2배 이상 올라갑니다.
  3. 작은 일부터 맡겨보기: 오늘 당장 "내일 날씨 확인해서 복장 추천해줘" 같은 아주 작은 일부터 OpenClaw에게 시켜보세요. 에이전트와 대화하는 법을 익히는 것이 미래의 가장 큰 경쟁력이 됩니다.

당신의 새로운 파트너를 환영하세요

OpenClaw는 우리의 일자리를 뺏으러 온 괴물이 아닙니다. 오히려 우리를 단순 반복 노동이라는 감옥에서 해방시켜줄 가장 유능한 파트너입니다.

처음에는 낯설고 어려울 수 있습니다. 하지만 이 '집게발(Claw)'을 잡는 순간, 여러분은 혼자가 아니라 든든한 AI 팀을 거느린 Owner가 될 것입니다. 2026년, OpenClaw와 함께 새로운 비즈니스의 지평을 열어보세요.


설치 Tip

설치 환경

  • Windows 11
  • WSL - Ubuntu 24.04 준비
  • systemd 활성화 (/etc/wsl.conf 파일내에 systemd=true 인지 확인)

Ubuntu 실행 후, 아래의 단계를 수행합니다.

Nodejs 설치
$curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
$source ~/.bashrc
$nvm install 22
$node -v #22.x.x 버전 확인

pnpm 설치
$corepack enable
$corepack prepare pnpm@latest --activate

Openclaw 설치
$npm install -g openclaw@latest

설치 후 아래의 명령어로 온보딩 진행하면 됩니다.
$openclaw onboard --install-daemon

11/29/2025

AI가 읽는 제품과 서비스를 설계


지난 30년 동안 웹의 역사는 인간을 위한 설계, 즉 “사용자 경험(UX)”의 역사였습니다. 1990년대의 투박한 텍스트 기반 인터페이스에서 매끄러운 모바일 터치 인터페이스에 이르기까지, 기술적 진보의 중심은 “인간의 눈과 손”이었습니다. 그러나 2025년 현재 우리는 또 다른 거대한 전환점에 서 있습니다. 바로 AI 에이전트가 웹의 새로운 주요 사용자로 등장한 것입니다.

본 글은 짐 닐슨(Jim Nielsen), 마르타 페르난데스(Marta Fernandez), 마티아스 빌만(Mathias Bilmann)등 업계의 선구적인 사람들이 제기한 통찰을 바탕으로 작성되었습니다.

본 글에서 이야기하는 AX는 AI Transformation이 아닙니다. Agent Experience인 점을 기억해주세요.

AX(Agent Experience, AX)는 단순한 기술적 유행어가 아닙니다. 이는 웹의 본질을 “인간이 보는 공간”에서 “기계가 이해하고 행동하는 공간”으로 확장하는 구조의 변화입니다.

AX는 “AI 에이전트가 제품이나 플랫폼의 사용자로서 갖게 되는 전체적인 경험”이라고 정의되며, 이것이 향후 소프트웨어 산업의 핵심 경쟁력이 될 것이라 생각합니다. “AI에 의해 구동되는 인간 중심의 경험”으로 확장될 것이며, 알고리즘의 능력을 윤리적이고 이해 가능한 행동으로 번역하는 디자인이 중요해질 것입니다.

본 글에서는 AX의 정의와 필요성, 기술적 구현 방식 그리고 비즈니스와 웹의 미래에 미칠 영향을 포괄적으로 다룹니다.


AX의 정의와 패러다임의 전환

UX에서 AX로: 설계 단위의 변화

전통적인 UX 디자인은 인간의 인지적 한계와 심리적 만족을 최우선으로 고려했습니다. 버튼의 위치, 크기, 색상 그리고 직관적인 루트는 모두 인간의 시각적 처리를 돕기 위한 장치였습니다. 그러나 AI 에이전트에게는 이러한 시각적 요소는 오히려 정보 처리를 방해하는 소음이 됩니다.

마르타 페르난데스는 UX에서 AX로의 전환을 “설계 단위(Design Unit)”의 근본적인 변화라고 설명합니다.

<UX와 AX의 구조적 차이>

구분UX (사용자 경험)AX (에이전트 경험)
주요 사용자인간AI Agent
입력 방식시각, 터치, 음성텍스트, API, 데이터
설계 단위페이지, 화면, 선형적 흐름에이전트, 행동, 확률적 결정
핵심 목표만족도, 체류 시간, 시각적 즐거움성공률, 토큰 효율성, 자율성
예측 가능성정의된 상태가변적이고 설명 가능한 결과
오류 처리시각적 피드백자가 수정, 로그 기록

위 표가 시사하는 바는 인간을 체류시키기 위한 “몰입형 디자인”에서, 기계가 신속하게 목표를 달성하게 돕는 “효율성 디자인”으로의 이동입니다. 에이전트는 웹사이트의 아름다움에 감탄하지 않습니다. 목표 달성을 위한 데이터의 명확성과 구조적 논리성을 요구합니다. 따라서 AX 디자인은 화려한 그래픽을 걷어내고, 정보의 뼈대를 드러내는 작업과 같습니다.


새로운 페르소나

Netify CEO 마티아스 빌만은 소프트웨어 기업들이 제품을 개발할 때, AI 에이전트를 마케팅 담당자나 개발자처럼 하나의 구체적인 페르소나로 취급해야 한다고 주장합니다.

  1. 목표 지향적: 에이전트는 심심풀이로 웹 서핑을 하지 않습니다. 명확한 목적을 가지고 접근 합니다.
  2. 확률적 추론: 전통적인 프로그램과 달리, LLM기반 에이전트는 매번 동일한 경로로 움직이지 않을 수 있습니다. AX는 이런 불확실성을 수용하고, 에이전트가 길을 잃지 않도록 “가드레일”을 제공해야 합니다.
  3. 고도의 문자주의: 에이전트는 문맥 파악 능력은 뛰어나지만, 숨겨진 UI 요소나 암묵적인 관습보다 명시적인 텍스트를 선호합니다.


오픈 웹과 AX 철학

AX는 단순히 기업의 효율성을 높이는 도구를 넘어, 오픈 웹의 생존과 직결된 문제일 수 있습니다. 만약 특정 거대 기업들만이 독점적인 제휴를 통해 서비스들을 연결한다면, 웹은 소수를 위한 닫힌 공간으로 전략할 것입니다.

반면, 개별 웹사이트와 서비스들이 표준화된 AX(e.g. API, llms.txt)를 제공한다면, 에이전트가 자유롭게 웹을 탐색하고 상호작용할 수 있는 “오픈 에이전트 생태계”가 가능해집니다. 이는 짐 닐슨과 같은 웹 표준 옹호자들이 오랫동안 주장해 온 “누구나 접근 가능한 하이퍼텍스트로서의 웹” 이라는 철학과 매핑됩니다.


AX의 기술적 아키텍처와 구현

AX를 성공적으로 지원하기 위해서는 기존의 웹 개발 방식과는 다른 기술적 접근이 필요합니다. 핵심은 “기계 가독성”을 극대화 하는 것입니다.


llms.txt: 에이전트를 위한 지도

llms.txt에 대해서는 이전 글에 작성했으니, 참고해주세요.


API: 에이전트의 손과 발

AX의 세계에서 GUI(Graphic User Interface)는 보조적인 수단입니다. 에이전트에게 가장 강력한 인터페이스는 API(Application Programming Language) 입니다. 그 이유는 아래와 같습니다.

  • 자기 기술적 API: 에이전트가 사람의 개입 없이 도구를 사용하려면, API 명세서가 기계가 읽을 수 있는 형태로 완벽하게 제공되어야 합니다. 에이전트는 이 명세서를 메뉴얼처럼 읽고, 스스로 요청을 구성해야 합니다.
  • 예측 가능성: 에이전트 경험을 저해하는 가장 큰 요소는 “예기치 않는 변경” 입니다. API 응답 형식이 예고 없이 변경되면 에이전트의 논리 회로는 어려움을 겪습니다. 이는 개발자도 마찬가지죠 🙂 따라서 AX는 엄격한 버전 관리와 명확한 오류 메시지를 요구합니다.
  • 세밀한 권한 관리: 인간 사용자와 달리 에이전트는 수백 번의 작업을 순식간에 수행할 수 있습니다. 따라서 Read, Create 등 매우 세분화된 API 권한 관리가 필수적입니다.

토큰 경제학과 효율성

AX 디자인의 핵심 제약 조건은 “컨텍스트 윈도우” 입니다. AI 모델이 한 번에 기억할 수 있는 정보의 양은 제한적이며, 긴 텍스트를 처리할수록 비용과 시간이 증가합니다. 즉, 훌륭한 AX는 “최소한의 토큰으로 최대의 의미”를 전달하는 것입니다.

에이전트에게 5MB 사이즈의 자바스크립트가 포함된 페이지를 던져주는 것과 핵심 정보만 담긴 5KB 사이즈의 JSON이나 마크다운 요약을 제공하는 것 중 어떤 것이 좋은 AX일까요?


인간 중심의 기계 설계

AX가 기계를 위한 설계라 해도, 그 최종 목적은 인간을 돕는 것입니다. AX가 단순하게 자동화하는 것이 아니라 신뢰, 투명성 그리고 사용자 주체성을 위한 설계가 되어야 합니다.

사용자가 에이전트에게 “제주도행 항공권을 예매해줘” 라고 지시했을 때, 사용자는 에이전트가 자신의 의도대로 행동할 것이라고 믿어야 합니다. 이 신뢰를 구축하는 것이 AX의 핵심 과제입니다.

신뢰를 구축하려면 과정이 투명해야 합니다. 에이전트가 결과를 내놓기 전에 “당신의 요청에 따라 A 항공사와 B 항공사를 비교 중입니다.” 와 같은 중간 과정을 로그나 요약 형태로 보여주어야 합니다. 또한 결제 단계와 같은 중요한 스텝에 도달 했을 때에는 인간이 이를 검토하고 승인하거나 취소할 수 있는 명확한 인터페이스를 제공해야 합니다.

우리가 이제까지 알아왔던 UX에서 브랜드의 성격이 시각적 톤앤매너로 표현된다면, AX에서는 행동(Behavior)으로 표현됩니다. 예를 들어서 금융 서비스 에이전트는 매우 보수적이고 확인을 자주하는 Behavior로 설계해야 합니다. 이런 행동 양식을 부여하는 것이 사용자 경험의 일관성을 유지하는데 매우 중요합니다.


비즈니스 전략으로서의 AX와 미래 전망

AX는 단순한 개발 트렌드가 아닙니다. 조직의 이름 혹은 회사명을 변경한다고 AX를 한다고 할 순 없습니다. 이는 기업의 생존을 결정할 비즈니스 전략으로 바라봐야 합니다.

마티아스 빌만은 “LLM이 사용하기 어려운 도구는 도태될 것”이라고 단언합니다. 왜 이런 얘기를 할까요?

예를 들어, 두 개의 프로젝트 관리 도구가 있다고 가정해 봅시다. 도구 A는 화려한 Drag & Drop 인터페이스를 가졌지만 API가 빈약하고, 도구 B는 인터페이스는 매우 투박하지만 강력하고 문서화된 API를 제공합니다. 기업들이 업무 자동화를 위해 AI 에이전트를 도입할 때, 에이전트는 어떤 도구를 선택할까요? 아마도 도구 B를 선택할 것입니다. 그 이유는 에이전트가 조작할 수 없는 소프트웨어는 자동화된 워크플로우에서 배제되기 때문입니다. 즉, AX가 뛰어난 제품이 시장 우위를 점하게 됩니다.

검색 엔진 최적화(SEO)의 시대가 저물고, 에이전트 최적화(AEO)의 시대가 오고 있습니다. 이제 기업은 구글 검색 결과 1페이지에 오르는 것뿐만 아니라, ChatGPT나 PErplexity와 같은 답변 엔진이 자사의 정보를 인용하도록 만들어야 하기에 아래의 사항들이 중요해집니다.

  • 구조화된 데이터의 중요성: Schema.org를 통해 가격, 재고, 리뷰 평점을 명확하게 명시해야 에이전트가 신뢰할 수 있는 데이터로 인식합니다.
  • 에이전트 커머스: 2026년까지 상당수의 전자상거래가 인간의 직접 클릭이 아닌, 에이전트의 대리 수행으로 이루어질 것으로 예측됩니다. “가장 싼 방을 예약해줘”라는 지시를 수행하는 에이전트에게 선택받으려면, 에이전트가 즉시 접속 가능한 API와 정확한 실시간 데이터를 제공해야 합니다.

아마도 웹은 “인간이 소비하는 미디어 웹”과 “에이전트가 일하는 유틸리티 웹”으로 양분될 것입니다. 기업은 이 두 가지 웹을 동시에 만족시켜야 하는 과제에 직면하게 되지 않을까 합니다.


마무리

웹은 다시 한번 진화하고 있으며, 이번 진화의 주인공은 Agent라고 생각됩니다. 

이 바닥에서 일하는 우리들에게 AX는 선택이 아닌 필수입니다. 화려한 디자인 뒤에 가려진 정보의 장벽을 허물고, 에이전트가 자유롭게 드나들 수 있는 “약속된 문”을 만드는 것. 

이것이 AI 시대에 우리가 만드는 제품과 서비스가 살아남는 길이며, 인간과 AI가 공존하는 더 나은 디지털 세상을 만드는 방법이라 생각합니다. 

지금 당신이 만든 제품과 서비스는 Agent를 맞이할 준비가 되어 있습니까?


참고:

11/28/2025

AI가 읽기 쉬운 Web을 위한 llms.txt

우리는 매일 웹사이트에 접속합니다. 화려한 디자인, 편리한 메뉴 구성, 광고 배너들이 우리를 반깁니다. 하지만 이 모든 시각적 요소들은 AI에게는 그저 소음에 불과하다는 사실을 알고 계셨나요?

ChatGPT, Claude, Gemini와 같은 대규모 언어 모델(LLM)의 능력은 대단합니다. 사람들은 이제 검색을 하고 링크를 찾아다니는 대신, AI에게 질문을 합니다. 이때 AI는 웹사이트를 방문하여 정보를 읽어옵니다.

문제는 여기서 발생합니다. 사람을 타겟으로 보기 좋게 만들어진 웹사이트는 AI가 읽기에는 매우 복잡합니다. 광고 스크립트, 복잡한 레이아웃, 스타일 시트 등이 섞여 있어, 중요한 정보(텍스트)를 찾아내기 어렵게 만듭니다. 도서관에 갔는데 책의 내용보다 책 표지의 디자인과 도서 위치를 설명하는 안내표기가 더 많은 상황입니다.

이 문제를 해결하기 위해 등장한 것이 llms.txt 입니다. 본 글에서는 이 텍스트 파일이 왜 중요한지 알아보려 합니다.


llms.txt란?

쉽게 설명하면 llms.txt는 AI를 위해 특별히 준비된 전용 메뉴판입니다.

예를 들어서 레스토랑에 가면, 음식 사진이 포함된 메뉴판을 줍니다. 이는 사람을 타겟팅한 메뉴판입니다. 만약 LLM이 손님이라면 어떨까요? 사진이나 디자인은 필요 없습니다. 음식이름, 가격, 설명만 깔끔하게 정리된 것을 원할 것 입니다.

llms.txt가 이 역할을 해주게 됩니다. 웹사이트의 복잡한 디자인 요소를 모두 걷어내고, AI가 이해하기 쉬운 형태인 Markdown 형식을 사용해 핵심 정보만 제공합니다.

사람을 위한 웹사이트는 UX 관점에서 레이아웃, 메뉴 구조, 이미지, 버튼, 텍스트등이 필요했다면, LLM용 웹사이트는 제목, 요약, 핵심 문서로 가는 직관적인 링크만 필요할 뿐입니다.


왜 만들었지?

이 개념은 2024년 9월, Answer AI의 제러미 하워드가 제안하며 널리 알려지기 시작했습니다. AI 개발자들은 웹사이트의 정보를 AI에게 학습시키거나 검색하게 할 때마다 불필요한 HTML 코드를 걸러내는 작업이 지쳐 있었습니다.

“그냥 웹사이트 소유자들이 AI가 읽기 쉽게 요약본을 올려두면 안될까?”

이 단순한 아이디어가 llms.txt 프로젝트의 시작이었습니다.


왜 필요하지?

단순히 AI에게 친절하기 위해 필요한 것은 아닙니다. 여기에는 매우 현실적이고 경제적인 이유가 숨어 있습니다.

AI 모델을 사용할 대 정보의 양은 곧 비용입니다. AI는 글자를 읽을 때 “토큰”이라는 단위로 계산하는데, 불필요한 HTML 태그도 전부 토큰을 사용하게 됩니다.

만약에 웹사이트의 정보가 100인데, 디자인 코드 때문에 전체 데이터가 1000이 된다면, AI는 핵심 정보를 얻기 위해 10배의 비용과 노력을 들여야 합니다. llms.txt를 제공하면 알짜배기 정보 100만 읽으면 되기에 훨씬 효율적입니다.

또한, 아무리 똑똑한 AI라도 한 번에 기억하고 처리할 수 있는 정보의 양에는 한계가 있습니다. 쓸데없는 코드로 이 공간을 채워버리면, 중요한 내용을 AI가 잊어버리거나 놓칠 확률이 높아집니다.

깨끗하게 정리된 텍스트를 제공하면, AI는 한정된 기억 공간을 정보를 이해하는데 온전히 쓸 수 있습니다. 결과적으로 사용자가 웹사이트에 대해 질문했을 때, AI가 더 정확하고 똑똑한 답변을 할 수 있게 됩니다.


robots.txt와 차이점

기존의 robots.txt의 개념과 혼동하는 사람들이 존재합니다. 둘 다 웹사이트의 root에 위치하는 텍스트 파일이라는 점은 같지만, 목적은 완전히 반대입니다.

robots.txt의 목적은 “통제” 입니다. 어디를 들어오면 안되는지를 알려주는 역할을 합니다.

llms.txt의 목적은 “안내”입니다. 무엇을 읽어야 가장 정확한지 알려주는 역할을 합니다.

위 두 파일은 경쟁 관계가 아니라 상호 보완적인 관계입니다. 완벽한 웹사이트 관리를 위해서는 두 파일이 모두 필요합니다.


llms.txt 작성법

그렇다면 이 파일은 어떻게 생겼을까요? 생각보다 단순합니다. 개발자가 아니더라도 금방 만들 수 있습니다.


파일의 위치

웹사이트의 가장 최상위 주소 뒤에 붙습니다. e.g. https://example.com/llms.txt


기본 구조

llms.txt 파일 내부는 Markdown 문법을 따릅니다. 마크다운은 우리가 카카오톡이나 슬랙에서 글자를 굵게 만들거나 리스트를 만들 때 쓰는 아주 간단한 서식입니다.

# 사이트 이름
> 사이트에 대한 아주 짧은 요약

## 핵심 문서

- [
가이드](https://...md) [사용법](https://...md)
- [
자주 묻는 질문](https://...md)

## 추가 정보

이 사이트는 AI가 쉽게 읽을 수 있도록 구성되었습니다.
상세한 내용은 위 링크의 마크다운 파일을 참고하세요.

AI에게 “우리 사이트 이름은 이거고, 핵심 내용은 저 링크들에 있으니 저기를 읽어”라고 알려주는 Index 역할을 합니다.

Blot.new의 llms.txt는 여기서 확인해 보실 수 있습니다.


llms-full.txt

때로는 링크를 타고 가는 것조차 귀찮거나, 한 번에 모든 정보를 AI에게 주고 싶을 때가 있습니다. 이럴 경우 llms-full.txt라는 파일도 함께 만드는 것이 권장됩니다.

이 파일은 웹사이트의 모든 핵심 문서를 하나의 거대한 텍스트 파일로 합쳐둔 것입니다. AI는 여러 페이지를 왔다 갔다 할 필요 없이, 이 파일 하나만 읽으면 전체를 파악할 수 있게 됩니다.


기대효과

우리는 지금까지 구글이나 네이버 검색 결과 상단에 노출되기 위해 검색 엔진 최적화(SEO)를 적용했습니다. 하지만 이제는 인공지능 엔진 최적화(AEO) 또는 생성형 엔진 최적화(GEO)를 준비해야 할 때입니다.

사용자가 ChatGPT에게 “A회사 제품의 환불 규정이 뭐야?”라고 질문하면, AI가 복잡한 웹페이지를 해매다가 엉뚱한 답변을 할 수 도 있기에, llms.txt를 통해 명확한 환불 규정 텍스트를 제공한다면, AI는 정확한 답변을 사용자에게 전달할 수 있습니다.

개발자 도구나 API 문서를 제공하는 기업이라면 llms.txt는 필수입니다. 요즘 개발자들은 코딩할 때 AI의 도움을 받는데, AI가 해당 라이브러리의 사용법을 잘 숙지하고 있을수록 개발자들의 선택을 받을 확률이 높아지기 때문입니다.


결론

llms.txt를 작성하다 보면 한 가지 흥미로운 사실을 깨닫게 됩니다. 군더더기를 빼고, 핵심만 명료하게 정리하고, 목차를 일목요연하게 만드는 작업이 사실은 “사람”에게도 필요한 일이라는 점입니다.

AI가 읽기 쉬운 글은 사람도 읽기 쉽습니다. llms.txt의 도입은 단순히 기계를 위한 작업을 넘어, 웹사이트가 담고 있는 정보의 본질이 무엇인지 다시 한번 점검하고 정제하는 계기가 될 것입니다.

아직 이 표준은 초기 단계입니다. 구글이나 오픈AI가 공식적으로 따르겠다라고 선언한 것은 아닙니다. 하지만 웹의 역사가 증명하듯, 유용한 약속은 결국 표준이 됩니다.

지금 당신의 웹사이트 루프에 작은 텍스트 파일 하나를 추가해보는 것은 어떨까요? 다가오는 AI 검색 시대에, 당신의 콘텐츠가 가장 먼저, 가장 정확하게 읽히는 티겟이 될지 모릅니다.

11/27/2025

AI Model과 Agent



예전만 해도 우리는 AI에게 이렇게 말했습니다.

“파리 가는 비행기 표 좀 찾아줘.”

그러면 AI는 친절하게 대답했죠.

“여기 시간표 입니다. 예매는 링크를 눌러서 직접 하세요.”

하지만 위 대화는 완전히 변경되었습니다. OpenAI가 결제 기업 스트라이프(Stripe)와 “인스턴트 체크아웃” 기능을 도입했기 때문입니다. (아직은 지역적 한계가 있음) 이제 사용자가 “이 티켓 예매해줘”라고 말하면, ChatGPT는 등록된 카드로 실제 결제를 진행합니다.

이 현상은 “순수 모델(Model)”의 시대가 저물고, 행동하는 “에이전트(Agent)”의 시대가 본격적으로 열린 것입니다.

본 글에서는 단순히 기술의 변화를 언급하는 것보다, 어떤 원리로 AI가 내 지갑을 열 수 있게 된것인지, 이 변화가 우리에게 어떤 영향을 줄 것인지 살펴 보도록 하겠습니다.


모델 중심(Model-centric): “뇌(Brain)만 있는 천재의 한계”

우리가 흔히 알고 있는 초기의 ChatGPT는 Model-centric의 산물입니다. “유리병 속에 든 뇌” 였죠.

모델은 인터넷의 모든 텍스트를 읽고 학습했습니다. 그래서 아는 것이 엄청나게 많습니다. 변호사 시험도 보고, 의사 면허 시험도 봅니다. 그러나 모델에게는 치명적인 결함이 있었습니다.

  1. 손발이 없다: 인터넷 뱅킹 앱을 켤 손가락이 없습니다.
  2. 신분증이 없다: 결제를 하려면 로그인을 해야 하는데, AI 모델 자체는 “계정”이나 “카드 정보”를 가질 수 없었습니다.
  3. 책임감이 없다: 모델은 다음 단어를 확률적으로 뱉어낼 뿐, “비행기 표를 예매했다.”고 말해놓고 실제 예약을 안해도 죄책감을 느끼지 않습니다.

그래서 AI는 말만 청산 유수인 심부름은 못 시키는 답답한 천재 였습니다.


에이전트 중심(Agent-centric): “뇌(Brain)에게 손과 발을 달아주다”

올해, 빅테크 기업들은 방향을 틀었습니다. “더 똑똑한 뇌를 만드는 건 이제 가성비가 안나온다. 대신 뇌에게 손발을 달아주자” 이것이 바로 Agent-centric의 핵심 철학 입니다.

OpenAI는 “에이전틱 커머스 프로토콜”을 발표했습니다. 쉽게 말해서 AI에게 안전하게 신용카드를 쥐어주는 기술입니다. 사용자가 미리 결제 시스템에 카드를 등록해두면, AI는 카드 번호를 몰라도 “결제 토큰”이라는 암호만 던져서 결제를 승인 받습니다.

2024년 엔트로픽은 더 과격한 방식을 택했습니다. AI(Claude)에게 아예 모니터 화면을 보여주고 마우스와 키보드 권한을 줬습니다.

“이 엑셀 파일 열어서, A열에 있는 사람들한테 이메일 보내줘”라고 시키면, AI가 실제로 마우스 커서를 움직여 엑셀을 켜고, 복사/붙여넣기를 하며 이메일을 보냅니다. API가 없는 구형 소프트웨어까지 AI가 조작할 수 있게 된 사건입니다.


에이전트는 어떻게 결제 하는가?

위에서 언급한 내용을 보면 “AI가 돈을 쓴다니 무섭다.”고 생각할 수 있습니다. 그러나 그 내부를 들여다보면 마법이 아니라 매커니즘이 작동합니다.

예를 들어 “스타벅스에서 아이스 아메리카노 주문해줘”

1. 의도파악 - 뇌의 역할

  • 생각: “사용자가 커피를 원한다. 이건 대화로 해결할게 아니라 주문 행동이 필요해.”
  • 판단: Order_Coffee라는 도구를 써야겠군

2. 파라미터 추출 - 뇌의 역할

  • 생각: “메뉴는 아이스 아메리카노, 매장은 사용자의 현재 위치 근처인 강남점, 사이즈는 기존으로 설정하자.”

3. 도구 호출 - 손의 역할

  • 여기서 AI는 텍스트를 응답하는게 아니라 코드(함수)를 호출합니다.
  • run_function: Startbucks_Order(item=”Ice Americano”, store=”Gangnam”, payment_token=”.....”)

4. 인간 승인 - 안전 장치

  • 화면에 팝업이 뜹니다.
  • 시스템: “강남점에 아메리카노 5000원 결제할까요? [승인/거절]
  • 사용자: [승인] 클릭

5. 실행 및 결과 보고

  • 시스템이 실제 스타벅스 서버로 주문을 넣고 “주문 번호”를 받아옵니다.
  • AI: “주문 완료했습니다. 번호는 A-55입니다.”

즉, AI 모델 자체가 돈을 만드는게 아니라, AI가 “결제 앱”을 리모컨처럼 조종하는 것입니다. 이것이 바로 에이전트의 본질입니다.


에이전트를 천재처럼 만드는 법

앤드류 응(Andrew Ng)은 “2025년 AI 경쟁력은 모델의 IQ가 아니라, 일하는 방식(Workflow)에 있다”고 얘기했습니다. 멍청한 모델도 다음과 같은 패턴으로 일하면 천재처럼 성과를 낼 수 있다는 의미입니다.


성찰: “나 실수 안 했나?”

AI가 코드를 짰는데 에러가 발생한 상황에 대해 과거 모델은 그냥 멈추거나 틀린 코드를 주는데, 에이전트는 “어? 에러 메시지가 떴네? 3번째 줄 문법이 틀렸구나, 다시 고쳐서 실행해보자.” (스스로 수정 후 성공)


도구 사용: “모르면 찾아봐”

“오늘 삼성전자 주가 어때?”라는 질문에 에이전트는 뇌피셜로 말하지 않습니다. 실시간 주식 API를 호출해서 현재 얼마인지 팩트를 말합니다.


계획

“이번 주말 부산 여행 코스 짜고 예약해줘”라는 질문에 에이전트는 아래처럼 행동합니다.

  1. KTX 시간표 조회
  2. 호텔 검색 (사용자 취향 반영)
  3. 맛집 리스트업
  4. 사용자 컨펌 후 일괄 결제

멀티 에이전트: “팀으로 일하라”

복잡한 소프트웨어 개발을 할때, 에이전트로 팀을 구성합니다.

  • 기획자 AI: 요구사항 정리
  • 개발자 AI: 코드 작성
  • 테스터 AI: 코드 실행 및 버그 찾기 (개발자 AI를 혼냄)

이들이 서로 대화하며 밤새 프로그램을 완성해 놓습니다.


검색의 종말과 대행의 시작

이 기술의 변화는 우리 삶과 경제에 어떤 충격을 줄까요?


광고 시장의 붕괴와 재편

검색의 시대가 끝날 수 있다고 생각될 수 있습니다.

과거에는 “제주도 호첼” 검색 -> 블로그 10개 읽으면서 광고 봄 -> 비교 후 예약 (1시간 소모)

미래에는 “제주도 호텔 괜찮은 곳 예약해줘”(1-3분 소모) 라고 말해서 예약이 되면, 검색 광고 모델이 수익원인 서비스들은 큰 위기를 맞습니다. 그리고 예약 서비스를 제공하는 곳은 AI의 추천 목록 1순위에 들어가는 것이 기업의 생존 과제가 될 수 있습니다.


SaaS

지금까지는 엑셀을 돈 내고 사서, 사용법을 우리가 공부해야 했습니다. 앞으로는 “재무제표 정리해주는 AI” 자체를 구독할 수 있습니다. 소프트웨어의 기능이 아니라, 그 소프트웨어가 만들어내는 결과를 사는 시대로 바뀔 수 있습니다.


우리가 경계해야 할 것들

모든 기술에는 그림자가 있습니다. 즉, “결제하는 AI”는 새로운 위험을 만들 수 있습니다.

에이전트가 오작동을 일으켜, “생수를 주문해줘”라는 명령에 무한 루프가 걸려 물을 1000개를 주문한다면? 그래서 중요한 순간에 반드시 인간 개입(Takeover) 모드를 발동시킵니다. “결제하시겠습니까?” 라는 최종 결정은 인간에게 넘기는 것이죠.

또한, AI 내 카드로 해킹 사이트에서 결제하면 누구 책임일까요?

  • AI 개발사?
  • 결제 모듈사?
  • 행위를 한 사용자?

이제 AI는 결제도 하고, 화면도 보고, 마우스도 움직입니다. 이것은 “에이전트 혁명”입니다. 과거의 AI가 말을 잘하는 비서였다면, 지금의 AI는 일 잘하는 파트너입니다. 이제 우리는 작업자의 마인드에서 벗어나야 합니다. 에이전트에게 명확한 목표를 주고, 결과물을 검토하고 승인하는 관리자의 역량이 중요해졌다고 생각됩니다.

10/23/2025

제로샷 학습 (Zero-Shot Learning)

본 글은 제로샷 학습(Zero-Shot Learning)의 개념을 이해하고, 실제 예제 코드를 통해 이를 구현하는 방법을 설명합니다. 제로샷 학습이 무엇이고, 왜 중요한지를 Hugging Face를 이용해 얼마나 쉽게 활용할 수 있는지 다루도록 하겠습니다.


제로샷 학습이란 무엇인가?

전통적인 머신러닝 모델을 훈련시키는 방식으로 "암기 과목" 공부와 비슷합니다. 예를 들어 모델에게 "고양이"와 "개" 사진 1000장을 보여주며 "이건 고양이야, 이건 강아지야"라고 정답(Label)을 알려줍니다. 학습이 끝난 모델은 "고양이"와 "강아지"는 잘 구분하지만, 한 번도 본 적 없는 "코끼리" 사진을 주면 혼란에 빠집니다.


제로샷 학습은 이와는 정반대입니다. 이름 그대로, 0(Zero)개의 예시(Shot)만 보고도 문제를 푸는 방식입니다. 예를 들어 모델에게 "고양이"나 "강아지"라는 정답(Label) 자체를 가르친 적이 없습니다. 대신, 모델은 "언어"와 "이미지" 사이의 "관계"와 "개념"을 미리 학습합니다.


마치 우리가 "얼룩말"을 한 번도 본적이 없어도, "말이랑 비슷한데 몸에 검은 줄무늬가 있어"라는 설명만 듣고도 얼룩말을 알아볼 수 있는 것과 같습니다.


위에서 언급한 개념을 더 쉽게 이해하기 위해 "도서관 사서"로 비유해보겠습니다.


전통적인 사서 (훈련 필요)

  • 이 사서는 "역사", "과학" 코너만 압니다.

  • 새롭게 "경제" 책이 들어오면, 이 사서는 이 책을 어디에 둬야 할지 모릅니다. "경제" 코너를 새로 만들고, 어떤 책이 경제 책인지 수백 권의 예시를 보여주며 "다시 훈련(Fine-tuning)" 해야 합니다.


제로샷 사서 (훈련 불필요)

  • 이 사서는 "역사", "과학" 코너를 암기한 것이 아니라, "책의 내용"과 "코너 이름(Label)"의  의미를 모두 이해하고 있습니다.

  • 새로운 "경제" 책이 들어오면, 사서는 이 책을 읽어봅니다.

  • 그리고 우리가 제시한 새로운 코너 이름(Lable)인 "경제"의 의미도 생각해봅니다.

  • 사서는 이 책의 내용은 "경제"라는 단어의 의미와 매우 가깝다고 추론하고 책을 분류합니다.


이제 제로샷 학습에 대해서 이해가 되셨나요?


왜 이 학습법이 혁신적일까?

전통적인 AI 모델 구축의 가장 큰 병목은 "데이터 라벨링" 입니다. 수만, 수십만 개의 데이터에 일일이 정답을 매핑하는 작업은 시간과 비용이 엄청나게 듭니다.


제로샷은 이 문제를 해결합니다.

  • 비용 절감: 데이터 라벨링 비용이 절감됩니다.

  • 유연성: "정치", "사회"로 분류하던 모델을 "IT", "예술"로 분류하고 싶을 때, 모델을 재훈련할 필요 없이 Label 이름만 바꿔주면 됩니다.

  • 신속성: 아이디어가 떠오른 즉시 프로토타입을 만들 수 있습니다.


제로샷 구현 예시

텍스트 분류

가장 기본적인 제로샷 텍스트 분류 예제를 살펴보겠습니다.

먼저 Hugging Face의 transformers 라이브러리를 설치합니다.


!pip install transformers


다음은 텍스트(sequence)와 후보 라벨(candidate_labels)만으로 분류를 수행하는 코드입니다.


from transformers import pipeline


classifier = pipeline("zero-shot-classification", model="MoritzLaurer/mDeBERTa-v3-base-mnli-xnli")

sequence_to_classify = "내일 중요한 축구 경기가 열린다고 한다."

candidate_labels = ["정치", "경제", "스포츠", "IT/기술"]

output = classifier(sequence_to_classify, candidate_labels, multi_label=False)

print(output)


위 코드를 실행하면 아래와 같은 결과가 나오게됩니다.


{'sequence': '내일 중요한 축구 경기가 열린다고 한다.', 

'labels': ['스포츠', 'IT/기술', '정치', '경제'], 

'scores': [0.9846686720848083, 0.008273092098534107,0.0036497144028544426, 0.003408558899536729]}


  • sequence: 원본 텍스트

  • labels: 점수가 높은 순서대로 정렬된 라벨 리스트

  • scores: 각 라벨 대한 신뢰도 점수(0~1)


"축구 경기"라는 텍스트가 "스포츠" 라벨과 가장 관련성(0.98)이 높다고 나옵니다. 위 모델은 정확하게 추론해냈습니다.


만약, 하나의 텍스트가 여러 개의 라벨에 속할 수 있다면, multi_label=True 옵션을 사용합니다.


from transformers import pipeline


classifier = pipeline("zero-shot-classification", model="MoritzLaurer/mDeBERTa-v3-base-mnli-xnli")

sequence_to_classify = "이 레스토랑은 음악은 훌륭하지만, 음식 맛은 평범했다."

candidate_labels = ["음식", "서비스", "음악", "가격"]

output = classifier(sequence_to_classify, candidate_labels, multi_label=True)

print(output)


위 코드를 실행하면 아래의 결과가 나오게됩니다.


{'sequence': '이 레스토랑은 음악은 훌륭하지만, 음식 맛은 평범했다.', 'labels': ['음악', '음식', '서비스', '가격'], 'scores': [0.9990034103393555, 0.9980430006980896, 0.9746165871620178, 0.48950350284576416]}


multi_label=True로 설정하면, 점수(scores)의 총합이 1이 되지 않습니다. 따라서 각 라벨이 독립적으로 "참일 확률"을 계산할 수 있습니다. 위 결과는 "음악"과 "음식" 모두에 관한 내용임을 추론한 것입니다.


이미지 분류

제로샷 개념은 텍스트에만 국한되지 않습니다. "개념"을 이해하는 모델이라면 이미지 분류나 객체 탐지에도 적용할 수 있습니다.

텍스트 분류가 NLI 모델을 기반으로 한다면, 이미지 분류는 CLIP(Contrastive Language Image Pre-training) 모델을 기반으로 합니다.


CLIP 모델은

  • 인터넷에서 수집한(이미지, 이미지 설명 텍스트) 쌍 정보를 엄청나게 많이 학습한 모델입니다.

  • CLIP은 "고양이 사진"과 "고양이라는 텍스트"가 서로 "가까운" 개념임을 압니다.


from transformers import pipeline

from PIL import Image

import requests # URL에서 이미지를 불러오기 위해


# 1. 제로샷 '이미지' 분류 파이프라인 로드

#    CLIP 모델을 명시적으로 지정해줍니다.

image_classifier = pipeline(

    "zero-shot-image-classification", 

    model="openai/clip-vit-large-patch14"

)


# 2. 분류할 이미지 준비 (인터넷에서 고양이 사진 불러오기)

url = "https://images.unsplash.com/photo-1514888286974-6c03e2ca1dba"

image = Image.open(requests.get(url, stream=True).raw)


# 3. 후보 레이블 (텍스트로)

#    모델은 이 텍스트와 이미지의 '유사도'를 계산합니다.

labels = ["a photo of a cat", "a photo of a dog", "a photo of a car"]


# 4. 분류 실행

result = image_classifier(image, candidate_labels=labels)

pprint.pprint(result)


위 코드를 실행하면 아래의 결과가 나옵니다.

[{'score': 0.9979252815246582, 'label': 'a photo of a cat'}, {'score': 0.0012550547253340483, 'label': 'a photo of a dog'}, {'score': 0.0008196595590561628, 'label': 'a photo of a car'}]


모델은 이미지를 보고, 우리가 제시한 라벨 중 "a photo of a cat"이라는 설명과 이미지의 개념이 99.7% 일치한다고 판단했습니다.


객체 분류

이미지 전체를 분류하는 것을 넘어, 이미지 안의 특정 객체들을 텍스트로 찾아내는 것도 가능합니다.

from transformers import pipeline

from PIL import Image

import requests # URL에서 이미지를 불러오기 위해


# 1. 제로샷 '객체 탐지' 파이프라인 로드

object_detector = pipeline(

"zero-shot-object-detection",

model="google/owlvit-large-patch14"

)


# 2. (위와 동일한 고양이 이미지 사용)

url = "https://images.unsplash.com/photo-1514888286974-6c03e2ca1dba"

image = Image.open(requests.get(url, stream=True).raw)


# 3. 찾아내고 싶은 객체들의 이름 (텍스트)

labels_to_find = ["cat nose", "cat eyes", "remote control"]


# 4. 탐지 실행

result = object_detector(image, candidate_labels=labels_to_find)

print(result)


위 코드를 실행하면 아래의 결과나 나옵니다.

[{'score': 0.5476904511451721, 'label': 'cat nose', 'box': {'xmin': 2350, 'ymin': 1570, 'xmax': 2640, 'ymax': 1818}}, 

{'score': 0.3316132128238678, 'label': 'cat eyes', 'box': {'xmin': 2021, 'ymin': 1199, 'xmax': 2931, 'ymax': 1442}}, {'score': 0.31051504611968994, 'label': 'cat eyes', 'box': {'xmin': 2027, 'ymin': 1200, 'xmax': 2940, 'ymax': 1449}}, 

{'score': 0.29117435216903687, 'label': 'cat eyes', 'box': {'xmin': 2680, 'ymin': 1215, 'xmax': 2952, 'ymax': 1438}}, {'score': 0.24599002301692963, 'label': 'cat eyes', 'box': {'xmin': 2046, 'ymin': 1199, 'xmax': 2328, 'ymax': 1417}}, 

{'score': 0.17471081018447876, 'label': 'cat nose', 'box': {'xmin': 2336, 'ymin': 1601, 'xmax': 2644, 'ymax': 1821}}, {'score': 0.14712969958782196, 'label': 'cat eyes', 'box': {'xmin': 2679, 'ymin': 1215, 'xmax': 2953, 'ymax': 1450}}, 

{'score': 0.14246635138988495, 'label': 'cat eyes', 'box': {'xmin': 2018, 'ymin': 1200, 'xmax': 2332, 'ymax': 1435}}, {'score': 0.14067652821540833, 'label': 'cat eyes', 'box': {'xmin': 1985, 'ymin': 1186, 'xmax': 2983, 'ymax': 1478}}, 

{'score': 0.13866569101810455, 'label': 'cat eyes', 'box': {'xmin': 1765, 'ymin': 1098, 'xmax': 3168, 'ymax': 1572}}]

 

결론

이제까지 제로샷에 대해서 알아보았고, 장점과 한계에 대해서 다시 한번 살펴보겠습니다.


제로샷의 장점

  • 데이터가 필요 없음

  • 유연성: 비즈니스 요구사항이 변경되어 분류 카테고리를 늘려야 할 때, 재훈련없이 candidate_labels만 수정하면 됩니다.

  • 프로토타이핑: "이런 분류가 어떨까?" 라는 아이디어를 검증하기 위해 간단히 테스트할 수 있습니다.


제로샷의 한계

  • 정확도: 모든 것을 적당히 알지만, 한 분야의 "전문가" 보다는 못합니다. 만약 "고객 리뷰"에 대해 "긍정/부정"으로 분류하는 단 하나의 작업만 수행해야 한다면, 해당 작업에 특화된 데이터로 "파인 튜닝"한 모델이 제로샷 모델보다 좋습니다.

  • 모호성: NLI 기반 모델은 라벨의 "단어 의미"에 크게 의존합니다. "IT, 기술" 처럼 의미가 비슷한 라벨이 함께 있으면 모델이 혼동합니다. 따라서 복잡한 분류는 어려울 수 있습니다.

  • 속도 및 크기: 제로샷을 수행하는 NLI 모델이나 CLIP 모델은 크기가 매우 큽니다. 특화 모델보다 추론 속도가 느릴 수 있습니다.


제로샷 학습은 "모든 것을 대체하는" 만병 통치약은 아닙니다. 하지만 AI 개발의 패러다임을 바꾸는 강력한 도구이기에 아래의 상황에서 사용 하시기를 추천 드립니다.

  • 초기 탐색 및 프로토타이핑: 어떤 종류의 데이터가 유입되는지, 어떤 분류가 의미 있을지 빠르게 탐색할 때 활용

  • 데이터가 절대적으로 부족할 때: 라벨링된 데이터가 아예 없을 때 유일한 선택지

  • 동적인 분류가 필요할 때: 분류 카테고리가 매일같이 바뀌는 환경일 때 (e.g. 실시간 뉴스 토픽 분류)


여기서 사용된 코드는
https://github.com/monocleface/huggingface-tutorials/blob/main/natural-language-processing/sample_zeroshot_classification.ipynb 에서 보시면 됩니다.