AI API 호출을 하드코딩하는 것을 멈추세요
저는 AI API 호출을 하드코딩하는 것을 그만두었습니다. 하드코딩은 유지보수의 악몽을 초래하기 때문입니다.
처음에는 OpenAI로 시작했습니다. 그러다 한 고객이 Claude를 원했습니다. OpenAI를 위한 함수가 하나 있었는데, 다른 제공업체를 추가하려면 코드를 복사해야만 했습니다.
환경 변수를 사용해 보기도 했습니다. 하지만 코드는 if-else 블록으로 엉망이 되었습니다. 공통 인터페이스가 필요했습니다.
그래서 추상화 계층(abstraction layer)을 구축했습니다. 전략 패턴(Strategy pattern)을 사용했습니다.
작동 방식은 다음과 같습니다:
- 제공업체를 위한 베이스 클래스를 생성합니다.
- 각 API에 대한 특정 클래스를 작성합니다.
- 앱이 베이스 클래스를 호출하도록 합니다.
앱은 어떤 백엔드가 실행되는지 신경 쓰지 않아도 됩니다.
장점:
- 새로운 제공업체를 쉽게 추가할 수 있습니다.
- 모의(mock) 제공업체로 테스트할 수 있습니다.
단점:
- 제공업체가 하나뿐이라면 과할 수 있습니다.
- 각 API만의 고유한 기능을 활용하기 어려워집니다.
- 에러 매핑(error mapping)에 공수가 들어갑니다.
조언: 처음에는 하나의 구체적인(concrete) 제공업체로 시작하세요. 두 번째 제공업체를 추가할 때 리팩터링을 진행하세요.
덕분에 전체 코드를 다시 작성해야 하는 상황을 피할 수 있었습니다.
여러분은 여러 AI 제공업체를 어떻게 관리하시나요?
Source: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-hardcoding-ai-api-calls-and-built-a-simple-abstraction-layer-27me Optional learning community: https://t.me/GyaanSetuAi