크롬 익스텐션에 대해.araboja - 파일
본 포스트는 크롬 익스텐션 개발자 페이지(https://developer.chrome.com/extensions/overview)를 토대로 작성되었습니다.
그냥 공부하는 차원에서 개발자스러운 번역 중...
파일
각 익스텐션은 다음의 파일들을 가지고 있다.
- manifest file
- 하나 이상의 HTML files (익스텐션이 테마가 아닐 경우)
- 옵션: 하나 이상의 JavaScript files
- 옵션: 확장에 필요로하는 파일들 (이미지 같은)
파일 참조
익스텐션에는 아무파일이나 넣을 수 있지만, 어떻게 사용할 수 있을까? 대개, 그냥 평범한 HTML 페이지에 상대 주소(URL)을 이용하여 파일을 참조할 수 있다. 아래는 images 폴더 안에 있는 파일 이름이 myimage.png 를 참조하는 예제이다.
<img src="images/myimage.png">
크롬 디버거를 이용하면 익스텐션 안에 있는 모든 파일들을 절대 주소(URL)로 접근이 가능하다.
chrome-extension://<extensionID>/<pathToFile>
URL 에서 <extensionID> 는 익스텐션 시스템에서 각 익스텐션마다 생성된 고유의 식별자이다. "chrome://extensions" 에 접속하면 로드된 모든 익스텐션의 ID 를 확인할 수 있다. <pathToFile> 은 익스텐션의 최상위 폴더에서 부터의 위치(상대주소)이다.
개발 중(패키징 전)에는 익스텐션 아이디가 변경될 수 있다. 특별하게 압축이 해제된 익스텐션의 아이디는 다른 디렉토리에서 로드하게 되면 변경될 수 있다. 개발 중에 ID 가 필요하다면 하드코딩을 막기위해 "@@extension_id" 라는 사전정의된 메시지를 이용할 수 있다.
익스텐션을 패키징 할 때(일반적으로 대시보드에 업로드 시), 익스텐션은 영속적인 ID 를 가지게 되며, 이 ID 는 익스텐션이 업데이트 되더라도 동일하게 유지된다. 한번 생성된 ID 는 영속적이며, "@@extension_id" 를 통해 실제 ID 를 사용할 수 있다.
The manifest file
manifest 파일은 "manifest.json" 에 작성되며, 대부분 중요한 파일과 익스텐션이 할 수 있는 범위와 같은 정보를 제공한다. "google.com" 의 정보를 사용하는 브라우저 액션에 대한 일반적인 manifest 파일의 예는 아래와 같다.
{
"name": "My Extension",
"version": "2.1",
"description": "Gets information from Google.",
"icons": { "128": "icon_128.png" },
"background": {
"persistent": false,
"scripts": ["bg.js"]
},
"permissions": ["http://*.google.com/", "https://*.google.com/"],
"browser_action": {
"default_title": "",
"default_icon": "icon_19.png",
"default_popup": "popup.html"
}
}
자세한 내용은 Manifest 파일을 참고하길 바란다.