Chrome Side Panel API로 나만의 사이드바 앱 만들기

Chrome Side Panel API로 나만의 사이드바 앱 만들기 대표 이미지

안녕하세요! 업무 자동화 생산성 도구를 만드는 AI Workmate입니다.

매일 반복되는 웹 서핑과 데이터 수집 업무를 처리할 때, 브라우저 창을 여러 개 띄워두고 탭을 왔다 갔다 하느라 피로감을 느낀 적이 있으신가요?

구글이 Chrome 114 버전부터 도입한 Chrome Side Panel API를 활용하면 브라우저 우측에 지속 상주하는 강력한 나만의 맞춤형 사이드바 앱을 쉽게 구축할 수 있습니다.

💡 생산성 향상을 위한 AI 모델 선택 및 툴 비교 가이드
* ChatGPT (GPT-5): 크롬 확장프로그램 전체 구조 설계 및 Manifest V3 규격 검증에 최적화되어 있습니다.
* Claude 3.6 Sonnet: Chrome Side Panel API의 이벤트 리스너와 백그라운드 스크립트 디버깅에 최고 성능을 발휘합니다.
* Gemini 3.6 Pro: 구글 공식 크롬 개발자 문서 분석 및 최신 웹 규격 요약에 가장 효율적입니다.
🔗 추천 인공지능 공식 웹사이트 바로가기
챗GPT(ChatGPT) 공식 사이트 바로가기 ↗
클로드(Claude) 공식 사이트 바로가기 ↗

기존 크롬 확장프로그램의 popup UI는 마우스 클릭 한 번만 밖으로 벗어나도 창이 닫혀버리는 큰 단점이 있었습니다.

반면 Side Panel API는 사용자가 탭을 전환하더라도 UI 상태를 유지하며 지속적인 작업 공간을 제공합니다.

기능 및 특징 기존 Action Popup 최신 Side Panel API
지속성 다른 곳 클릭 시 자동 닫힘 탭 이동 후에도 상주 유지
화면 레이아웃 레이어 형태로 떠 있음 브라우저 화면 분할 영역 차지
주요 유스케이스 단발성 설정, 빠른 입력 메모장, AI 챗봇, 데이터 스크래핑
멀티 탭 제어 제한적 탭 변경 이벤트와 실시간 연동

1단계: manifest.json 환경 설정하기

사이드바 앱을 구현하기 위해 가장 먼저 확장프로그램의 메타데이터인 manifest.json 파일을 작성해야 합니다.

반드시 permissions 항목에 sidePanel 권한을 추가해야 API를 정상 호출할 수 있습니다.

{
  "manifest_version": 3,
  "name": "나만의 모니터링 사이드바",
  "version": "1.0.0",
  "permissions": [
    "sidePanel",
    "activeTab",
    "scripting"
  ],
  "background": {
    "service_worker": "background.js"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "action": {
    "default_title": "사이드바 열기"
  }
}

2단계: 백그라운드 서비스 워커 구성

확장프로그램 아이콘을 클릭했을 때 사이드바가 부드럽게 열리도록 서비스 워커를 설정합니다.

background.js 파일에 클릭 이벤트 리스너를 등록하고 사이드바 오픈 동작을 지정해 줍니다.

chrome.action.onClicked.addListener((tab) => {
  chrome.sidePanel.open({ windowId: tab.windowId });
});

chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true })
  .catch((error) => console.error('사이드바 설정 오류:', error));

실무 현장에서 겪은 시행착오와 해결 방법

제가 실제 프로젝트에 적용하면서 발생했던 대표적인 이슈는 탭 전환 시 데이터 유실 문제였습니다.

처음에는 단순히 HTML DOM에 데이터를 저장했다가 사용자가 탭을 바꿀 때마다 사이드바 리로드 현상이 발생해 입력 중이던 데이터가 모두 날아갔습니다.

이 문제를 해결하기 위해 chrome.storage.local API를 결합하여 작성 중인 상태를 실시간 동기화하도록 로직을 수정했습니다.

// sidepanel.js: 입력 데이터 자동 저장 예시
const noteInput = document.getElementById('my-note');

noteInput.addEventListener('input', () => {
  chrome.storage.local.set({ savedNote: noteInput.value });
});

document.addEventListener('DOMContentLoaded', async () => {
  const data = await chrome.storage.local.get('savedNote');
  if (data.savedNote) noteInput.value = data.savedNote;
});

결론 및 나만의 생산성 도구 확장하기

Chrome Side Panel API는 단순한 UI 추가를 넘어 브라우저 기반의 업무 환경을 획기적으로 개선해 줍니다.

여기에 AI API(Claude, OpenAI)를 연동하면 현재 보고 있는 웹페이지의 요약 및 번역을 즉시 수행하는 나만의 나이트호스트 AI 비서로 탈바꿈할 수 있습니다.

오늘 안내해 드린 기본 구조를 바탕으로 여러분만의 맞춤형 업무 자동화 사이드바를 만드셔서 생산성을 크게 높여보세요!

🤔 자주 묻는 질문 (FAQ)

Q. 기존 Popup 방식과 Side Panel API의 가장 큰 차이점은 무엇인가요?

Popup은 브라우저의 다른 영역을 클릭하면 닫히는 단발성 UI인 반면, Side Panel API는 사용자가 탭을 이동하거나 다른 작업을 하더라도 브라우저 측면에 영구적으로 띄워둘 수 있어 연속적인 작업에 유리합니다.

Q. 특정 웹사이트 접속 시에만 사이드바가 자동으로 열리게 설정할 수 있나요?

네, chrome.sidePanel.setOptions() API를 활용하여 path와 enabled 속성을 특정 URL 패턴(hosts)에만 지정하도록 설정할 수 있습니다.

Q. Manifest V2 프로젝트에서도 Side Panel API를 사용할 수 있나요?

아니요, Side Panel API는 Chrome 114 버전 이후 Manifest V3 규격에서만 지원하는 최신 API입니다. Manifest V3 마이그레이션이 필수적입니다.
#chromeAPI #sidePanel #크롬확장프로그램개발 #웹개발 #사이드바구현