프로젝트 Bifrost에 대한 내 PR을 릴리즈해 주세요

발행: (2025년 12월 13일 오전 09:26 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

최종 회고 – Bifrost에서 “API 키 활성화/비활성화” 기능 구현

이 이슈를 처음 시작했을 때는 단순한 프론트‑엔드 수정—작은 컴포넌트를 추가하고 백엔드 조정을 몇 번 하는 정도—라고 생각했습니다. 하지만 프로젝트를 더 깊이 살펴보면서 실제로는 프론트엔드, 백엔드, 데이터베이스 레이어를 모두 아우르는 풀‑스택 기능이라는 것을 깨달았습니다.

Bifrost는 주로 Go로 작성된 대규모 고성능 AI 게이트웨이이며, 백엔드 웹 프레임워크를 사용하지 않습니다. 이를 통해 Go로 직접 프로덕션 급 시스템을 설계하는 방법을 배울 수 있는 좋은 기회를 얻었습니다. 프론트엔드 측면에서는 Next.jsShadcn UI를 사용하고 있는데, 두 기술 모두 저에게는 비교적 새로운 것이었고 훌륭한 학습 경험이 되었습니다.

기술 구현

프론트엔드

ui/app/workspace/providers/views/modelProviderKeysTableView.tsx 파일에서 기존 Switch 컴포넌트를 활용해 사용자가 API 키를 삭제하지 않고도 활성화·비활성화할 수 있도록 기능을 구현했습니다. 이 작은 UI 변경만으로도 키에 대한 일시적인 제어가 가능해져 사용자 경험이 크게 향상되었습니다.

백엔드

여러 백엔드 파일을 업데이트하여 데이터 스키마를 확장하고 새로운 enabled 필드를 로직에 반영했습니다.

코어

core/bifrost.go에 로직을 추가해 요청이 비활성화된 키를 건너뛰고, 활성화된 키만 사용하도록 보장했습니다.

데이터베이스

framework/configstore/migrations.go에 수동 마이그레이션 스크립트를 작성해 keys 테이블에 새로운 enabled 컬럼을 추가하고 기본값을 true로 설정했습니다. 이를 통해 프레임워크 수준의 ORM 마이그레이션 도구에 의존하지 않고 데이터 일관성을 유지할 수 있었습니다.

협업 및 리뷰 과정

풀 리퀘스트를 푸시한 뒤 CodeRabbitAI의 자동 피드백과 다른 기여자들의 조언을 따랐습니다. 그들의 제안 덕분에 놓친 부분을 발견하고, 저장소의 코딩 컨벤션을 준수하며, 마이그레이션 로직을 다듬을 수 있었습니다. 이러한 자동화 도구와 커뮤니티 상호작용은 커뮤니케이션 지연을 줄이고 작업 흐름과 코드 품질을 동시에 향상시켰습니다.

결론

이번 기여를 통해 Go가 백엔드, CLI, 마이크로서비스 개발에 얼마나 강력한지 배웠습니다. Bifrost 작업을 통해 프레임워크에 의존하지 않고 웹 애플리케이션 기능을 설계·구현하는 방법—SQL 마이그레이션을 직접 관리하고 전체 스택에 걸쳐 로직을 통합하는 방법—을 익혔습니다.

이 경험은 풀‑스택 개발, 오픈‑소스 협업, 그리고 현대 팀이 고품질 프로덕션 시스템을 유지하는 방식을 이해하는 데 큰 도움이 되었습니다.

Back to Blog

관련 글

더 보기 »