ServBay에서 Typesense 검색 엔진 설정 및 활용 가이드
Typesense는 오픈소스이며, 가볍고 매우 빠른 인메모리 검색 엔진입니다. ‘키 입력 즉시 검색(search-as-you-type)’ 경험을 제공하도록 설계되어, Algolia나 Elasticsearch의 경량 대안으로 자주 사용됩니다. ServBay를 활용하면 macOS 로컬 환경에서 완전한 Typesense 인스턴스를 손쉽게 배포·관리해, 강력한 검색 기능을 프로젝트에 더할 수 있습니다.
개요
ServBay는 Typesense의 설치 및 설정 과정을 대폭 간소화합니다. 개발자는 복잡한 명령어 입력 없이 ServBay의 직관적인 GUI를 통해 모든 설정을 마칠 수 있으며, 즉시 사용 가능한 로컬 검색 서비스를 곧바로 제공합니다.
개발자의 편의를 위해, ServBay는 Typesense 인스턴스에 대해 자동으로 안전하고 쉽게 접근 가능한 HTTPS API 엔드포인트(https://typesense.servbay.host/)를 구성합니다. 별도의 포트 매핑이나 SSL 인증 관련 설정을 할 필요 없이, 이 도메인만 설정하면 곧장 API 호출이 가능합니다.
사전 준비 사항
- macOS에 ServBay가 성공적으로 설치 및 실행 중이어야 합니다.
- 검색 엔진 통합이 필요한 프로젝트를 개발 중이어야 합니다.
- 컬렉션(Collection), 문서(Document), API 키 등 검색 엔진의 기본 개념을 숙지하고 있어야 합니다.
단계별 안내
1. Typesense 패키지 설치
먼저, ServBay에서 Typesense 패키지를 설치하세요:
- ServBay 앱을 실행합니다.
- 좌측 네비게이션 바에서 **패키지(Packages)**를 클릭합니다.
- 패키지 목록에서
검색
-Typesense
를 찾습니다. Typesense
우측의 설치 버튼을 클릭하고 설치가 완료될 때까지 기다립니다.- 우측 버튼을 눌러
Typesense
서비스를 활성화합니다.
2. Typesense 서비스 설정
설치를 마치면 Typesense의 기본 설정을 해야 합니다:
ServBay 좌측 네비게이션 바에서 Search를 클릭합니다.
드롭다운에서 Typesense를 선택해 설정 화면으로 이동합니다.
아래와 같은 설정값이 보이며, 필요에 따라 수정하거나 기본값을 그대로 둘 수 있습니다:
- Bind IP (바인딩 IP): Typesense 서비스가 리스닝할 IP 주소. 기본값
127.0.0.1
은 오직 본인 컴퓨터에서만 접근 가능하게 하므로, 로컬 개발 환경에 최적화되어 있습니다. - Port (포트): Typesense API가 사용하는 내부 통신 포트. 기본값은
8108
이며, 이 포트로 서비스는 작동하지만 실제 연동에서는 ServBay 제공 도메인(https://typesense.servbay.host
) 사용을 강력히 권장합니다. - API Key (API 키): 모든 API 요청을 인증하는 데 사용됩니다. 검색 데이터 보안을 지키는 핵심 값이므로, 반드시 강력하고 고유한 값을 설정하고 안전하게 보관하세요.
- Data Path (데이터 경로): Typesense가 로컬에 인덱스와 설정 정보를 저장하는 위치입니다. 기본 경로는
/Applications/ServBay/data/typesense
이며, 우측 폴더 아이콘 클릭 시 Finder에서 해당 폴더를 빠르게 열 수 있습니다.
- Bind IP (바인딩 IP): Typesense 서비스가 리스닝할 IP 주소. 기본값
3. 설정 저장 및 서비스 시작
- 모든 설정을 마쳤다면, 우측 하단의 저장(Save) 버튼을 클릭합니다.
- 이어서 패키지(Packages) 목록으로 이동해
Typesense
항목 우측 스위치를 눌러 서비스를 시작하세요. - 설정이 올바르면, 서비스 상태 표시등이 초록색으로 바뀌며 Typesense가 정상적으로 작동 중임을 의미합니다.
4. 애플리케이션에서 Typesense 연동
Your 애플리케이션(JavaScript, PHP, Python, Go 등)은 Typesense 공식 혹은 커뮤니티용 클라이언트 라이브러리를 통해 ServBay 속 Typesense 인스턴스에 연결할 수 있습니다.
연결 시, ServBay가 제공하는 전용 엔드포인트 정보는 아래와 같습니다:
- Host/Node (호스트/노드):
typesense.servbay.host
- Port (포트):
443
(표준 HTTPS 포트) - Protocol (프로토콜):
https
- API Key (API 키): 2단계에서 지정한
API Key
JavaScript 예시 코드(typesense-js
클라이언트 사용)
먼저, 프로젝트에 Typesense JavaScript 클라이언트 설치:
bash
npm install typesense
# 또는
yarn add typesense
1
2
3
2
3
이후, 코드 내에서 클라이언트를 초기화하고 상호작용 예시:
javascript
import Typesense from 'typesense'
// Typesense 클라이언트 초기화 예시
// ServBay에서 제공하는 전용 도메인 및 보안 프로토콜 사용
const client = new Typesense.Client({
nodes: [{
host: 'typesense.servbay.host',
port: 443,
protocol: 'https'
}],
apiKey: 'YOUR-SUPER-STRONG-API-KEY', // ServBay에서 설정한 API Key로 교체
connectionTimeoutSeconds: 2
})
// 예시: 'books'라는 컬렉션 생성
const bookSchema = {
name: 'books',
fields: [
{ name: 'title', type: 'string' },
{ name: 'author', type: 'string', facet: true },
{ name: 'publication_year', type: 'int32', facet: true }
],
default_sorting_field: 'publication_year'
}
async function setupTypesense() {
try {
// 컬렉션 생성
await client.collections().create(bookSchema);
console.log("Collection 'books' created successfully.");
// 도서 문서 추가
const bookDocument = {
'title': 'The Hitchhiker\'s Guide to the Galaxy',
'author': 'Douglas Adams',
'publication_year': 1979
};
await client.collections('books').documents().create(bookDocument);
console.log("Document added successfully.");
// 검색 실행
const searchParameters = {
'q': 'hitchhiker',
'query_by': 'title',
'sort_by': 'publication_year:desc'
};
const searchResults = await client.collections('books').documents().search(searchParameters);
console.log('Search Results:', searchResults);
} catch (error) {
console.error('Typesense Error:', error);
}
}
setupTypesense();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
자주 묻는 질문(FAQ)
- Q: API Key를 잊어버렸는데 재설정 방법은?
- A: ServBay에서는 매우 간단합니다. Typesense 설정 화면(
Search
->Typesense
)의API Key
항목에 새로운 키를 입력하고 저장(Save) 클릭 후, Typesense 서비스를 재시작하면 됩니다.
- A: ServBay에서는 매우 간단합니다. Typesense 설정 화면(
- Q: Typesense 서비스 구동이 실패하면 어떻게 해야 하나요?
- A: 다음을 확인하세요:
- Typesense 설정 화면 우상단의 로그 아이콘을 눌러 자세한 오류 메시지를 확인하세요. 대부분의 원인을 빠르게 알 수 있습니다.
- 로컬
8108
포트가 이미 다른 프로그램에 의해 사용 중인지 확인하세요. Data Path
로 지정한 폴더가 존재하는지, ServBay가 해당 경로에 읽기/쓰기 권한이 있는지도 점검하세요.
- A: 다음을 확인하세요:
- Q:
http://127.0.0.1:8108
로 바로 API 호출도 가능한가요?- A: 네, 이 포트는 로컬에서 접근 가능합니다. 하지만 추가 설정 없이 바로 HTTPS 암호화와 실제 운영 환경과 흡사한 환경을 제공하는
https://typesense.servbay.host/
사용을 적극 권장합니다.
- A: 네, 이 포트는 로컬에서 접근 가능합니다. 하지만 추가 설정 없이 바로 HTTPS 암호화와 실제 운영 환경과 흡사한 환경을 제공하는
요약
ServBay는 강력한 Typesense 검색 엔진을 macOS 로컬 개발 환경에 매끄럽게 통합해줍니다. 간편한 GUI 설정과 사전 구성된 보안 HTTPS 엔드포인트 덕분에, 개발 시간은 단축되고 검색 UI/UX 구현에 집중할 수 있습니다. 더 이상 복잡한 환경 구축이나 유지보수에 신경 쓸 필요 없이, 뛰어난 검색 경험에만 집중해보세요.