검색막대에 검색 엔진 추가하기

Mozilla Firefox 사용에 대한 일반적인 질문과 답을 해 주는 게시판입니다. 질문을 하기 전에 FAQ를 읽어 보시는게 도움이 될 것입니다.
서포터즈
서포터즈
게시물: 168
참여됨: 2004 08 25 09:55 32
연락:

검색막대에 검색 엔진 추가하기

게시물 작성자 » 2004 09 17 21:54 48

1.0PR부터 검색 막대에서 구글 이외에도 야후, 이베이, dictionary.com, 아마존을 이용하여 검색을 할 수 있게 되었습니다. 하지만 검색 엔진이 이 다섯개만 있는 것이 아닙니다. 그래서 불여우는 사용자가 직접 검색 엔진을 등록할 수 있는 기능을 제공합니다.

검색 막대의 검색 엔진에 대한 설정은 불여우의 설치 경로 아래의 searchplugins라는 디렉토리에 .src 파일로 저장되어 있습니다. 검색 엔진을 추가하려면 이곳에 같은 형식의 파일을 추가하면 됩니다.

.src 파일에 사용되는 태그는 여러가지가 있지만 이 글에서는 꼭 필요한 몇 가지만 다루겠습니다. 이해를 돕기 위해 네이버 지식iN을 예로 듭니다.

<search
.src 파일은 search 태그로 둘러 쌓여야 합니다.

name="KiN"
검색 엔진의 이름을 입력합니다. 한글은 표시되지 않기 때문에 반드시 영문으로 입력해야 합니다.

description="Naver KiN Search"
검색 엔진에 대한 설명입니다. 화면에 표시되지는 않지만 입력해야 합니다.

action="http://kin.naver.com/search.naver"
검색 엔진의 URL을 입력합니다. -> 검색 엔진의 URL과 변수를 알아내는 방법은 이 글의 가장 마지막에 적어 놓았습니다.

method="GET"
변수를 보내는 방식을 지정합니다. POST와 GET이 있지만 현재는 GET만 지원합니다.

>
search 태그의 시작 부분을 닫습니다.

<input name="sourceid" value="Mozilla-search">
input 태그는 name에 변수명을 입력하고 value에 값을 입력합니다. sourceid 변수는 검색 엔진에 어떤 브라우저를 사용하고 있는지를 알리기 위해 사용합니다. 모질라 제품을 사용하고 있음을 알리기 위해 이 태그는 반드시 사용합시다.

<input name="query" user>
사용자가 입력한 검색어를 전송하는 부분입니다. 지식iN에서 검색어에 해당하는 변수가 "query"이기 때문에 name에 query를 입력했습니다. user는 사용자가 입력한 검색어를 뜻합니다. 여기서는 value를 쓸 필요가 없습니다.

<input name="where" value="ns_all">
지식iN의 검색 결과 주소를 보면 where라는 변수에 ns_all이라는 값이 지정되어 있습니다. 사용자가 입력한 검색어 이외에 검색을 하는 데 필요한 변수는 이런 방식으로 입력을 하면 됩니다.

</search>
필요한 정보를 모두 입력했으므로 search 태그를 닫습니다.

위의 내용을 정리하면 다음과 같은 코드가 완성됩니다.

코드: 모두 선택

<search
   name="KiN"
   description="Naver KiN Search"
   action="http://kin.naver.com/search.naver"
   method="GET"
>

<input name="sourceid" value="Mozilla-search">
<input name="query" user>
<input name="where" value="ns_all">

</search>
이 파일을 kin.src 라는 이름으로 저장하고 화면에 표시될 아이콘을 kin.gif 라는 이름으로 저장한 후 불여우를 다시 시작하면 검색막대에 지식iN 검색 엔진이 추가됩니다. 만약 아이콘을 저장하지 않으면 검색 엔진을 선택한 후 아이콘이 없어 다른 검색 엔진을 선택할 수 없게 됩니다. 이 때는 Ctrl + 위, 아래로 검색 엔진을 변경하면 되지만 될 수 있으면 아이콘을 등록하는 것이 좋습니다.

