📝 한줄 요약
4일 만에 만든 Linear 자동화 macOS 앱에 멀티 이미지, 자동 업데이트, 라벨, 커스텀 단축키 등 6가지 기능을 하루 만에 추가했습니다.
📌 이전 이야기 (3줄 요약)
스크린샷 찍으면 AI가 분석해서 Linear 이슈를 자동 생성하는 macOS 앱
핵심 기능: 단축키(⌘+Shift+L) → 캡처 → AI가 제목/설명/프로젝트/담당자 추천 → 클릭 한 번으로 이슈 생성
결과: 이슈 등록 3-5분 → 30초로 단축, 하루 20-40분 절약
👉 이전 글 보기: Claude Code로 Linear 자동화 macOS 앱 완성
😫 추가 개선을 시작한 이유
앱을 팀에 배포하고 며칠 써보니 몇 가지 불편함이 보였습니다.
불편했던 점들:
버그 리포트할 때 스크린샷 여러 장이 필요한데, 한 장씩만 첨부 가능
내가 업데이트 해서 새로운 버전 나오면 매번 수동으로 다운로드해야 함
이슈에 라벨을 붙이려면 결국 Linear 웹에서 수정해야 함
단축키가 다른 앱이랑 겹치는데 바꿀 수가 없음 (기존에는 하나의 단축키로 고정 : ⌘+Shift+L)
"이 정도면 Claude Code한테 한 번에 부탁하면 금방 되지 않을까?"
🛠️ 사용한 도구
IDE: Claude Code (CLI) / 쓰다가 중간에 Opencode로 갈아탐
모델: Claude Opus 4.5
기존 스택: Electron, TypeScript, Cloudflare R2/Workers, Linear API
🔧 작업 과정
멀티 이미지 캡처 - "버그 리포트는 스크린샷이 여러 장이야"
복잡한 버그를 설명하려면 화면 여러 개를 보여줘야 하는데, 한 장씩만 올릴 수 있으니 불편했습니다.
한 번에 여러 장 캡처해서 이슈에 첨부할 수 있으면 좋겠어
맥 os x os x os x os x os x os
Claude가 갤러리 형태의 UI를 만들어줬습니다. 최대 10장까지 캡처하고 (단축키 동일한거 계속 쓰면 됨)
썸네일을 클릭하면 크게 볼 수 있고, 필요 없는 건 삭제도 됩니다. 이슈 생성하면 모든 이미지가 마크다운으로 자동 첨부됩니다.
한국어가 화면에 강조 표시됩니다
이렇게 캡처한 이미지가 크게 보입니다.
자동 업데이트 - "새 버전 나왔는지 어떻게 알아?"
제가 업데이트를 워낙 많이 하다보니... 팀원들이 매번 새 버전을 업데이트하기가 번거로울 것 같았어요.
매번 "새 버전 나왔어요" 공지하기도 번거롭고요.
새 버전 나오면 자동으로 알려주고 업데이트할 수 있게 해줘
GitHub Releases 기반 자동 업데이트를 추가했습니다. Settings 화면에서 현재 버전 확인하고 "업데이트 확인" 버튼 누르면 새 버전이 있는지 체크합니다.
아직 가야할 길... 🥲
한 가지 제약이 있었는데, Apple 개발자 인증서 없이 Ad-hoc 서명이라 완전 자동 설치는 안 됩니다. 대신 다운로드 완료되면 안내 팝업이 뜨고, 수동으로 설치하면 됩니다. 권한 재설정이 필요할 수 있다는 안내도 추가했습니다.
(이건 조만간 개선 예정)
API 키 보안 - "앱에 키가 하드코딩되어 있네?"
앱 코드를 보니 Gemini, Anthropic API 키가 그대로 들어있었습니다. 배포용 앱에 이건 좀 위험하죠.
앱에 API 키가 하드코딩되어 있는데, 보안상 Worker로 옮기자
Cloudflare Worker를 만들어서 AI 분석과 R2 업로드를 모두 서버 쪽에서 처리하도록 바꿨습니다. 앱에는 Worker URL만 남기고, 모든 API 키 는 Worker Secrets로 안전하게 관리합니다.
이 작업은 생각보다 범위가 클거라고 클로드코드가 저에게 겁을 줬는데 기존에도 cloudflare worker를 쓰고 있어서 사실 10분 컷으로 해결되었습니다.
이슈 생성은 눌렀는데 제대로 생성되었나?
기존에는 이슈 생성하기 버튼을 누르면 바로 앱 화면이 꺼졌는데요, 생성된 이슈 번호와 함께 잘 생성되었는지 직관적으로 확인할 수 있도록 기능을 추가했어요.
첫 사용자 경험 개선 - "앱 켜면 뭘 해야 하는지 모르겠어"
앱 처음 설치한 팀원이 "켜봤는데 아무것도 안 보이는데?"라고 물었습니다. 기존에는 트레이 아이콘만 표시되고 창이 안 열렸거든요.
앱 실행하면 바로 메인 창 보여주고, 캡처 가이드도 알려줘
이제 앱 시작하면 메인 창이 바로 뜨고, "⌘+Shift+L로 캡처 (최대 10장)" 가이드가 보입니다. 이미지 없을 때는 "캡처하기" 버튼도 표시되어서 처음 쓰는 사람도 바로 이해할 수 있습니다.
한국사이트 스크린샷
라벨 지원 - "긴급 이슈인데 라벨을 못 붙이네"
기존에는 리니어 이슈 - 라벨 붙이기 기능을 구현하지 않았었는데요, 아직 팀에서 적극 적으로 라벨 기능을 쓰고 있진 않지만 후속으로는 라벨도 많이 쓰게 될 것 같았어요.
예) 질문 라벨, 버그 라벨 등등
이슈에 라벨도 붙일 수 있게 해줘
라벨 멀티 선택 UI를 추가했습니다. 칩 형태로 선택한 라벨이 표시되고, 팀별 라벨과 워크스페이스 라벨 모두 검색해서 선택할 수 있습니다.
커스텀 단축키 - "다른 앱이랑 겹쳐요"
기본 단축키 ⌘+Shift+L이 다른 앱과 충돌하는 경우가 있었습니다.
단축키도 바꿀 수 있으면 좋겠어
Settings에 Capture Hotkey 섹션을 추가했습니다. 입력창 클릭하고 원하는 키 조합을 누르면 녹화되어 저장됩니다. Reset 버튼으로 기본값 복원도 가능합니다.
마무리하다 보니 한 가지 더 눈에 띄었습니다.
단축키가 변경되면 메인 UI의 가이드 텍스트도 바뀌어야 할 것 같아
Settings에서 단축키 바꾸면 메인 화면의 "⌘+Shift+L로 캡처" 텍스트도 실시간으로 업데이트됩니다.
✅ 결과 (After)
v1.1.1 → v1.2.4 변경사항
기능
Before (v1.1.1)
After (v1.2.4)
이미지 첨부
1장만 가능
최대 10장
업데이트
수동 다운로드
자동 확인 + 안내
API 키
앱에 하드코딩
Worker에서 안전 관리
첫 실행
트레이만 표시
메인 창 + 가이드
라벨
지원 안 함
멀티 선택 가능
단축키
고정 (⌘+Shift+L)
사용자 설정 가능
작업 시간
총 소요 시간: 약 4시간
커밋 수: 12개
버전 업: v1.1.1 → v1.2.4 (3번 릴리스)
🚀 앞으로의 계획
Windows 버전: 현재 macOS만 지원하는데, Windows도 요청이 있어서 검토 중
팀 공유 기능: 자주 쓰는 프로젝트/라벨 조합을 템플릿으로 저장
Slack 연동: 캡처한 이슈를 Slack 채널에 자동 공유 등?