콘텐츠로 이동

나만의 클라이언트

API 접근 방법

바른의 API에 접근하기 위해서는 기본적으로 grpc를 이용해야 합니다. grpc는 구글에서 만든 원격 프로시저 호출 체계입니다. 이것은 protobuf 메시지를 기반으로 활용하기 때문에 데이터는 압축되어서 전달됩니다. 또한 HTTP/2 규격을 사용하기 때문에 빠른 속도를 보장할 뿐 아니라 양방향 스트림, 흐름제어, 비동기모드 등을 사용할 수 있습니다. 무엇보다도 서버는 매우 간결한 구조에서 동작할 수 있고, 쉽게 쿠버네티스와 같은 플랫폼에 이식할 수 있습니다. 클라이언트는 C++, 자바, 고(Go), 파이썬, C#, PHP, 자바스크립트 등을 지원하기 때문에 언어에 대한 제약없이 마음대로 쓸 수 있습니다.

파이썬, 자바, 자바스크립트, R 등 기본적으로 제공되는 라이브러리들은 모두 grpc를 사용해서 호출을 하고 있습니다.

왜 필요할까요?

  • 기본적으로 지원하지 않은 언어를 위한 클라이언트를 새롭게 만들 경우가 있습니다.
  • 닷넷, GoLang, C++ 라이브러리를 만들 수 있습니다.
  • 또는 기본 라이브러리가 추구하는 방식보다 더 단순하거나 더 고급스러운 방식이 필요할 수도 있습니다.

나만의 클라이언트 만들기

배포판은 바른와 관련된 2가지 서비스에 대한 규격을 제공하고 있습니다. shared/proto 폴더에 API 규격이 포함되어 있습니다. - 형태소 분석기를 사용하는 경우에는 4개의 proto 파일이 존재하고, - 바른 맞춤법 검사기를 사용하게 되면 모두 5개의 파일이 존재합니다.

여기에는 바른 맞춤법 검사기를 포함하여 5개의 파일을 보여줍니다.

$ find bareun-v3.0.0/shared/proto
bareun-v3.0.0/shared/proto/
bareun-v3.0.0/shared/proto/bareun
bareun-v3.0.0/shared/proto/bareun/language_service.proto
bareun-v3.0.0/shared/proto/bareun/lang_common.proto
bareun-v3.0.0/shared/proto/bareun/dict_common.proto
bareun-v3.0.0/shared/proto/bareun/custom_dict.proto
bareun-v3.0.0/shared/proto/bareun/revision_service.proto

이를 각 언어에 맞게 사용하려면 각 언어에 맞는 새로운 grpc 클라이언트용 라이브러리를 빌드해서 사용해야 합니다. 이 과정을 수행하려면 반드시 protoc라는 도구가 필요합니다. protoc는 구글 protobuf 메시지를 컴파일활 수 있는 기본 개발 환경에 포함되어 있습니다. 또한 각 언어에 맞는 grpc 라이브러리 및 소스를 생성해 줄 수 있는 grpc 플러그인도 설치해야 합니다.

각 언어별 자세한 빌드 환경은 언어별 빌드환경을 소개하는 페이지를 참고하시고 필요한 언어를 선택하면 됩니다.

만드는 절차

graph TD
    A[protoc 복사] -->B(protoc 컴파일)
    B --> C[stub 코드]
    C --> D[나만의 코드 생성]
    D --> E[테스트 및 활용] 

도움이 되었나요?