Digestly

Dec 17, 2024

OpenAI DevDay 2024 | Community Spotlight | Stainless

OpenAI - OpenAI DevDay 2024 | Community Spotlight | Stainless

이 대화에서는 오픈 API 사양을 기반으로 클라이언트 라이브러리를 생성하는 맞춤형 SDK의 필요성과 이점에 대해 논의합니다. 오픈 소스 도구인 OpenAPI Generator를 사용하여 생성된 이전 버전의 SDK는 스트리밍 기능이 부족했습니다. 이를 해결하기 위해 맞춤형 코드를 추가하여 고객이 원하는 대로 SDK를 수정할 수 있도록 했습니다. 또한, SDK에 구조화된 출력과 같은 기능을 추가하여 API와의 매핑을 쉽게 했습니다. SDK 개발 시 중요한 결정은 HTTP 요청-응답 주기를 얇게 감싸는 것과 완전히 추상화하는 것 사이의 균형을 찾는 것입니다. 얇은 래퍼를 사용하면 API의 모든 기능을 지원할 수 있으며, 고객이 API 문서를 통해 쉽게 이해할 수 있습니다. 반면, 페이지네이션이나 자동 재시도와 같은 기능은 추상화하여 사용자 경험을 개선할 수 있습니다. 그러나 헤더와 같은 HTTP API의 중요한 세부 사항은 노출되어야 합니다. 자동 코드 생성의 단점은 비효율적인 코드가 생성될 수 있다는 점이며, 이는 오픈 소스 솔루션을 사용하지 않는 이유 중 하나입니다.

Key Points:

  • 맞춤형 SDK는 스트리밍 기능을 포함하여 고객의 요구에 맞게 수정할 수 있습니다.
  • 얇은 래퍼를 사용하면 API의 모든 기능을 지원할 수 있으며, 고객이 쉽게 이해할 수 있습니다.
  • 페이지네이션과 자동 재시도는 추상화하여 사용자 경험을 개선할 수 있습니다.
  • HTTP API의 중요한 세부 사항, 특히 헤더는 노출되어야 합니다.
  • 자동 코드 생성은 비효율적인 코드를 생성할 수 있으므로 주의가 필요합니다.

Details:

1. 🔍 오픈 소스 도구와의 차별점

  • 오픈 소스 도구는 무료로 제공되며, 이미 오픈 API 사양을 활용하여 클라이언트 라이브러리를 생성할 수 있는 다양한 도구가 존재함.
  • 유료 서비스에 대한 비용은 6자리 수에 달할 수 있으며, 이는 오픈 소스 도구와의 차별점을 설명해야 하는 이유가 됨.
  • 오픈 소스 도구는 비용 효율적이지만, 기술 지원이나 보안 업데이트가 부족할 수 있음.
  • 유료 서비스는 더 나은 기술 지원과 보안 업데이트를 제공하지만, 높은 비용이 단점으로 작용할 수 있음.
  • 예를 들어, 오픈 소스 도구인 Postman은 무료로 API 테스트를 지원하지만, 유료 서비스는 더 많은 기능과 지원을 제공함.

2. 🔧 SDK의 커스텀 코드 적용

  • 오픈 API 생성기는 스트리밍 기능이 부족했으나, 이를 보완하여 고객에게 제공함.
  • 생성된 SDK 위에 커스텀 코드를 적용하여 임의의 변경을 가능하게 함.
  • SDK의 초기 제한 사항을 극복하기 위해 커스텀 코드 적용이 필요했으며, 이를 통해 고객 맞춤형 솔루션을 제공할 수 있었음.
  • 커스텀 코드 적용 후, 고객의 특정 요구 사항을 충족시키는 데 성공하여 고객 만족도가 향상됨.

3. 🛠️ 개발자 도구의 진화

  • SDK를 통해 구조화된 출력을 사용하는 사례가 증가하고 있으며, 이는 맞춤형 코드의 좋은 예시로 작용하고 있다.
  • Zod와 pantic 헬퍼는 SDK의 일부로, OpenAI의 기술 작동 방식에 매우 특화되어 있다.
  • 릴리스 시 SDK에 맞춤형 코드를 적용하는 과정에서 여러 브랜치를 사용하고, Git 체리 피킹을 통해 패치를 적용한다.
  • 맞춤형 코드는 패치로 적용되며, 관련 변경 사항이 포함된 풀 리퀘스트가 레포지토리에 생성된다.

4. 📜 API 추상화의 장단점

  • Node.js 0.8에서 처음 API 클라이언트를 작성했을 때, SDK를 REST API 위에 직접 작성해야 했음.
  • API 추상화 수준 결정 시, HTTP 요청-응답 주기 위에 얇은 레이어를 만들지, 아니면 큰 객체 모델 뒤에 완전히 추상화할지를 고민해야 함.
  • 제공하는 서비스에 따라 적절한 추상화 수준이 달라짐. 예를 들어, Vell zi 패키지나 Lang chain 같은 경우 특정 사용 사례에 맞는 추상화를 제공할 수 있음.
  • 첫 번째 파티 SDK를 제공할 경우, API가 제공하는 모든 기능을 지원해야 하며, HTTP API 위에 얇은 래퍼를 만들면 모든 기능을 지원할 수 있음.
  • 얇은 래퍼를 사용하면 고객과 사용자가 API 문서를 보고 API와 SDK의 작동 방식을 빠르게 매핑할 수 있음.
  • 자체 추상화를 만들 경우, 사용자는 API 작동 방식과 추상화된 SDK 사용 방법을 모두 배워야 함.

5. ⚠️ 자동 코드 생성의 함정

  • API의 복잡한 부분을 감추기 위해 SDK를 사용하는 것은 혼란을 초래할 수 있음.
  • HTP 인터페이스에서 유용한 추상화는 페이지네이션과 자동 재시도 기능임.
  • 헤더와 같은 HTP API의 중요한 세부 사항은 추상화할 수 없음.
  • 자동 코드 생성은 나쁜 코드를 생성할 위험이 있으며, 이는 오픈 소스 솔루션을 사용하지 않은 이유 중 하나임.
  • 특히 파이썬과 같은 언어에서는 코드가 '파이써닉'해야 한다는 요구가 있음.
View Full Content
Upgrade to Plus to unlock complete episodes, key insights, and in-depth analysis
Starting at $5/month. Cancel anytime.