참고자료: Quick start guide to creating Mozilla-Search plugins


검색 엔진의 URL과 변수 알아내는 방법
① 해당 사이트에 접속하여 검색을 합니다.
http://heygom.com/tt/uploaded/make_src/find_var_1.png

② 주소막대에 표시된 주소를 분석합니다. 표시된 주소에서 ? 앞까지가 검색 엔진의 URL이고 그 뒤가 각 변수와 값입니다. 변수들은 & 으로 나뉩니다.
http://heygom.com/tt/uploaded/make_src/find_var_2.png

위의 그림에서 주소막대에 표시된 주소는 kin.naver.com/search.naver?where=ns_all&query=firefox 입니다. 이 중 kin.naver.com/search.naver 가 지식iN 엔진의 URL이며 현재 이 URL로 전송된 변수는 where와 query 두 개입니다. 검색어에 입력한 "firefox"의 위치로 보아 검색어를 나타내는 변수는 query 임을 알 수 있습니다.

cdpark
서포터즈
서포터즈
게시물: 56
참여됨: 2004 08 15 17:16 58

게시물 작성자 cdpark » 2004 09 18 02:41 15

누가 구글코리아(http://www.google.co.kr)의 아이콘에 태극마크 달아주세요.

한글 검색

게시물 작성자 » 2004 11 28 02:00 28

유용한 팁을 소개해주셔서 감사합니다. 그런데, 한글단어로 검색을 하면, 한글이 인식이 되지 못해서 검색이 되지 않습니다. 이것에 대한 해결책도 알고 계신지요?

atclock2

게시물 작성자 atclock2 » 2004 11 28 02:21 38

유용한 팁을 소개해주셔서 감사합니다. 그런데, 한글단어로 검색을 하면, 한글이 인식이 되지 못해서 검색이 되지 않습니다. 이것에 대한 해결책도 알고 계신지요?
어느 서치 엔진을 추가하셨는지요?
위 예제대로 하면 Naver나 Kin에서 한글로 검색이 정상적으로 이루어집니다.[/quote]

과객

Re: 한글 검색

게시물 작성자 과객 » 2004 11 28 04:49 57

손 씀:유용한 팁을 소개해주셔서 감사합니다. 그런데, 한글단어로 검색을 하면, 한글이 인식이 되지 못해서 검색이 되지 않습니다. 이것에 대한 해결책도 알고 계신지요?
저도 Naver나 empas를 위의 예를 이용해서 해봤는데, 한글이 "?"로 처리되면서 검색을 못하던데요. 한글 언어코딩 설정을 search 태크안에 넣어 해결했습니다.

<Search
...
queryEncoding="EUC-KR"
queryCharset="EUC-KR"
...
>

첸..

좋은 정보 감사합니다~

게시물 작성자 첸.. » 2004 11 29 15:00 14

훨씬 편리하네요~

감사~

UTF8 됩니다..

게시물 작성자 » 2004 11 29 15:51 24

맨위의 naver.src에서

<search
....
queryEncoding="UTF8"
>


p.s. 검색주소라면 &encoding=uft8 을 붙여보세요.

http://search.naver.com/search.naver?wh ... 8&query=%s

오타수정

게시물 작성자 » 2004 11 29 15:53 23

&encoding=uft8
-> &encoding=utf8

게시물 작성자 » 2005 01 28 20:22 59

검색 엔진의 URL 이 로케이션 바에 나타나지 않는 사이트의 경우
어떠한 방법으로 URL 을 알아낼 수 있나요?
다음 사이트는 검색을 해도 로케이션 바가 변하지 않네요.

http://www.changgo.com

서포터즈
서포터즈
게시물: 168
참여됨: 2004 08 25 09:55 32
연락:

게시물 작성자 » 2005 01 28 20:56 28

사이트가 프레임으로 나뉘어 있기 때문에 주소가 변하지 않습니다. 프레임 정보를 보니 url은 http://www.changgo.com/changgo/n_search.main 이고, 전달되는 변수는 a_type, a_string, a_genre 인데 a_genre는 쓰지 않는 것 같네요.

마우스 오른쪽 단추를 누른 후 [이 프레임] -[프레임 정보 보기] - [폼]을 활용하세요. :)

