윤누리
윤누리
Admin
🧙 AI 위자드
🎻 루키 파트너
🌈 지피터스금손
🚀 SNS 챌린지 달성자
☕ 커피챗 오픈

[사내AX] Linear 로컬 캐시 활용 - 토큰 안 쓰고 슬랙 메시지를 리니어 이슈로 만들기

📝 한줄 요약

지난 주에 - 슬랙 메시지에 이모지 하나만 달면 자동으로 리니어 이슈를 생성해주는 자동화를 했습니다.

관련 게시글

그런데 문제는 리니어 이슈 생성 시 연관 프로젝트를 자동으로 추천해주게 되어 있는데 정확도가 너무 낮았던겁니다. 그렇다고 정확도를 높이기 위해 매번 리니어 API를 호출하자니 시간도 오래 걸리도 토큰도 너무 많이 먹을 것 같아서 고민이었는데요...

김욱영 님이 만드신 MCP를 활용 - Linear Desktop App의 로컬 캐시를 활용하여 거의 100% 맞추게 됐습니다.


🎯 이런 분들께 도움돼요

  • AI 추천 정확도가 낮아서 고민이신 분

  • "AI한테 더 많은 맥락을 어떻게 줄까?" 고민이신 분

  • Linear + Slack 자동화 개선하고 싶으신 분


😫 문제 상황

Slack에서 :이슈: 이모지를 누르면 Linear 이슈가 자동 생성되는 봇을 운영 중입니다.

AI(Claude)가 대화 내용을 분석해서 적절한 프로젝트를 추천하는데, 문제는 체감 50% 확률로 틀린다는 것이었습니다.

"원티드 아웃바운드 메일 발송 건" → ❌ 일반 프로젝트로 분류
"Linear MCP 연동 이슈" → ❌ 엉뚱한 프로젝트로 분류
"오픈채팅방 자동화" → ❌ 매칭 실패

매번 Linear 들어가서 프로젝트를 수동으로 바꿔줘야 했습니다. 자동화의 의미가 없어지는 느낌이었어요.


🔍 원인 분석

기존에 AI한테 전달하던 정보:

  • 프로젝트 이름

  • 프로젝트 설명 (있으면)

  • 팀 이름

문제: 프로젝트 이름만으로는 맥락을 알 수 없습니다.

예를 들어 "채용 프로젝트"라는 이름만 보고는 "원티드 아웃바운드"가 여기에 속하는지 AI가 알 길이 없어요.

프로젝트의 description도


💡 아이디어: 로컬 캐시에서 "최근 이슈 제목" 뽑기

저희 회사 욱영님이 만든 linear-mcp-fast를 보다가 아이디어를 얻었습니다.

Linear Desktop App은 성능을 위해 로컬에 IndexedDB 캐시를 유지합니다. 여기에 프로젝트, 이슈, 사용자 정보가 다 들어있어요.

핵심 아이디어: 프로젝트별 최근 이슈 제목 10개를 뽑아서 AI한테 같이 전달하면 어떨까?

[기존]
"채용 프로젝트 (Team: Product)"

[변경 후]
"채용 프로젝트 (Team: Product)
  최근 이슈: 원티드 아웃바운드 메일 템플릿, 링크드인 DM 자동화, 채용 공고 업데이트"

이러면 AI가 "원티드 아웃바운드"라는 단어를 보고 채용 프로젝트로 정확히 매칭할 수 있습니다.


🛠️ 구현

1. Python 스크립트로 IndexedDB 읽기

Linear Desktop App의 IndexedDB 경로:

~/Library/Application Support/Linear/Local Storage/leveldb/

여기서 프로젝트 + 이슈 데이터를 추출하는 Python 스크립트를 작성했습니다.

# 프로젝트별 최근 10개 이슈 제목 추출
for project in projects:
    recent_issues = [i for i in issues if i.get('projectId') == project['id']]
    recent_issues.sort(key=lambda x: x.get('updatedAt', ''), reverse=True)
    project['recentIssueTitles'] = [i['title'] for i in recent_issues[:10]]

2. Cloudflare KV에 동기화

wrangler kv:key put --binding=PROJECT_CACHE "projects" "$(cat projects.json)" --remote

3. macOS launchd로 5분마다 자동 동기화

제 Mac에서 5분마다 스크립트가 돌면서 KV에 업로드합니다. 팀원들이 Slack에서 이모지를 누르면 이 데이터를 사용하게 됩니다.

(팀원들이 Linear Desktop App을 쓰는지 여부는 상관없어요. 제 로컬 캐시를 공유하는 형태입니다.)


✅ 결과

정량적 개선

  • 391개 추가 매칭 가능 키워드 (이슈 제목에만 있는 단어들)

  • 프로젝트 이름/설명에 없던 용어들이 전부 매칭 가능해졌습니다


🎁 보너스: 토큰 절약

원래 Linear API를 매번 호출해서 프로젝트 목록을 가져왔는데, 이제 KV 캐시를 쓰니까 API 호출이 줄었습니다.

linear-mcp-fast의 핵심 가치도 이거예요. Linear API 호출 없이 로컬 캐시만으로 데이터를 읽어서 토큰 사용량을 획기적으로 줄일 수 있습니다.

3
6개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만