API 아키텍처 선택 비교: 개인 개발에서 테스트한 여섯 가지 설정에 대한 기술적 평가

발행: (2025년 12월 29일 오전 07:43 GMT+9)
10 분 소요
원문: Dev.to

Source: Dev.to

번역할 텍스트를 제공해 주시면 한국어로 번역해 드리겠습니다. 현재는 링크만 포함되어 있어 번역할 내용이 없습니다. 텍스트를 복사해서 알려주시면 바로 도와드릴게요.

개요

제가 개인 개발을 처음 시작했을 때는 앱이 대부분 자체적으로 동작할 수 있을 것이라고 생각했습니다.
하지만 데이터 공유, 사용자 인증, 다중 앱 확장과 같은 요구사항이 늘어나면서 적절한 백엔드(API)와 서버리스 인프라를 선택해야 하는 상황이 되었습니다.

Swift‑only, Firebase, FastAPI, 직접 Supabase 접근, Next.js 등 여러 구성을 평가한 결과, React Native × Hono × Cloudflare Workers × Supabase가 최적의 아키텍처라는 결론에 도달했습니다.

이 글에서는 각 옵션의 특성을 객관적으로 정리하고, 채택하거나 배제한 기술적 이유를 설명합니다.

선정 기준

API 아키텍처는 다음 요구사항을 기준으로 평가되었습니다.

기능 요구사항

  • iOS와 Android 모두에서 사용할 수 있는 API
  • 비회원(게스트) 사용자와 인증된 사용자 지원
  • 영구 데이터 저장 (RDB 필요)
  • 여러 작은 애플리케이션에서 공유되는 API

비기능 요구사항

  • 장기 개인 개발에 비용 효율적
  • API 수준에서 무단 접근 방지
  • 멀티테넌트 / SaaS 사용을 위한 확장성
  • 낮은 운영 및 유지보수 비용
  • 서버리스 아키텍처 선호

평가된 아키텍처

각 후보 아키텍처를 아래에서 검토하고, 요구 사항을 얼마나 충족하는지 평가합니다.

2‑1. Swift (iOS Only)

개요
Swift만을 사용해 구축된 네이티브 iOS 앱으로, 데이터는 로컬에 저장됩니다.

평가

장점단점 (요구사항 불일치)
빠른 UI 개발Android 지원 없음 → 크로스‑플랫폼 요구사항 실패
네이티브 실행으로 인한 높은 성능RDB 또는 API 레이어를 포함할 수 없어 데이터‑공유 요구사항 실패
앱 측 보안에만 의존하는 것은 부적절

결과:요구사항 미충족으로 인해 거부

2‑2. Swift + Firebase

개요
Firebase Authentication과 Firestore를 백엔드로 사용합니다.

평가

장점단점 (데이터 요구사항 불일치)
학습 곡선이 낮음Android 지원 없음
SDK 통합으로 빠른 개발Firestore는 RDB 요구사항을 만족하지 않음 (조인 및 정규화가 어려움)
규모가 커질수록 보안 규칙이 복잡하고 취약해짐

결과:RDB 및 확장성 제약으로 인해 거부

2‑3. React Native + Firebase

개요
크로스‑플랫폼 React Native 앱이 Firebase Authentication과 Firestore에 직접 연결됩니다.

평가

장점단점 (API 요구사항 불일치)
크로스‑플랫폼 지원Firestore는 RDB 요구사항을 충족하지 않음
매우 빠른 개발 속도클라이언트가 직접 접근하면 적절한 API 로직 레이어를 구축할 수 없음
감사 로그, 서명 및 고급 보안 로직을 서버 측에서 강제할 수 없음

결과:보안 아키텍처 부족으로 인해 거부

2‑4. React Native + FastAPI + AWS

개요
FastAPI(Python)를 API 레이어로 사용하고, AWS RDS, Lambda, VPC 등 서비스를 활용합니다.

평가

장점단점 (비용 불일치)
엔터프라이즈 수준 보안 설계RDS, VPC, 모니터링 등을 포함하면 개인 개발에 과도함
매우 유연한 비즈니스 로직높은 운영 비용 및 고정 지출
다양한 데이터베이스 옵션 (PostgreSQL, MySQL, Aurora)서버리스라도 API Gateway와 CloudWatch 비용이 누적됨

결과:비용‑성능 균형이 좋지 않아 거부

