본문 바로가기
programming/Extenstions

구글 크롬 확장 프로그램 퍼미션 종류 웹브라우저에 기능 요청하기

by 개코 - 개발과 코딩 2023. 9. 6.

구글의 크롬 웹브라우저 확장 프로그램 앱을 개발하기 위해 필요한 것은 퍼미션 이다. 퍼미션은 권한을 뜻하는 단어로 크롬 웹브라우저의 기능적 API 를 사용하기 위해 명시적으로 등록해 주는 것이다. 퍼미션은 json 구조의 매니페스트 파일의 permission 에 등록하여 사용한다.

구글 크롬 확장 프로그램 퍼미션 종류
Google Chrome Extensions Permission Type
웹브라우저에 기능요청하기

구글의 크롬 웹브라우저 확장 프로그램을 개발할 때 필요한 것 중 하나가 퍼미션 ( permission ) 이다.

크롬의 기능 API 를 사용하기 위해 확장앱에 권한을 요청하고 그에 해당하는 기능을 사용할 수 있다.

권한에 대한 종류는 여러가지가 있으며, 권한에 대한 개요를 파악한다면 크롬 웹브라우저의 확장앱 개발에 도움이 된다.

크롬 웹브라우저에서 확장 프로그램 앱을 어디까지 개발하고 기능을 사용할 수 있는지는 권한 ( permission ) 을 파악하면 개발에 대한 범위를 파악할 수 있다.

튜토리얼이나 샘플 예제 등을 살펴보면 어지간한 것들은 만들 수 있기도 하다.

퍼미션 / permission

크롬 웹브라우저의 편의성을 높이기 위해 확장앱을 설치하거나 또는 자작으로 만들기도 한다.

확장앱은 만드는 사람마다 또는 목적에 따라 여러가지가 있지만, 기능을 신규로 개발하거나 수정할 때에 권한 ( permission ) 을 요청하게 된다.

영어로 퍼미션 ( permission ) 의 뜻은 권한이란 뜻이다.

즉, 확장앱을 개발할 때 크롬에서 제공하는 API 를 사용하기 위한 권한 요청을 함으로써 크롬 웹브라우저에 내장되어 있는 API 를 사용하고 기능을 높일 수 있다.

퍼미션의 종류를 알고 있다면 크롬 확장앱을 개발하는데 어떤 기능을 사용할 수 있는지 개략적으로 파악할 수 있다.

그리고, 퍼미션의 관리는 확장앱에 필요한 매니페스트 ( manifest.js ) 파일에 등록해 주면 된다.

매니페스트 v3

매니페스트는 영어로 manifest 라 하고 사전을 찾아보면 명백하게 하다 란 뜻을 가지고 있다.
매니페스트 ( manifest )는 명세서와 같은 어떤 것을 구체적으로 설명하는 의미를 담고 있는 것으로 구글 크롬 확장 프로그램을 개발하기 위해선 필수적으로 사용하는 파일이다.

현재 버전은 v3 까지 업그레이드가 되었으며, 크롬의 일부 버전의 경우 확장앱 개발시 필요한 매니페스트 버전은 최소 v3 로 지정하도록 하고 있다.

매니페스트 파일은 json 형태의 확장앱에 대한 정보를 담고 있다.

확장앱의 버전, 이름, 설명과 권한, 아이콘 등의 정보를 작성하여 확장앱의 정보를 사용자에 보여주고 이해하도록 하고 있다.

편하게 명세서 파일이라 생각하자.

매니페스트 파일은 manifest.json 으로 작성하게 된다.

종류

크롬 확장앱 프로그램을 위한 퍼미션의 종류는 여러가지가 있다.

튜토리얼이나 샘플 예제 등을 통해 하나씩 익힐 수도 있지만, 종류를 먼저 파악해 두면 추후 기능을 추가할 때 도움이 된다.

아래는 구글 크롬 확장 프로그램 앱개발을 위한 퍼미션의 종류이다.

크롬 웹브라우저의 퍼미션은 매니페스트 ( manifest.json ) 파일의 permission 에 등록해 주면 되며, 콤마 ( , ) 를 이용하여 여러개를 등록할 수 있다.

크롬 웹브라우저의 기능을 사용하기 위한 퍼미션의 종류는 다음과 같다.

  • <all_urls>
    가장 강력하지만 개인 정보와 같은 데이터를 손상시킬 수 있다.
    주의해서 사용하도록 권고하고 있다.
  • activetab
    크롬 웹브라우저의 현재 활성화된 탭에 접근할 수 있다.
    현재 탭의 콘텐츠 내용을 읽을 수만 있으며, 브라우징 기록이나 다른 탭에 접근할 수는 없다.
  • alarms
    특정 시간 또는 일정한 시간 간격으로 사용자가 지정한 작업을 할 수 있다.
  • bookmarks
    크롬 웹브라우저에 사용자가 등록한 북마크를 관리하고 읽고 쓰고 수정할 수 있다.
  • contextMenus
    웹페이지에서 마우스 오른쪽 버튼을 클릭했을 때 나타나는 메뉴를 추가할 수 있다.
  • cookies
    사용자가 방문한 웹사이트의 쿠기 정보를 접근하고 읽고 수정할 수 있다.
  • download
    크롬 웹브라우저의 파일 다운로드를 관리하고 관찰할 수 있다.
  • geolocation
    지리정보를 사용하고 물리 위치를 결정하도록 한다.
  • history
    크롬 웹브라우저가 그동안 방문한 웹사이트의 기록을 접근하고 분석하거나 수정할 수 있다.
  • identity
    사용자의 구글 계정 정보 또는 다른 여러 가지 서비스에 등록할 수 있도록 한다.
    사용자의 계정정보를 이용한다.
  • idle
    컴퓨터가 유휴 상태인지 검사한다.
    유휴 상태는 컴퓨터는 사용 가능한 상태지만 사용자가 아무것도 하지 않는 상태를 말한다.
    컴퓨터가 그냥 멍하니 켜져 있는 상
  • notifications
    공지 / 알림 권한으로 데스크탑의 알림을 표시하거나 어떤 이벤트 또는 업데이트 소식을 표시한다.
  • management
    크롬 웹브라우저에 설치된 확장 프로그램 앱들을 관리할 수 있다.
  • storage
    사용자 데이터와 상태 데이터를 저장하고 불러올 수 있다.
    크롬 웹브라우저와 연결된 여러가지 장치의 데이터를 동기화하고 접근할 수 있다.
  • tabs
    크롬 웹브라우저에 표시된 탭들을 조작할 수 있다.
    새 탭 열기, 닫기 그리고 다른 탭을 선택할 수 있다.
  • webNavigation
    크롬 웹브라우저가 웹사이트를 화면에 표시하거나 URL이 변경될 때마다 기록하고 웹브라우저가 탐색한 내용들을 추적한다.
  • webRequest
    웹사이트에서 사용하는 네트워크 요청에 접근하고 수정할 수 있다.
    주로 광고를 콘텐츠 내용을 필터링하거나 광고를 차단하는데 사용된다.

내용을 개략적으로 작성했지만, 직접 코딩해 보고 눈으로 봐야 정확히 이해가 될 것이다.

추가적인 내용은 구글 개발자센터의 [ Chrome Extensions Declare permissions ] 의 내용을 참고해 보도록 한다.

반응형

댓글