본문 바로가기

클로드코워크, 노트북 꺼도 일한다

반응형

Claude Cowork expands to mobile and web
Claude Cowork expands to mobile and web

 

⚡ 한 줄 요약: 클로드코워크(Claude Cowork)가 이제 모바일 앱과 웹으로 확장됐다. 데스크톱에서 시작한 작업이 노트북을 닫아도 클라우드에서 계속 돌고, 폰으로 진행 상황만 확인해 완성된 결과를 나중에 받는 '비동기 에이전트' 구조다. 코딩 전용에서 사무 전반으로 넘어가는 신호다.

 

 

📑 목차

 

 

무슨 일인가

Anthropic이 클로드코워크를 모바일·웹으로 넓혔다.
핵심 변화는 실행 장소다.
그동안 이런 에이전트는 내 기기, 내 터미널에서 돌았다.
이번엔 데스크에서 작업을 시켜 놓고, 이동 중 폰으로 상태를 보고받고, 랩톱을 닫아도 클라우드에서 작업이 이어진다.
결과는 나중에 앱이나 웹에서 회수한다.

TechCrunch는 이 흐름을 "코딩 에이전트 전쟁이 사무실 나머지 영역으로 번지고 있다"고 요약했다.
Bitcoin World도 같은 지점을 짚었다 — 코딩을 넘어선(beyond coding) 확장.
즉 이번 업데이트의 진짜 메시지는 '앱이 늘었다'가 아니라 에이전트가 로컬 프로세스에서 상시 가동 백엔드 잡(job)으로 바뀌었다는 것이다.

 

 

배경 — '동기 도구'에서 '비동기 잡'으로

개발자에게 익숙한 클로드 코드(Claude Code)는 기본적으로 동기(synchronous)다.
내가 터미널 앞에 붙어 있어야 하고, 세션이 끊기면 맥락도 끊긴다.
반면 클로드코워크의 이번 형태는 우리가 CI 파이프라인이나 백그라운드 워커를 다루는 방식에 가깝다.

  • 작업을 제출(submit) 한다 → 잡 ID를 받는다
  • 실행은 원격에서 진행된다(내 기기 상태와 무관)
  • 상태를 폴링(poll) 하거나 알림(푸시)으로 통보받는다
  • 완료되면 아티팩트(결과물) 를 회수한다

이건 새로운 개념이 아니다.
GitHub Actions, 배치 잡, 메시지 큐가 15년째 해 온 패턴이다.
달라진 건 그 잡의 실행 단위가 '스크립트'가 아니라 '판단하는 에이전트'라는 점이다.
그래서 관측(observability)·비용·권한 문제가 CI 때보다 훨씬 까다로워진다.

 

 

개발자에게 주는 의미

무대가 바뀌면 개발자가 짜야 할 것도 바뀐다.
동기 CLI 도구는 "성공/실패"만 로깅하면 됐다.
하지만 노트북을 닫아도 도는 비동기 에이전트는, 사람이 안 보는 동안 무슨 판단을 했는지가 감사 대상이 된다.

정리하면 개발자의 일은 프롬프트 튜닝이 아니라 아래 3개 인프라로 이동한다.

 

관심사 동기 도구 시절 비동기 에이전트 시절
상태 관리 세션 하나면 끝 잡 큐·상태 저장소 필요
관측 콘솔 로그 스텝별 이벤트 로깅·재현
권한 내 로컬 권한 서비스 계정 범위 최소화

 

개발자는 이 흐름의 주인공(A/R)이 아니다. 에이전트가 안전하게 '자리를 비운 채' 돌 수 있게 받쳐 주는 플랫폼 지원 역할이다.

 

 

실무 적용 — 비동기 에이전트 잡 최소 뼈대

클로드코워크 자체는 소비자 제품이지 공개 API가 아니다(연동 방식은 공식 문서 확인 권장).
하지만 '시켜 놓고 자리를 비우는' 패턴은 우리가 직접 만들 수 있다.
핵심은 실행보다 상태·예외 계측이다.
아래는 백그라운드 워커가 잡 하나를 처리하며 상태를 남기는 최소 형태다.

import anthropic

client = anthropic.Anthropic()  # ANTHROPIC_API_KEY 환경변수 사용

def run_job(job_id: str, prompt: str, store) -> None:
    """비동기 워커가 호출. 실행보다 '상태 기록'이 본체다."""
    store.set(job_id, status="running")
    try:
        resp = client.messages.create(
            model="claude-sonnet-4-6",  # 발행 시점 최신 확인 권장
            max_tokens=2048,
            messages=[{"role": "user", "content": prompt}],
        )
        store.set(
            job_id,
            status="done",
            output=resp.content[0].text,
            usage=resp.usage.model_dump(),  # 토큰 사용량 = 비용 계측
        )
    except anthropic.RateLimitError:
        store.set(job_id, status="retry")      # 재시도 큐로
    except anthropic.APIStatusError as e:
        store.set(job_id, status="error", code=e.status_code)
    except anthropic.APIConnectionError:
        store.set(job_id, status="error", code="conn")

store가 이 코드의 진짜 주인공이다.
클라이언트(폰·웹)는 이 상태만 폴링하면 랩톱이 꺼져 있어도 진행 상황을 본다.
usage를 함께 저장하는 이유는, 사람이 안 보는 사이 도는 잡일수록 토큰 비용이 조용히 새기 때문이다.
예외는 통신 오류만 좁게 잡지 말고 위처럼 SDK 예외(RateLimitError·APIStatusError·APIConnectionError)로 분기해야 재시도·과금 실패를 구분할 수 있다.

 

 

체크포인트

  • 상태 저장소부터 설계하라 — 비동기 에이전트의 신뢰도는 모델이 아니라 잡 상태·재현 로그에서 나온다.
  • usage(토큰)를 잡 단위로 남겨라 — '자리 비운 채 도는' 워크플로는 비용 관측이 없으면 통제 불능이 된다.
  • 권한은 서비스 계정으로 최소화 — 내 로컬 권한이 아니라, 그 잡이 딱 필요한 스코프만.

 

 

참고

🔗 함께 보면 좋은 글

 

 

📊 오늘의 개발 트렌드 (자동 집계)

GitHub·Hacker News·Hugging Face·App Store·Cloudflare Radar에서 매일 자동으로 모은 개발 트렌드입니다. (2026-07-08 06:11 기준)

🐙 GitHub 급상승

📰 Hacker News 화제

🤗 Hugging Face 트렌딩 모델

💰 App Store 매출 TOP (한국)

  • Pokémon GO — Niantic, Inc.
  • YouTube — Google
  • ChatGPT — OpenAI OpCo, LLC

🌐 가장 많이 방문되는 웹 (Cloudflare Radar)

반응형