본문 바로가기

인공지능

Superglue: API 연결을 자동화하는 오픈소스 데이터 커넥터

728x90
반응형

 

API 통합 작업은 항상 번거롭습니다. 다양한 인증 방식, 복잡한 데이터 변환, 예측 불가능한 오류 처리까지 고려해야 하죠. 특히 레거시 시스템이나 외국어 기반 ERP와 연결할 때는 더욱 까다로워집니다.

Superglue는 이런 문제를 해결하는 오픈소스 API 프록시 및 데이터 커넥터입니다. 원하는 데이터 스키마를 정의하면 API 응답을 자동 변환하고, 스키마 검증을 수행하며, 예상치 못한 오류까지 스스로 수정하는 셀프 힐링(Self-Healing) 기능을 제공합니다.

이번 글에서는 Superglue의 핵심 기능과 사용법을 살펴보고, API 통합을 자동화하는 방법을 알아보겠습니다.

반응형

Superglue란?

Superglue는 API와 데이터 간 연결을 자동화하는 오픈소스 프록시 서버입니다. 주요 역할은 다음과 같습니다.

  • API 프록시 역할: API 요청을 중간에서 가로채어 응답을 원하는 형식으로 변환
  • 자동 데이터 변환: JSONata를 사용하여 API 응답을 정해진 스키마에 맞게 변환
  • 오류 자동 수정: 예상치 못한 데이터 변화나 변환 오류 발생 시 자동으로 수정
  • 다양한 API 연결 지원: 복잡한 레거시 API, ERP, FTP에 저장된 CSV 데이터 처리 등

주요 기능

1. LLM 기반 데이터 매핑

Superglue는 **대형 언어 모델(LLM)**을 활용하여 API 데이터를 자동으로 변환합니다. 예를 들어, 외국어 ERP 시스템에서 받은 데이터를 자동으로 변환하여 원하는 스키마에 맞게 정리할 수 있습니다.

2. API 프록시 기능

Superglue는 실시간으로 API 응답을 가로채어 변환합니다. 이를 통해 기존 API 변경 없이도 원하는 데이터 구조로 응답을 받을 수 있습니다.

3. 파일 처리 및 자동 압축 해제

CSV, JSON, XML 등 다양한 파일 형식을 지원하며, FTP 서버에 저장된 압축된 파일도 자동으로 해제하여 처리할 수 있습니다.

4. 스키마 검증 및 자동 수정

Superglue는 API 응답이 사전에 정의한 데이터 스키마를 따르는지 검증합니다. 만약 변환이 실패하거나 예상치 못한 데이터가 들어오면 자동으로 수정합니다.

5. 유연한 인증 지원

API 키, OAuth, 헤더 인증 등 다양한 인증 방식을 지원하여 복잡한 API 연결도 쉽게 설정할 수 있습니다.

6. 스마트 페이지네이션

페이지네이션 방식이 각기 다른 API를 자동으로 처리하여 모든 데이터를 손쉽게 가져올 수 있습니다.

7. 캐싱 및 재시도 로직

API 호출 시 내장된 캐싱 기능과 재시도 전략을 적용하여 성능을 최적화하고 안정적인 데이터 연동을 보장합니다.


Superglue 사용 방법

Superglue는 클라우드 서비스와 자체 호스팅 버전 두 가지 방식으로 사용할 수 있습니다.

1. 클라우드 버전 사용하기

  1. superglue.cloud에서 가입 후 API 키 발급
  2. Superglue 클라이언트 설치
    npm install @superglue/client
    
  3. API 요청 설정 후 호출
    import { SuperglueClient } from "@superglue/client";
    
    const superglue = new SuperglueClient({
      apiKey: "************"
    });
    
    const config = {
      urlHost: "https://futuramaapi.com",
      urlPath: "/graphql",
      instruction: "get all characters from the show",
      responseSchema: {
        type: "object",
        properties: {
          characters: {
            type: "array",
            items: {
              type: "object",
              properties: {
                name: { type: "string" },
                species: { type: "string", description: "lowercased" }
              }
            }
          }
        }
      }
    };
    
    const result = await superglue.call({ endpoint: config });
    console.log(JSON.stringify(result.data, null, 2));
    

2. 자체 호스팅 버전 사용하기

  1. Docker 컨테이너 실행
  2. docker pull superglueai/superglue
  3. 환경 변수 설정 후 서버 시작
  4. docker run -d \ --name superglue \ --env-file .env \ -p 3000:3000 \ -p 3001:3001 \ superglueai/superglue
  5. 설치 확인
  6. curl http://localhost:3000/health > OK
  7. 대시보드에서 API 설정 생성
  8. http://localhost:3001/
  9. API 요청 실행
  10. import { SuperglueClient } from "@superglue/client"; const superglue = new SuperglueClient({ endpoint: "http://localhost:3000", apiKey: "your-auth-token" }); const config = { urlHost: "https://futuramaapi.com", urlPath: "/graphql", instruction: "get all characters from the show", }; const result = await superglue.call({ endpoint: config }); console.log(JSON.stringify(result.data, null, 2));

728x90

Superglue는 복잡한 API 연동을 간소화하고, 데이터 변환 및 검증을 자동화하는 강력한 오픈소스 솔루션입니다.

API 변경에도 끊김 없는 데이터 연동 가능
LLM 기반 자동 데이터 매핑으로 복잡한 변환 작업 최소화
다양한 인증 방식 및 페이지네이션 자동 처리 지원
자체 호스팅 및 클라우드 서비스로 유연한 배포 가능

복잡한 API와 씨름하는 대신, Superglue를 활용해 API 연동을 자동화하고 개발 시간을 절약해보세요! 🚀

https://github.com/superglue-ai/superglue

 

GitHub - superglue-ai/superglue: Self-healing open source data connector. Use it as a layer between you and any complex / legacy

Self-healing open source data connector. Use it as a layer between you and any complex / legacy APIs and always get the data that you want in the format you expect. - superglue-ai/superglue

github.com

728x90
반응형