번역 API 도입 및 사용
번역 API 사용 및 선정 이유(DeepL API 사용)
번역 API 종류
1. DeepL API Free
- 특징:
- REST API 형식으로 제공되며, 한 달에 최대 500,000자 무료 번역 가능.
- 고품질 번역을 제공하며, JSON 형식의 요청/응답을 사용.
- 공식 Java SDK는 없지만, REST API를 통해 쉽게 통합 가능.
- Spring 통합 방법:
- RestTemplate 또는 WebClient로 REST API 호출.
- API 키 인증을 헤더에 추가하여 요청.
- 장점:
- 높은 번역 품질.
- 공식 문서가 잘 정리되어 있어 개발자가 쉽게 사용할 수 있음.
2. Google Translate API
- 특징:
- Google Cloud Translation API를 통해 제공.
- 유료 기반이지만, 300달러 무료 크레딧이 제공되므로 초기 테스트에 적합.
- RESTful API로 쉽게 통합 가능하며, Spring 애플리케이션과 자연스럽게 연동 가능.
- Spring 통합 방법:
- Google Cloud SDK를 설정하거나, 직접 REST API 호출.
- JSON 형식으로 요청/응답 처리.
- 장점:
- 강력한 언어 지원.
- 안정적이며 대규모 애플리케이션에서 적합.
3. LibreTranslate API
- 특징:
- 완전 무료로 제공되며, 별도의 인증 없이 사용 가능.
- RESTful API 형식으로 제공되어 Spring과 통합 용이.
- 자체 호스팅 가능.
- Spring 통합 방법:
- 간단한 REST API 호출로 번역 결과 가져오기.
- JSON 요청/응답 지원.
- 장점:
- 비용 부담 없이 사용 가능.
- 간단한 사용 사례에 적합.
4. 네이버 파파고 API
- 특징:
- REST API 형식으로 제공되며, 매일 10,000자 무료 번역 가능.
- Spring에서 쉽게 연동 가능한 RESTful 구조.
- 2024년 2월 29일까지 지원.
- Spring 통합 방법:
- REST API 호출 시, Client ID와 Client Secret을 헤더로 전달.
- Spring의 WebClient 또는 RestTemplate로 통합 가능.
- 장점:
- 한국어에 특화된 번역 품질.
- RESTful API 사용으로 Spring과의 호환성 높음.
5. 카카오 번역 API
- 특징:
- REST API 형식으로 제공되며, 매월 10,000자 무료.
- Client ID와 Secret을 사용한 인증 방식.
- JSON 형식으로 요청/응답 처리.
- Spring 통합 방법:
- REST API 호출 시, 헤더에 인증 정보 포함.
- RestTemplate 또는 WebClient를 사용하여 쉽게 연동.
- 장점:
- 한국어 번역 품질이 우수.
- 제한적인 무료 사용으로 간단한 애플리케이션에 적합.
DeepL API Free 선택
- 선택이유: 한달 500,000자 무료로 제일 폭이 크고 개발 집중도를 생각했을때 일일제한보다 한달제한이 유리하다고 생각, 또한 Spring 통합 방식도 타 API랑 큰 차이가 없음
- API 발급 예시API발급 예시 및 API 테스트
- 코드 작성
- properties등록
deepl.api.key=yourApiKey
deepl.api.base-url=https://api-free.deepl.com/v2
- 테스트 API 작성
- text의 언어는 자동판단
- targetLang: 번역 결과 언어
- 테스트 결과(한국어 1글자, 공백 = 1token 으로 취급)
@RestController
public class TranslationController {
private final WebClient webClient;
private final String apiKey;
public TranslationController(@Value("${deepl.api.key}") String apiKey,
@Value("${deepl.api.base-url}") String baseUrl,
WebClient.Builder webClientBuilder) {
this.apiKey = apiKey;
this.webClient = webClientBuilder.baseUrl(baseUrl).build();
}
@GetMapping("/translate")
public String translate(
@RequestParam String text,
@RequestParam(defaultValue = "EN") String targetLang) {
// DeepL API 호출
return webClient.post()
.uri(uriBuilder -> uriBuilder.path("/translate")
.queryParam("auth_key", apiKey)
.queryParam("text", text)
.queryParam("target_lang", targetLang)
.build())
.retrieve()
.bodyToMono(String.class)
.block();
}
}
참고
https://velog.io/@king/deepl-api
DeepL API로 번역하기
DeepL API Free에 가입하고, 그 이후 REST API 사용하는 방법을 스크린샷 위주로 남겨보았습니다.
velog.io
'기타' 카테고리의 다른 글
[기타] SW역량 테스트 B형 합격 후기 및 삼성 갤럭시 버즈 후기 (0) | 2025.02.05 |
---|---|
GIT 명령어 동작원리 (0) | 2024.08.16 |
[SSAFY 12기 전공 서울 합격 후기] 코딩 테스트, 면접 준비과정 & 졸업 (2) | 2024.07.10 |
[POSTMAN] POSTMAN 이미지 업로드 에러 (0) | 2023.08.26 |