생명나무
서포터즈
서포터즈
게시물: 79
참여됨: 2004 12 13 05:36 29
위치: 대한민국
연락:

Re: 한글 검색

게시물 작성자 생명나무 » 2005 01 29 12:14 02

과객 씀:
손 씀:유용한 팁을 소개해주셔서 감사합니다. 그런데, 한글단어로 검색을 하면, 한글이 인식이 되지 못해서 검색이 되지 않습니다. 이것에 대한 해결책도 알고 계신지요?
저도 Naver나 empas를 위의 예를 이용해서 해봤는데, 한글이 "?"로 처리되면서 검색을 못하던데요. 한글 언어코딩 설정을 search 태크안에 넣어 해결했습니다.

<Search
...
queryEncoding="EUC-KR"
queryCharset="EUC-KR"
...
>
종은 정보 감사합니다. 곰님도 감사...

게시물 작성자 » 2005 01 29 18:06 10

곰 씀:사이트가 프레임으로 나뉘어 있기 때문에 주소가 변하지 않습니다. 프레임 정보를 보니 url은 http://www.changgo.com/changgo/n_search.main 이고, 전달되는 변수는 a_type, a_string, a_genre 인데 a_genre는 쓰지 않는 것 같네요.

마우스 오른쪽 단추를 누른 후 [이 프레임] -[프레임 정보 보기] - [폼]을 활용하세요. :)
감사합니다. 잘 되는군요. :D:D:D

빛알갱이
해커
해커
게시물: 1146
참여됨: 2004 01 15 20:06 36

Re: 한글 검색

게시물 작성자 빛알갱이 » 2005 01 29 18:28 10

생명나무 씀:
과객 씀: 저도 Naver나 empas를 위의 예를 이용해서 해봤는데, 한글이 "?"로 처리되면서 검색을 못하던데요. 한글 언어코딩 설정을 search 태크안에 넣어 해결했습니다.

<Search
...
queryEncoding="EUC-KR"
queryCharset="EUC-KR"
...
>
종은 정보 감사합니다. 곰님도 감사...
Naver는 UTF-8을 지원하니까 삽님이 적으신 대로 UTF-8로 설정해서 쓰세요.

생명나무
서포터즈
서포터즈
게시물: 79
참여됨: 2004 12 13 05:36 29
위치: 대한민국
연락:

UTF-8

게시물 작성자 생명나무 » 2005 01 30 04:22 31

빛알갱이 씀: Naver는 UTF-8을 지원하니까 삽님이 적으신 대로 <b>UTF-8</b>로 설정해서 쓰세요.
빛알갱이님 "UTF-8"이 무슨 의미인가요? 익스플로러의 인터넷 옵션에서 본 적은 있지만
전혀 모르고 있습니다. 간략하게 설명 부탁드립니다.

추신) 제가 스스로 알려고 노력을 하지 않은 것 같아서 자료를 검색해서 좀 보고 있습니다.
http://my.ktug.or.kr/mywiki/UTF_2d8

빛알갱이
해커
해커
게시물: 1146
참여됨: 2004 01 15 20:06 36

게시물 작성자 빛알갱이 » 2005 01 30 10:52 51

UTF-8이 무엇인가를 간략하게 설명할 수도 있는데, 어느 정도까지 간략하게 해야 할 지...

한 문장짜리 설명: UTF-8은 인류가 사용하고 있고 사용해 온 모든 문자를 포괄하는 문자 집합인 유니코드/ISO 10646을 바이트 열(바이트 시퀀스)로 나타내는 방법 중의 하나로 인터넷 상의 문서 정보 교환과 관련된 많은 표준 및 규약에서 기본값으로 채택되었고, 앞으로도 계속 채택될 예정인 문자 인코딩.

