화면 로딩중입니다.

점검 중

<모두의 말뭉치>
일부 기능 장애로 인하여 해당 신청이 불가능합니다.

최대한 빠르게 복구할 수 있도록 노력하겠습니다.

* 시스템 이용 장애 문의: 051-927-7111

닫기
모두의 말뭉치>오픈 에이피아이>오픈 에이피아이 소개

개발 지원(오픈 에이피아이)

오픈 에이피아이로 말뭉치를 활용할 수 있습니다.

1. 모두의 말뭉치 오픈 에이피아이 소개

모두의 말뭉치 오픈 에이피아이는 외부 개발자와 사용자들이 국립국어원에서 제공하는 말뭉치를 편리하게 활용할 수 있도록 공개하는 접속 장치(인터페이스)입니다.

오픈 에이피아이 말뭉치 신청을 통해 제공되는 인증키로 모두의 말뭉치 데이터를 자유롭게 활용할 수 있습니다.

2. 말뭉치 신청 방법

개인
  • 1

    회원 가입

    본인 인증 후 회원 가입을 해 주세요.
  • 2

    말뭉치 선택

    내려받을 말뭉치를 선택해 주세요.
  • 3

    말뭉치 신청

    신청 사유와 이용 약정 기간을 입력한 후 신청해 주세요.
  • 4

    관리자 승인

    관리자가 신청 사항을 확인 후 승인합니다. 신청 사항이 불분명할 경우 반려될 수 있습니다.
  • 5

    이용 약정 동의

    관리자 승인이 완료되면 말뭉치 신청 내역에서 약정서를 동의하고 서명해 주세요.
  • 6

    키 활용하기

    발급받은 키로 오픈 에이피아이를 이용해 주세요.
기업
  • 1

    회원 가입

    본인 인증 후 회원 가입을 해 주세요.
  • 2

    공문 접수

    양식을 작성하여 공문으로 접수해 주세요.(양식 내 공문 접수 방법 참고)
  • 3

    말뭉치 선택

    내려받을 말뭉치를 선택해 주세요.
  • 4

    말뭉치 신청

    신청 사유와 이용 약정 기간을 입력한 후 신청해 주세요. (언어정보과-000 등 승인 문서번호 포함)
  • 5

    관리자 승인

    관리자가 신청 사항을 확인 후 승인합니다.
  • 6

    이용 약정 동의

    관리자 승인이 완료되면 말뭉치 신청 내역에서 약정서를 동의하고 서명해 주세요.
  • 7

    키 활용하기

    발급받은 키로 오픈 에이피아이를 이용해 주세요.

3. 말뭉치 오픈 에이피아이 서비스의 정보

모두의 말뭉치 오픈 에이피아이 서비스는 신청하신 말뭉치를 내려받을 수 있는 URL을 제공합니다.
제공받은 URL을 호출 예시 코드와 같이 이용하면 말뭉치를 내려받을 수 있는 웹사이트로 이동합니다.

오픈 에이피아이 요청 주소

https://kli.korean.go.kr/restapi/v1/corpus/download

검색 요청 변수(Request Parameters)

요청 변수, 타입, 허용값, 필수/선택, 설명으로 이루어진 표
요청 변수 타입 허용값 필수/선택 설명
keyVal string 32자리 문자열 필수 인증키

4. 오픈 에이피아이 호출 예시

오픈 에이피아이를 호출하는 방법을 다양한 언어로 구현한 예제입니다.


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URI;
import java.awt.Desktop;

public class OpenApiCaller {

    private static final String API_URL = "https://kli.korean.go.kr/restapi/v1/corpus/download";
    private static final String API_KEY = "제공받은 API KEY를 입력해 주세요.";
    
    public static void main(String[] args) {
        String urlWithApiKey = String.format("%s?keyVal=%s", API_URL, API_KEY);
        try {
            String downloadUrl = callApi(urlWithApiKey);
            openInBrowser(downloadUrl);
        } catch (Exception e) {
            System.err.println("API 호출에 실패했습니다: " + e.getMessage());
            e.printStackTrace();
        }
    }

    // API를 호출하여 다운로드 URL을 반환
    private static String callApi(String urlStr) throws IOException {
        HttpURLConnection httpConnection = (HttpURLConnection) new URL(urlStr).openConnection();
        httpConnection.setRequestMethod("GET");

        int responseCode = httpConnection.getResponseCode();
        InputStream responseStream = (responseCode == 200) ? httpConnection.getInputStream() : httpConnection.getErrorStream();
        
        String response = readBody(responseStream);
        
        if (responseCode != 200) {
            throw new IOException("API 응답 오류: " + response);
        }

        return response;
    }

    // API 응답 스트림을 문자열로 변환
    private static String readBody(InputStream body) throws IOException {
        StringBuilder content = new StringBuilder();
        try (BufferedReader in = new BufferedReader(new InputStreamReader(body, "UTF-8"))) {
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                content.append(inputLine);
            }
        }
        return content.toString();
    }

    // 브라우저로 URL 열기
    private static void openInBrowser(String url) throws Exception {
        URI uri = new URI(url);
        if (Desktop.isDesktopSupported()) {
            Desktop desktop = Desktop.getDesktop();
            if (desktop.isSupported(Desktop.Action.BROWSE)) {
                desktop.browse(uri);
            } else {
                throw new UnsupportedOperationException("BROWSE action is not supported on this platform.");
            }
        } else {
            throw new UnsupportedOperationException("Desktop class is not supported on this platform.");
        }
    }
}

5. 오픈 에이피아이 결과 예시

말뭉치 오픈 에이피아이가 정상적으로 처리됐을 때의 예시 화면입니다.

제공된 URL과 모두의 말뭉치 신청을 통해 발급받은 인증키를 활용하여 예시 코드를 실행하면 위와 같이 말뭉치를 내려받을 수 있습니다.