클라이언트별 통합 비교
클라이언트별 통합 비교 — Python / Java / JS / R
바른은 여러 언어에서 쓸 수 있도록 클라이언트를 제공합니다.
Python(bareunpy), Java, JavaScript(JS), R 클라이언트가 있으며,
검색 색인용 엘라스틱서치 연동도 제공합니다. 모두 같은 LanguageService를 호출합니다.
이 문서는 언어별 라이브러리와 호출 방식을 한 표로 비교하고, 짧은 스니펫으로 시작점을 보여줍니다.
언어별 클라이언트 비교
| 언어 | 라이브러리 | 주 프로토콜 | 권장 encoding_type |
|---|---|---|---|
| Python | bareunpy |
gRPC | UTF32 |
| Java | 바른 Java 클라이언트 | gRPC | UTF16 |
| JavaScript | connect-web 스택 | Connect-RPC | UTF16 |
| R | 바른 R 클라이언트 | gRPC | UTF32 |
왜 인코딩 권장값이 다른가요?
위치(offset)는 클라이언트 언어가 문자열을 다루는 방식에 맞춰야 자연스럽습니다.
파이썬·R은 코드포인트 기반이라 UTF32, 자바는 char가 16비트라 UTF16,
Go·C++의 std::string은 UTF8이 잘 맞습니다. 서버는 요청한 인코딩 기준으로
위치를 일관되게 계산해 돌려줍니다.
언어별 시작 스니펫
import { createConnectTransport } from "@connectrpc/connect-web";
import { createClient } from "@connectrpc/connect";
import { LanguageService } from "./gen/language_service_connect";
const client = createClient(LanguageService,
createConnectTransport({ baseUrl: "https://api.bareun.ai" }));
const res = await client.analyzeSyntax({
document: { content: "안녕하세요.", language: "ko_KR" },
encodingType: "UTF16",
});
공통으로 챙길 것
- 주소: 클라우드는
api.bareun.ai:443(TLS), 설치본·도커 배포본은localhost:5656. - API 키:
koba-로 시작하는 키를 클라이언트에 설정합니다. - 사용자 사전: 어느 언어든
custom_dict_names로 여러 사전을 지정할 수 있고, 먼저 지정한 사전이 우선합니다.
자주 묻는 질문
Q. 바른은 어떤 언어 클라이언트를 제공하나요?
Python(bareunpy), Java, JavaScript(connect-web), R 클라이언트를 제공합니다.
모두 같은 LanguageService를 호출하므로 분석 결과 구조는 동일합니다.
Q. 언어마다 encoding_type을 다르게 써야 하나요?
위치(offset)를 클라이언트의 문자열 처리 방식에 맞추는 게 좋습니다. 파이썬·R은 보통 UTF32,
자바·JS는 UTF16이 자연스럽습니다. 서버는 요청한 인코딩 기준으로 위치를 계산합니다.
Q. JS 클라이언트만 프로토콜이 다른 이유는 무엇인가요?
브라우저는 표준 gRPC를 직접 호출하기 어렵기 때문에, JS에서는 Connect-RPC(connect-web)를 사용합니다. 서버·Java·Python·R 쪽은 gRPC로 호출할 수 있습니다.
Q. 파이썬 클라이언트는 어떻게 설치하나요?
pip install bareunpy로 설치합니다. 설치 후 Tagger에 koba- API 키와 주소
(클라우드는 api.bareun.ai:443, 설치본은 localhost:5656)를 넣어 LanguageService를 호출합니다.
Q. 엘라스틱서치에서도 바른을 쓸 수 있나요?
네. 바른은 Python·Java·JavaScript·R과 함께 엘라스틱서치 연동도 제공합니다. 검색 색인 단계에서 한국어 형태소 분석·토큰화를 적용해 색인 품질을 높이는 용도로 활용합니다.
도움이 되었나요?