긴 설명에 들어 가기 전에: UTF-8이 EUC-KR보다 좋은 점: 현대 한국어 맞춤법에서 허용하는 조합 가능한 음절 표현 가능 (11,172자), 한국어 뿐 아니라 다른 언어의 표기를 위해 쓰이는 전 세계의 모든 글자 표현 가능. 따라서, 다국어 검색을 해야 하는 경우 필수적으로 UTF-8을 써야 합니다. 또한, 'ㅤㄸㅗㅁ방각하', '아ㅤㅎㅔㅎㅤㅎㅔㅎ' 등을 표준에 맞게 제대로 검색하기 위해서도 UTF-8을 써야 합니다.

자세한 설명 :
인류가 문자를 써서 기록을 시작한 이후 존재했던 모든 표기 체계에서 쓰이는 모든 글자를 포함할 것을 목표로 하는 문자 집합이 Unicode consotiumISO/IEC JTC1/SC2/WG2에서 공동으로 작업 중인 Unicode 혹은 ISO 10646 (UCS=Universal coded Character Set)입니다. 이 부호화된 문자 집합에는 2^20 + 2^16개(1,048,576 + 65,536. 지금부터 편의상 이 값을 "2^20.1"이라고 하겠습니다.)의 글자를 수용할 공간이 있습니다. 이 부호화된 문자 집합에서는 각 글자에 대해 0부터 2^20.1 - 1까지의 정수를 대응시켜 놓았습니다. 따라서, 이 정수로 각 글자를 식별할 수 있습니다. 이 경우 문제점은 글자 한 자를 나타내기 위해서 4byte를 써야 한다는 점입니다. 기존에 존재하는 대부분의 OS에서 글자 한 자를 표현하기 위해서 4byte를 쓰지 않았기 때문에 기존의 OS와 프로그램을 크게 고쳐야 한다는 문제점도 생깁니다. 이런 사정을 감안해서 0에서 2^20.1-1까지의 정수를 표현하기 위해 고안해낸 방식 중 하나가 UTF-8입니다. 이 방식에서는 US-ASCII에 속하는 글자는 1byte로, 로마/라틴 글자, 그리스 글자, 키릴 글자 등은 2byte로 한글 자모 및 음절, 가나, 현대 한중일에서 쓰이는 한자, 남부 및 동남 아시아 글자 등은 3byte로, 옛 문헌 등에 나오는 희귀한 한자(강희자전의 모든 한자가 다 들어갔고, 고려대장경에 있는 희귀한 한자도 모두 들어 갔습니다), 고대 지중해 문명의 유적에서 발견된 글자(Linear A, Linear B, 에게 숫자 등), 옛 이탈리아 글자나 현대에 쓰이지만 극히 소수만이 쓰는 글자 등은 4byte로 표현됩니다.
이렇게 하면 복잡할 것 같지만, 사실은 UTF-8을 굉장히 좋은 성질을 많이 지녀서 다루기 아주 좋습니다.

최근에 와서 인터넷 상에서 문서 교환에 관계되는 대부분의 표준은 UTF-8을 기본으로 사용하도록 개정되었거나 개정 작업 중입니다. 예를 들어, XML에서는 따로 다른 문자 인코딩을 쓰겠다고 명시하지 않는 한 UTF-8을 쓴 것으로 간주합니다. CSS 역시 마찬가지입니다. 다른 많은 인터넷 규약(protocol)에서도 그 방향으로 이미 갔거나, 가고 있습니다. 인터넷 규약의 표준을 정하는 IETF에서는 문자 정보 교환과 관련이 있는 새로운 표준을 정할 때 특별한 사정이 없는 한 UTF-8을 기본값으로 쓰는 것을 원칙으로 하고 있습니다.

