Raycast로 Confluence 또는 Jira 검색
Source: Dev.to
Raycast로 Confluence 또는 Jira 검색하기
Raycast는 macOS용 생산성 툴킷으로, 커맨드 라인처럼 빠르게 작업을 실행할 수 있게 해줍니다. 이번 포스트에서는 Raycast를 이용해 Atlassian의 Confluence와 Jira를 손쉽게 검색하는 방법을 소개합니다.
왜 Raycast인가?
- 키보드 중심: 마우스를 거의 사용하지 않고도 원하는 정보를 찾을 수 있습니다.
- 커스텀 스크립트: JavaScript/TypeScript 로 작성한 커스텀 명령어를 바로 실행할 수 있습니다.
- 통합 UI: 여러 서비스(예: GitHub, Notion, Slack 등)를 하나의 창에서 관리합니다.
사전 준비
-
Raycast 설치
https://raycast.com/ 에서 최신 버전을 다운로드하고 설치합니다. -
Atlassian API 토큰 생성
- Atlassian 계정에 로그인합니다.
- Profile → Security → API token 페이지로 이동합니다.
- Create API token 버튼을 눌러 토큰을 발급받고, 복사해 둡니다.
-
환경 변수 설정
Raycast의 Extensions → Script Commands → Settings 에서 아래 변수를 추가합니다.변수 이름 설명 CONFLUENCE_BASE_URLConfluence 인스턴스 URL (예: https://yourcompany.atlassian.net/wiki)JIRA_BASE_URLJira 인스턴스 URL (예: https://yourcompany.atlassian.net)ATLASSIAN_API_TOKEN앞서 만든 API 토큰
스크립트 설치
아래 두 파일을 Raycast Script Commands 폴더에 저장합니다. 파일 확장자는 .js (또는 .ts) 로 지정합니다.
1️⃣ search-confluence.js
#!/usr/bin/env node
// @raycast.title Search Confluence
// @raycast.mode inline
// @raycast.icon https://atlassian.com/favicon.ico
// @raycast.argument1 {text} query Search query
const fetch = require('node-fetch');
const query = process.argv[2];
const baseUrl = process.env.CONFLUENCE_BASE_URL;
const token = process.env.ATLASSIAN_API_TOKEN;
(async () => {
const url = `${baseUrl}/rest/api/content/search?cql=type=page%20and%20text~"${encodeURIComponent(query)}"&limit=10`;
const res = await fetch(url, {
headers: { Authorization: `Basic ${Buffer.from(`email@example.com:${token}`).toString('base64')}` },
});
const data = await res.json();
data.results.forEach(page => {
console.log(`${page.title}\n${baseUrl}${page._links.webui}\n`);
});
})();
2️⃣ search-jira.js
#!/usr/bin/env node
// @raycast.title Search Jira
// @raycast.mode inline
// @raycast.icon https://atlassian.com/favicon.ico
// @raycast.argument1 {text} query Search query
const fetch = require('node-fetch');
const query = process.argv[2];
const baseUrl = process.env.JIRA_BASE_URL;
const token = process.env.ATLASSIAN_API_TOKEN;
(async () => {
const jql = `text ~ "${query}" ORDER BY created DESC`;
const url = `${baseUrl}/rest/api/3/search?jql=${encodeURIComponent(jql)}&maxResults=10`;
const res = await fetch(url, {
headers: { Authorization: `Basic ${Buffer.from(`email@example.com:${token}`).toString('base64')}` },
});
const data = await res.json();
data.issues.forEach(issue => {
console.log(`${issue.key}: ${issue.fields.summary}\n${baseUrl}/browse/${issue.key}\n`);
});
})();
Tip:
email@example.com은 Atlassian 계정에 연결된 이메일 주소로 교체하세요.
사용 방법
- Raycast 열기 (
⌘ Space기본 단축키). Search Confluence혹은Search Jira라고 입력하고 Enter.- 검색어를 입력하고 다시 Enter 하면, 결과가 인라인으로 표시됩니다.
- 결과 라인을 클릭하면 해당 페이지/이슈가 기본 브라우저에서 열립니다.
커스터마이징 아이디어
- 필터 추가: 프로젝트 키, 스페이스, 라벨 등으로 결과를 제한하는 옵션을 구현.
- 프리뷰: Markdown 혹은 HTML 미리보기를 제공해 페이지 내용을 바로 확인.
- 다중 선택: 여러 결과를 한 번에 열거나 복사하도록 확장.
마무리
Raycast와 Atlassian API를 결합하면, 개발자와 프로젝트 매니저 모두가 키보드 한 번으로 필요한 정보를 빠르게 찾아볼 수 있습니다. 위 스크립트를 기반으로 자신만의 워크플로우를 만들고, 팀 전체에 공유해 보세요!
Happy hacking!
서문
Alfred를 사용해 보았지만 아직 Raycast를 시도해 보지 않았다면, 한 번 시도해 볼 가치가 있습니다. 무료 플랜은 일상적인 사용에 충분합니다 (see Raycast vs Alfred).
무료 사용자들은 Raycast의 내장 데이터 동기화를 사용할 수 없지만, Raycast의 Export/Import Settings & Data와 iCloud Drive를 통해 여전히 동기화할 수 있습니다.
배경
우리 회사에서는 Atlassian의 Confluence와 Jira를 지식 베이스와 프로젝트 관리에 사용하고 있습니다.
위키와 Jira 페이지를 자주 열어 정보를 찾습니다. 특정 문서나 이슈를 찾기 위해서는 보통 다음과 같은 여러 단계를 거쳐야 합니다:
- 웹사이트 열기
- 검색 상자에 포커스 맞추기
- 쿼리 입력하기
- 결과 필터링하기
조금 더 빠른 방법은 자주 사용하는 링크를 북마크하거나 Raycast Quicklinks와 Aliases를 만들어 두는 것입니다.
Quicklinks는 특정 상황에서 매우 유용합니다—예를 들어 다음과 같이 문서를 검색할 때
https://developer.mozilla.org/en-US/search?q={Query}
여기서 {Query}는 동적 파라미터(즉, 검색하고자 하는 내용)입니다. URL 기반 검색 파라미터를 지원하는 모든 사이트에서 이 방식을 사용할 수 있습니다—예를 들어 Google의
https://www.google.com/search?q={Query}
하지만 이러한 종류의 검색은 내부 회사 위키/Jira 사이트에서는 작동하지 않으며, 내부 문서 검색에 Quicklinks를 사용하는 것도 이상적이지 않습니다. 시간이 지나면서 방문하거나 저장해야 할 링크 수가 늘어나기만 합니다—브라우저 북마크든 Quicklinks든 말이죠.
그래서 Confluence와 Jira에 대한 빠른 검색(및 몇 가지 간단한 액션)을 지원하는 Raycast 확장 프로그램을 만들자는 아이디어가 떠올랐습니다. 편리하게도, 우리 자체 호스팅(Data Center) 배포판은 Personal Access Tokens를 통한 인증을 지원하는데, 이는 외부 프로그램과 통합할 때 안전한 방법입니다. 자세히 알아보기
시작하기 전에
Raycast를 설치한 후 Raycast Store에 가서 Atlassian Data Center (Self‑Hosted) 확장을 설치합니다.
이 확장으로 명령을 실행하면 초기 설정을 안내합니다. 다음을 준비하세요:
- Confluence Base URL – 예:
https://confluence.example.com/ - Confluence PAT – 회사 Confluence 사이트 → 프로필(아바타) → Personal Access Tokens → Create token (토큰을 안전하게 보관하세요; 유출될 경우 즉시 폐기하세요)
- Jira Base URL – 예:
https://jira.example.com/ - Jira PAT – Confluence와 동일한 방법으로 생성
팁: 위 필드들은 필수이므로, 하나만 사용할 경우 다른 필드는 비어 있지 않은 임의의 값으로 채울 수 있습니다.
Source: …
사용 가이드
팁: 자신의 습관에 맞게 각 명령에 별칭(Alias)을 설정하면 더 빠르게 접근할 수 있습니다.
사용 가능한 명령
Confluence
- 콘텐츠 검색 – 페이지(문서), 블로그 게시물, 첨부 파일 및 댓글을 검색합니다; 즐겨찾기 지원
- 스페이스 검색 – 스페이스를 검색합니다
- 사용자 검색 – 사용자를 검색합니다
Jira
- 이슈 검색 – 이슈를 검색합니다; 이슈 상태 전환이나 작업 로그 생성과 같은 간단한 작업을 지원합니다
- 보드 보기 – 현재 진행 중인 스프린트와 같은 보드를 봅니다
- 작업 로그 보기 – 자신의 작업 로그를 봅니다
- 알림 보기 – 알림을 봅니다(읽지 않은 메시지가 있으면 이슈 검색 목록에 힌트가 표시됩니다)
- 필드 관리 – 이슈 검색 결과에 더 많은 정보를 표시하도록 도와줍니다
필터 (각 검색 패널에 포함)
콘텐츠 검색
- 모든 콘텐츠
- 전체 텍스트 검색 – 검색 범위를
title ~ "xxx"에서text ~ "xxx"로 확장 - 최근에 본 항목
- 최근에 업데이트된 항목
- 내가 만든 항목
- 내가 기여한 항목
- 나를 멘션한 항목
- 나의 즐겨찾기
- 내가 구독한 항목
이슈 검색
- 모든 이슈
- 전체 텍스트 검색 – 검색 범위를
summary ~ "xxx"에서text ~ "xxx"로 확장 - 열린 이슈
- 나의 열린 이슈
- 나에게 할당된 이슈
- 내가 보고한 이슈
- 최근에 만든 이슈
- 최근에 업데이트된 이슈
- 최근에 해결된 이슈
- 최근에 본 이슈
- 내가 구독한 이슈
앞서 언급했듯이, 퀵링크는 시간이 지날수록 무한히 늘어나는 경향이 있습니다. 기사에 즐겨찾기를 하는 것이 좋은 대안입니다(액션 패널에서 빠른 즐겨찾기/즐겨찾기 해제 작업을 제공합니다). 검색 시에는 나의 즐겨찾기 옵션으로 전환하면 됩니다.
고급 쿼리
전체 CQL 또는 JQL을 입력하여 맞춤형 고급 쿼리를 수행할 수도 있습니다:
사용자 정의 필드 관리 (Jira)
Jira에서는 사용자 정의 필드를 사용할 수 있으며, 인스턴스마다 차이가 클 수 있습니다. 필드 관리 명령은 이슈 검색에 더 많은 정보를 표시하도록 도와줍니다.
- 필드 관리를 엽니다.
- 원하는 필드를 검색합니다(예: Test Engineer).
- 검색에 추가를 클릭합니다.
선택한 필드가 이제 이슈 검색 목록에 표시됩니다.

스크린샷
Raycast List는 공간이 제한되어 있기 때문에, 많은 추가 정보가 툴팁에만 숨겨져 있습니다.
아이콘, 제목, 부제목, 타임스탬프, 아바타 등에 커서를 올리면 해당 정보를 확인할 수 있습니다.
Confluence

Jira

Others
Some Raycast extensions I personally use. They may not be for everyone—pick what you need:
- Lark Documents – Lark 문서 검색
- Cursor – 일반적으로 사용됨: 최근 프로젝트 검색
- DeepWiki – Q&A에 유용하며 일부 라이브러리의 내부 구현을 빠르게 이해할 수 있음