콘텐츠로 이동

클라이언트별 통합 비교

클라이언트별 통합 비교 — 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::stringUTF8이 잘 맞습니다. 서버는 요청한 인코딩 기준으로 위치를 일관되게 계산해 돌려줍니다.

언어별 시작 스니펫

from bareunpy import Tagger
tagger = Tagger("koba-XXXX-...", host="api.bareun.ai", port=443)
res = tagger.tags(["안녕하세요. 반갑습니다."])
print(res.pos())   # 형태소/품사 목록
// 바른 Java 클라이언트로 LanguageService 호출
BareunLanguageServiceClient client =
    new BareunLanguageServiceClient("api.bareun.ai", 443, "koba-XXXX-...");
AnalyzeSyntaxResponse res = client.analyzeSyntax("안녕하세요.", "ko_KR");
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",
});
library(bareun)
tagger <- Tagger(apikey = "koba-XXXX-...", host = "api.bareun.ai", port = 443)
res <- tags(tagger, c("안녕하세요. 반갑습니다."))
print(pos(res))

공통으로 챙길 것

  • 주소: 클라우드는 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로 설치합니다. 설치 후 Taggerkoba- API 키와 주소 (클라우드는 api.bareun.ai:443, 설치본은 localhost:5656)를 넣어 LanguageService를 호출합니다.

Q. 엘라스틱서치에서도 바른을 쓸 수 있나요?

네. 바른은 Python·Java·JavaScript·R과 함께 엘라스틱서치 연동도 제공합니다. 검색 색인 단계에서 한국어 형태소 분석·토큰화를 적용해 색인 품질을 높이는 용도로 활용합니다.

도움이 되었나요?