참고 사이트 : 위에서 링크한 Unicode consortium 웹 사이트에 가면 용어집(glossary)도 있고, 유니코드에 대한 전반적인 개관도 있습니다. Unicode 4.0 표준(1500페이지 가까인 되는. 지금 제 무릅 위에 올려져 있는데 한 몇 kg은 되는 것 같네요)이 통째로 PDF로 올라와 있습니다. UTF-8은 공식적으로 RFC 3629에서 정의하고 있습니다. http://www.i18nguru.com도 참고해 보십시오.

[1]( 2^20+2^16은 2^21이 채 되지 않으므로, 3byte로도 나타낼 수 있지만, 현존하는 마이크로프로세서의 구조 상 3byte를 사용하는 것이 여의치 않습니다.) 원래 ISO에서 고안한 ISO 10646은 31bit를 써서 2^31개의 글자를 수용할 수 있는 문자 집합이었고, 유니코드 컨소시엄에서는 65536자면 충분하다고 생각했습니다. 개발 과정에서 65536자가 충분하지 않다는 것이 명백해졌습니다. (강희자전의 한자만 해도 거의 5만자입니다. 또, 한글 음절이 전혀 불필요하게 11,172자 공간을 차지해 버렸습니다. 실제로는 한글 자모만을 위한 공간을 두어서 많아 보았자 256자 정도면 충분했는데요.) 결국 둘의 통합 과정에서 2^20.1개의 글자를 수용하도록 바뀌었습니다. 왜 2^20+2^16이라는 희한한 숫자가 나왔는지는 설명이 길어지므로 생략합니다.

[2] Unicode/UCS를 나타내는 다른 방식으로는 모든 글자에 대해 공히 4byte를 쓰는 UTF-32, 라틴/로마, 그리스, 키릴, 남부 및 동남 아시아, 한글 음절, 현대 한중일에서 널리 쓰이는 한자 등은 2byte로, 나머지는 4byte로 나타내는 UTF-16 등이 있습니다. 얼마든지 다른 방법도 생각해 낼 수 있지만, UTF-8, UTF-16, UTF-32가 널리 쓰입니다. 그 중에서 인터넷 상에서 메일, 웹 문서 교환(textual data interchange)에는 US-ASCII와 호환성이 있는 UTF-8이 제일 많이 쓰이고, UTF-16과 UTF-32는 OS 내부에서 데이터 처리용으로 많이 쓰입니다. 단, Windows에서는 OS 내부 뿐 아니라 Notepad, Wordpad 등에서 파일 저장을 할 때에 'Unicode'라는 것을 고르면 UTF-16으로 저장합니다. 극히 제한된 경우(IMAP 폴더 이름 등)에 UTF-7이나 그 변형이 쓰이기도 합니다. 또, 국제화된 도메인 이름(www.정통부.kr과 같은)을 기존의 ASCII만 처리할 수 있는 DNS 써버가 문제 없이 처리하도록 하기 위해서 punycode라는 표현 방법도 쓰입니다.
2005 01 30 12:58 38 에서 빛알갱이 에 의해 마지막으로 편집되었으며 총 2 번 수정 되었습니다.

유저 아바타
XviD
해커
해커
게시물: 664
참여됨: 2004 11 14 14:55 45
위치: 사막의 오아시스
연락:

게시물 작성자 XviD » 2005 01 30 12:34 39

옷! 대충 뭉퉁그려 알고 있었는데 빛알갱이님 덕분에 UTF-8에 대해 새로운 사실을 알게 되었습니다.
감사합니다. :lol:

생명나무
서포터즈
서포터즈
게시물: 79
참여됨: 2004 12 13 05:36 29
위치: 대한민국
연락:

감사^^*

게시물 작성자 생명나무 » 2005 01 30 13:10 51

빛알갱이님 고마워요.
단 1/5 정도는 이해할 수 있을것 같아요.
쉬운 설명을 해 주셔서 감사합니다.

BlueRobot
도우미
도우미
게시물: 260
참여됨: 2004 11 18 22:52 19
위치: 한국어 위키백과
연락:

빛알갱이님 감사합니다.

게시물 작성자 BlueRobot » 2005 01 30 15:07 49

