[인턴 경험] 파파고 API - 구글 스프레드 시트와 연동하기

bucket ·2023년 11월 7일

👩‍💼인턴

목록 보기
1/3
post-thumbnail

1. 계기

회사에서 한 프로젝트를 진행 중인데, 다양한 언어쌍 쿼리에 대해 태깅을 하는 작업이다보니 파파고를 사용하는 일이 굉장히 많았다.

특히 이번 작업은 독일어, 이탈리아어, 스페인어로 구성되어 있고 쿼리의 주제가 굉장히 생소했기 때문에 하나하나 파파고에 넣어서 번역을 하고, 그 번역에 대해 태깅을 해야해서 굉장히 번거로웠다.

해서 작업자분들의 작업 속도를 높이고, 참여율을 높여보고자 새로운 작업 환경을 만들게 되었다.

2. 네이버 사용 신청하기

네이버 API를 요청하기 위해서 application을 등록해야 한다.

등록 방법은 여기를 참고하면 된다.

application이 등록되면 아래 사진과 같이 확인할 수 있다.
나는 for papago api라는 이름으로 application을 등록했다.

3. 파파고 API 살펴보기

파파고 API 레퍼런스에 따르면 다음과 같다.

  • 요청 URL : https://openapi.naver.com/v1/papago/n2mt

  • 필수 파라미터 : source, target, text

  • 언어 코드: source, target 언어쌍에 대한 언어 코드는 레퍼런스 페이지를 참고하면 된다.

  • 반환 : NMT(Neural Machine Translation) 결과

4. 구글 스프레드시트 - 파파고 API 연동하기

작업 환경은 스프레드시트이기에 파파고 API를 호출하기 위해서 Google Apps Script를 사용해야한다.

방법은 다음과 같다.

1) 원하는 스프레드시트 열기

원하는 스프레드시트를 열고 "확장 기능" 메뉴에서 "Google Apps Script"를 선택한다.

2) 스크립트 작성

Google Apps Script 편집기에서 API 호출 코드를 작성한다.

이는 javascript기반으로 작성해야 한다.

프로젝트 이름을 작성해도 되고 안해도 되고 아무 상관없다.

아까 application 등록할 때 받은 client_id, client_secret을 코드에 넣어야 한다.

내가 사용한 코드는 다음과 같다.

function papagotrans(str_data, source_lang, target_lang) {
  var request_url = "https://openapi.naver.com/v1/papago/n2mt";
  var client_id = ""
  var client_secret = ""
  var text = encodeURIComponent(str_data)
  var payload_data = "source=" + source_lang + "&target=" + target_lang + "&text=" + text;
  var options = {
    'method' : 'post',
    'headers' : {
      "Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8",
      "X-Naver-Client-Id" : client_id,
      "X-Naver-Client-Secret" : client_secret
    },
    "payload" : payload_data
  };
  var request = UrlFetchApp.fetch(request_url, options);
  var ret_temp = JSON.parse(request.getContentText()).message.result.translatedText;
  return ret_temp;
}

3) 스크립트 실행 및 권한 부여

Google Apps Script 편집기에서 코드를 작성한 후 실행을 누르면 다음과 같이 승인 필요 메세지가 뜨게 된다.

권한 부여를 해야 스크립트가 API를 호출할 권한을 갖게 된다.

권한 검토를 누르면 다음과 같이 구글 계정을 선택해야 한다. 스프레드시트를 작업하고 있는 계정을 선택하면 된다.

계정 선택 후 다음과 같은 메세지 창이 뜨게 된다.

처음에 이 화면을 보고 나는 "안전한 환경으로 돌아가기"를 눌렀다가 한참 헤맸다.

이 화면에서 고급 버튼을 눌러주어야 한다.

그럼 다음과 같이 고급 설정을 할 수 있다.
여기서 제목 없는 프로젝트(으)로 이동(안전하지 않음)을 클릭하면 된다.

나는 Google App Scripts에서 제목을 따로 설정하지 않았기 때문에 "제목 없는 프로젝트"라고 뜬다.

만약 프로젝트 이름을 설정했다면 프로젝트 이름(으)로 이동(안전하지 않음)으로 뜰 것이다.

이제 마지막 단계이다. 여기서 "허용" 버튼을 눌러주면 된다.

권한 부여가 정상적으로 되었다면 앞서 선택한 구글 계정으로 이러한 메일이 오게 된다.

4) API 호출

앞서 권한 부여 과정을 다 끝냈다면 스크립트가 API를 호출할 권한을 갖게 되고 우리가 Google App Scripts 편집기에서 정의한 함수를 사용할 수 있게 된다.

이제 스프레드시트로 들어가 앞서 Google Apps Script에서 작성한 사용자 정의 함수를 불러온다.

원하는 열에 다음 코드를 작성하면 API가 호출되고 text 번역 결과가 나오게 된다.

=functionname(text, src, trg)

나는 앞서 파파고 API 사용하기 위한 함수 이름을 "papagotrans"으로 설정했으며, D2 셀에 대해 이탈리아어 -> 한국어 번역을 하기 위해 다음과 같이 코드를 작성했다.

원하는 언어쌍 코드를 넣을 때 주의할 점은 언어쌍 코드의 데이터 타입이 str이기에 쌍따옴표를 붙여야한다는 것이다.

"+" 버튼을 누르거나 쭉 스크롤을 해서 다음과 같이 모든 쿼리에 대한 번역을 반환받는다.

5) 결론

이로써 작업이 훨씬 편해졌다.

파파고 API는 일일 할당량이 있기 때문에 너무 많은 양을 한 번에 호출할 수는 없으나 토큰 당 요금 부과인 chat gpt API에 비한다면 감사한 마음으로 쓰게 된다 🥺

0개의 댓글