2‑5. React Native + Supabase (Direct Client Access)

개요
React Native가 Supabase(PostgreSQL + RLS)에 직접 연결됩니다.

평가

장점단점 (서버 레이어 부재)
완전한 RDB 지원비즈니스 로직을 구현할 API 레이어가 없음
Row Level Security(RLS)를 통한 기본 보안클라이언트 측 비밀 관리 위험
여러 애플리케이션이 공유하기엔 충분히 안전하지 않음

결과:보안 및 아키텍처 제한으로 인해 거부

2‑6. React Native + Next.js (Vercel) + Supabase

개요
Next.js API Routes와 Vercel Edge를 이용해 API를 구축하고 KV 캐싱을 사용합니다.

평가

장점단점 (비용·목적 불일치)
Edge Runtime으로 빠른 응답SSR / RSC 청구가 무료 티어를 빠르게 소진
손쉬운 KV 기반 캐싱순수 API 용도로 Next.js를 사용할 때 이점이 제한적
웹과 API의 원활한 통합Workers 대비 API‑중심 워크로드에 비용 효율성이 낮음

결과:비용 효율성 우려로 인해 거부

2‑7. React Native + Hono + Cloudflare Workers + Supabase (최종 선택)

개요
Hono가 Cloudflare Workers에서 API 레이어로 동작합니다. Supabase(PostgreSQL + RLS)를 주요 데이터 저장소로 사용하고, Workers KV를 캐시로 활용합니다.

채택 이유

  1. 보안 요구사항 충족

    • API 레이어에서 JWT 검증, 요청 서명, 속도 제한 구현
    • Supabase RLS와 중첩된 방어 체계
    • 앞단에 Cloudflare WAF 배치 가능
    • 클라이언트에 Supabase anon 키를 배포할 필요 없음
  2. 저비용

    • Workers는 지속적인 트래픽에서도 비용 효율적이며, 사용량 기반 과금 구조를 가짐

(이하 내용은 다음 파트에 이어집니다)

free under ~100 k requests/month

  • KV and caching reduce Supabase query volume
  • Zero fixed operational cost
  1. 높은 확장성

    • 다중 앱 확장에 적합한 API 모듈화
    • Hono는 Express‑like ergonomics와 높은 성능을 제공
    • Serverless scaling으로 인프라 고민 제거
  2. 높은 개발 효율성

    • Workers + Hono는 API‑only 사용에 최적화
    • Simple middleware composition
    • Supabase와 원활한 통합

Result:기술적 및 비기능적 요구사항을 모두 가장 잘 만족하므로 채택

아키텍처 다이어그램

[ React Native App ]  [ Cloudflare Workers (Hono) ]  [ Supabase (PostgreSQL + RLS) ]
                                   |
                                   v
                               [ Workers KV (cache) ]

상세 다이어그램

        |
      HTTPS
        |
[ Cloudflare Workers (Hono API) ]
        |
        +--> JWT Verify -----> [ Supabase Auth ]
        |
        +--> SQL + RLS ------> [ Supabase PostgreSQL ]
        |
        +--> Rate Limit -----> [ Workers KV ]

비교 표

보안, 비용, 그리고 확장성은 이 프로젝트의 가정에 기반한 주관적인 평가입니다.

아키텍처RDB보안비용API 확장성전체 평가
Swift낮음낮음낮음거부됨
Swift + Firebase보통낮음낮음거부됨
RN + Firebase보통낮음보통거부됨
RN + FastAPI + AWS높음높음높음거부됨
RN + Supabase (Direct)보통낮음낮음거부됨
RN + Next.js + Vercel보통보통보통거부됨
RN + Hono + Workers + Supabase높음매우 낮음높음채택됨

Summary

이 문서는 개인 개발 프로젝트를 위해 여러 API 아키텍처를 비교하고, 각 옵션을 기능적 및 비기능적 요구사항에 따라 평가했습니다.

최종 선택인 React Native × Cloudflare Workers × Hono × Supabase는 다음과 같은 이유로 돋보였습니다:

  • 강력한 API 수준 보안 제어
  • Supabase와 행 수준 보안(RLS)을 활용한 신뢰할 수 있는 관계형 데이터베이스 지원
  • Cloudflare Workers를 통한 뛰어난 비용 효율성
  • 유연한 서버리스 확장성
  • 다중 앱 확장에 적합한 구조
Back to Blog

관련 글

더 보기 »