실전 가이드 · 3분 · 05.17

컴파일된 JS를 Claude Code에 던졌더니 24시간 만에 CLI가 — Tarka AI가 LinkedIn DM을 떼어낸 4단계

loopy vibecoder

핵심 요약 (TL;DR)

Tarka AI가 LinkedIn의 컴파일된 자바스크립트 바이너리를 통째로 Claude Code에 입력해, 저자 본인 진술 기준 약 24시간 만에 LinkedIn DM 통합 CLI 'Allman'을 MIT 오픈소스로 풀었습니다(allman.sh). 폐쇄 SaaS의 잠긴 데이터를 꺼내는 비용이 빠르게 0에 수렴하는 중이고, 그 패턴은 4단계로 정리됩니다.

닫힌 SaaS에서 내 데이터를 꺼내고 싶은 사람에게

LinkedIn 메시지를 에이전트가 자동으로 읽고 보냈으면 좋겠다는 생각, 한 번쯤 해보셨을 거예요. 공식 API는 오래전에 막혔고, 비공식 자동화 도구는 차단되기 일쑤죠. 데이터는 분명 내 계정에 있는데, 내가 원하는 방식으로 꺼낼 수가 없는 거예요.

Tarka AI 팀(HN 닉네임 toobulkeh)이 이 막힘을 푸는 방식은 좀 무모해 보입니다. LinkedIn 웹 앱의 컴파일된 자바스크립트 바이너리를 통째로 Claude Code에 던졌다는 거죠. 결과물은 5월 16일 Show HN에 올라온 allman.sh — sendmail을 만든 Eric Allman의 이름을 그대로 가져온 메신저 통합 CLI입니다.

Allman은 정확히 무엇을 합니까

Allman은 두 개의 MIT 오픈소스 리포(CLI 본체 + 예시 TUI)로 구성된 로컬 우선 도구입니다. 1차 채널은 LinkedIn — 대화 동기, 실시간 수신, 전송, 리액션, 검색이 다 들어갑니다. 데모 화면 기준 47개 대화·312개 메시지를 8.2초에 가져왔습니다.

설계 결정 5가지가 흥미롭습니다.

  • 클라우드 없음, 텔레메트리 없음
  • 메시지는 JSONL로 로컬 git 리포에 저장 — 버전 관리되는 메신저 로그가 되는 거죠
  • 기본 출력 JSON, 스트림은 NDJSON — 에이전트가 직접 파이프
  • Vim 스타일 키바인딩 TUI
  • SDK 없이 셸 호출만으로 에이전트가 읽고 쓰게 설계

로드맵은 iMessage → Slack → Discord → Email → SMS 순서로 5개 채널을 추가하는 것. 같은 패턴을 5번 반복하면, 사실상 메신저 사일로 한 층을 통합하는 layer가 됩니다.

닫힌 SaaS를 OSS CLI로 떼어내는 4단계

저자 본인의 인용으로 "Reverse Engineering is trivial now". Allman 케이스를 일반화하면 이렇게 정리됩니다.

  1. 컴파일된 JS 추출 — 브라우저 DevTools 또는 빌드 산출물에서 웹 앱의 번들 자바스크립트를 통째로 뽑습니다.
  2. LLM에 던져 프로토콜 리버스 — Claude Code 같은 도구에 입력해 내부 엔드포인트·인증 방식·메시지 스키마를 복원합니다.
  3. JSONL 로컬 저장 — 외부 의존성 없이 git으로 버전 관리되는 로컬 스토어에 데이터를 끌어옵니다.
  4. 에이전트 파이프 노출 — JSON 출력 + 셸 호출 인터페이스로 다른 에이전트가 그대로 끼워 쓰게 만듭니다.

이 4단계의 핵심은 2번에서 사람이 며칠~몇 주 들이던 리버스 작업이 LLM 한 세션으로 줄어든다는 점입니다. 폐쇄 SaaS의 진입 장벽이 "코드를 읽을 수 있는가"에서 "프롬프트를 잘 묶을 수 있는가"로 옮겨갔다는 거죠.

그런데 LinkedIn 약관은 어떻게 됩니까

여기서 멈춰 가야 합니다. LinkedIn은 약관에서 자동화된 스크래핑·비공식 API 접근을 명확히 금지하고 있고, 과거 hiQ Labs 소송에서도 LinkedIn의 차단 권한이 일부 인정됐죠. 개인 계정의 자동화는 차단·정지·법적 분쟁의 리스크가 동시에 걸립니다.

또한 메시지 본문을 로컬 JSONL로 저장한다는 점은 — 본인이 자기 메시지만 본다고 해도 — 상대방의 개인정보가 함께 저장된다는 의미입니다. GDPR·국내 개인정보보호법 관점에서 "내 디바이스에만 둔다"가 면죄부가 되지는 않아요.

그래서 Allman 같은 도구의 진짜 가치는 "내가 LinkedIn DM 자동화를 돌려도 되는가"가 아니라, "내가 운영하는 폐쇄 SaaS 데이터를 같은 방식으로 떼어낼 수 있는가"에 있습니다. 본인이 운영자인 시스템, 또는 명시적 권한이 있는 데이터에 같은 4단계를 적용하는 거죠.

FAQ

Q. Allman을 지금 깔아도 됩니까?
A. 기술적으로는 가능하지만, LinkedIn 본 계정에 붙이면 차단 리스크가 큽니다. 테스트 계정으로 동작을 보고, 본인 책임 하에 사용한다는 점을 분명히 해두세요.

Q. 24시간 만에 만들었다는 게 사실입니까?
A. 저자가 Show HN 본문에서 한 진술이고, 전체 walltime인지 active 작업 시간인지는 명시되지 않았습니다. 4단계 패턴 자체가 검증 포인트지, '24시간'이라는 숫자가 핵심은 아니에요.

Q. 같은 패턴을 다른 SaaS에 어떻게 적용합니까?
A. (1) 본인이 권한을 가진 데이터에만 시도하고, (2) 약관 위반 여부를 먼저 확인하고, (3) JSONL 로컬 저장 같은 단순한 데이터 모델로 시작하세요. 채널이 5개를 넘기 시작하면 라우터 레이어가 따로 필요해집니다.

LinkedIn DM이 풀리는 것보다 흥미로운 건, "폐쇄 시스템의 리버스 비용이 1인 개발자의 1세션 안으로 들어왔다"는 사실입니다. 다음에 막힌 SaaS를 만났을 때, 한 번쯤 LLM에 번들을 통째로 던져볼 만한 이유가 생긴 거죠.

0

댓글 0

아직 댓글이 없습니다