Qanda Team Blog

API-First Approach로 개발 시작하기

thumbnail

API-First 접근 방식은 제품 개발 과정에서 API 설계를 먼저 진행하는 접근 방식입니다. 일반적으로 기획, 디자인, 서버 개발, API 개발 등의 단계를 거치게 되는데, API-First 접근 방식에서는 API 설계를 서버 개발 이전에 먼저 진행하게 됩니다.

이를 통해 API 설계에 대한 리뷰 및 수정이 가능해지며, 클라이언트와의 연동 단계에서 API 수정 요구사항이 줄어들게 됩니다. 또한, API 설계를 중심으로 개발하는 것이기 때문에 깔끔하고 일관된 API를 개발할 수 있습니다.

API-First 접근 방식에서는 Google AIP 프로토콜 버퍼를 사용하여 API 명세를 작성하고 기술합니다. QANDA 팀은 Kotlin, Go, Python 언어를 사용하고 있기 때문에, 이를 기반으로 프로토콜 버퍼를 사용하여 API를 작성하였습니다.

또한, 이러한 API 설계를 구현하기 위해 qandaapis라는 Monorepo를 사용하였습니다. qandaapis는 gRPC를 사용하여 API 명세를 작성하는 프로젝트입니다. 빌드 후 실제 프로젝트에서 이를 사용하면 gRPC를 구현할 수 있게 됩니다.

또한, Armeria라는 오픈 소스를 사용하여 gRPC 구현을 HTTP와 gRPC 모두에 대응할 수 있게 하였습니다. 따라서, API-First 접근 방식으로 개발을 진행하면 일관된 API를 쉽게 구현할 수 있으며, HTTP와 gRPC 모두에 대응할 수 있게 됩니다.