빛알갱이님의 상세한 설명 덕분에 저도 UTF-8에 대해 자세히 알게 되었네요.

(그런데 UTF-7, UTF-16 등의 정체는?)

어쨌든 감사합니다. 그런데 우리나라 사이트들은 대부분 EUC-KR를 쓰죠..

빛알갱이
해커
해커
게시물: 1146
참여됨: 2004 01 15 20:06 36

게시물 작성자 빛알갱이 » 2005 01 30 19:24 16

EUC-KR을 하루 속히 버리고 UTF-8로 전환해야 합니다. EUC-KR로도 아ㅤㅎㅔㅎㅤㅎㅔㅎ, ㅤㄸㅗㅁ방각하 등에 쓰인 헹이나 ㅤㄸㅗㅁ을 표현할 수 있기는 하지만, 표준 규정대로 이것을 지원하는 브라우저는 모질라 밖에 없고 나머지는 EUC-KR이란 이름을 붙이고 실제로는 Windows-949를 써서 나타내고 있습니다. 이런 이름과 실제의 차이를 방치해서는 상호 운용성에 문제가 있습니다. 어느 경우에도 옛 문헌 등을 효율적으로 표현할 수 없으므로, 이를 잘 표현할 수 있는 UTF-8(혹은 경우에 따라 UTF-16)을 써야 합니다.

제 설명이 그다지 성공적이지 못 했다는 것은 UTF-16과 UTF-7에 대해 물으신 데드님의 질문이 잘 보여 주었네요. Unicode/ISO 10646을 나타내는 다른 방법입니다. 제가 링크를 걸어 준 Unicode 컨소시엄의 용어집(glossary)에 가면 설명이 있습니다. UTF-16에 대해서는 제가 간단하게 설명하기도 했고요. UTF-7은 그냥 모르셔도 지장이 없습니다. (잘 안 씁니다.)
자세한 것을 알고 싶으시면 유니코드 컨소시엄에서 무료로 열람할 수 있는 유니코드 표준 4.0의 2.4절부터 2.6절까지를 참조하십시오.

빛알갱이
해커
해커
게시물: 1146
참여됨: 2004 01 15 20:06 36

Re: UTF8 됩니다..

게시물 작성자 빛알갱이 » 2005 02 01 23:48 05

삽 씀:맨위의 naver.src에서

<search
....
queryEncoding="UTF8"
>


queryEncoding은 지정하지 않고, queryCharset="UTF-8"을 지정하면 됩니다. google.src도 쓸데 없이 queryCharset과 queryEncoding을 모두 다 지정해 놓아서 두 개 다 지정해야 하는 줄 알고 있었는데, 소스 코드를 들여다 보니 queryCharset이 있으면 queryEncoding은 참조하지도 않더군요. 만일, queryCharset을 쓰지 않고 queryEncoding만 쓴다면 숫자로 된 encoding ID가 적어야 하고요. 지금 배포되는 검색 엔진 대부분이 제대로 설정해 놓은 것이 별로 없습니다. yahoo.src도 틀려 있고.

Naver의 UTF-8 지원은 반쪽이더군요. 결과를 UTF-8로 돌려 주지 않고 EUC-KR로 돌려 줍니다. 그래서, 다음과 같은 부분도 있어야 합니다. 이것은 불여우에서는 별로 상관이 없고, 모질라 스위트에서 search sidebar를 쓸 때 필요한 것입니다.

코드: 모두 선택

<interpret
    browserResultType="result"
    charset = "EUC-KR"
>

mozdev 문서에서도 제대로 설명이 안 되어 있어서 대부분의 서치 플러그인이 ASCII 범위 밖의 문자를 검색할 때 에러를 냅니다. Yahoo US 것도 틀렸습니다.
mozdev bugzilla에 버그 보고한 것입니다.

http://bugzilla.mozdev.org/show_bug.cgi?id=9098

댓글 게시

누군가 접속

유저들이 이 포럼을 탐색중: 가입된 유저 없음 그리고 8 손님들