피드로 돌아가기
Dev.toBackend
원문 읽기
Go 기반 Firecracker VM 오케스트레이터의 계층화 API 서버 설계와 AI 협업 패턴 공유
Building a Firecracker VM Orchestrator in Go - Part 2: API Server
AI 요약
Context
기존 VM 오케스트레이션 시스템은 HTTP 핸들러에 비즈니스 로직이 직접 결합되어 있어 gRPC 등 새로운 프로토콜 지원 시 대규모 리팩토링이 필요했다.
Technical Solution
- api 패키지에서 순수 비즈니스 로직만 처리하여 net/http나 JSON 태그 등 전송 계층 개념을 분리함
- transport/httpapi 패키지에서 HTTP 어댑터 역할을 수행하여 요청 디코딩, 서비스 호출, 응답 인코딩을 담당함
- cmd/flames-api에서 전체 구성을 연결하고 세 단계 저장소 모델(in-memory/SQLite/Postgres)을 적용함
- ControllerFilter에 Status와 Limit 필드를 추가하여 ListControllers에 즉시 페이징을 구현함
- 모든 변경 연산은 비동기 수렴을 위해 202 Accepted를 반환하도록 설계함
Impact
새로운 전송 프로토콜 추가 시 비즈니스 로직 재작성 없이 어댑터만 구현하면 된다.
실천 포인트
Go 서비스 개발 시 비즈니스 로직을 순수 함수로 분리하면 HTTP 어댑터 교체가 용이해진다