2025년 8월 13일 수요일
시스템 아키텍처 구성
이 아키텍처는 크게 세 가지 계층으로 나눌 수 있습니다: 프레젠테이션 계층, 애플리케이션 계층, 그리고 데이터 계층.
1. 프레젠테이션 계층 (클라이언트)
Firebase Authentication: 클라이언트(웹, 모바일 앱 등)에서 사용자의 로그인, 회원가입, 세션 관리 등 인증을 처리합니다. 클라이언트 앱은 Firebase SDK를 사용하여 사용자 인증을 수행하고, 성공적으로 인증되면 ID 토큰을 받습니다. 이 토큰은 사용자가 인증되었음을 증명하는 역할을 합니다.
2. 애플리케이션 계층 (백엔드 서비스)
GCP RestAPI 서비스 (Node.js):
역할: 클라이언트의 요청을 받아 처리하고, FastAPI 서비스 또는 데이터베이스와 통신하는 주요 백엔드 게이트웨이입니다.
기능: 클라이언트로부터 받은 ID 토큰의 유효성을 검증합니다. Firebase Admin SDK를 사용해 토큰의 무결성과 유효성을 확인하고, 유효한 토큰일 경우에만 요청을 허용합니다.
MongoDB 연결: 데이터베이스에 대한 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 수행합니다.
FastAPI (Python):
역할: 머신러닝 모델을 서빙하는 전용 서비스입니다. Python 생태계는 ML 라이브러리(TensorFlow, PyTorch, Scikit-learn 등)가 풍부하여 이 역할에 적합합니다.
기능: Node.js 백엔드로부터 요청을 받으면, 미리 학습된 ML 모델을 사용하여 복잡한 계산이나 예측 작업을 수행하고, 그 결과를 Node.js 서비스에 반환합니다.
3. 데이터 계층
MongoDB:
역할: 사용자 정보, 애플리케이션 데이터 등 비정형 또는 반정형 데이터를 저장하는 NoSQL 데이터베이스입니다.
특징: 유연한 스키마를 가지며, 대량의 데이터를 효율적으로 처리할 수 있어 확장성이 좋습니다.
아키텍처의 흐름 (예시)
사용자 로그인: 사용자가 클라이언트 앱에서 Firebase Authentication을 통해 로그인합니다.
토큰 발급: 성공적으로 로그인하면, Firebase에서 ID 토큰을 클라이언트에게 발급합니다.
API 요청: 사용자가 특정 기능을 요청하면, 클라이언트는 이 ID 토큰을 HTTP 헤더에 담아 Node.js 백엔드로 보냅니다.
토큰 검증: Node.js 백엔드는 Firebase Admin SDK를 사용하여 ID 토큰을 검증합니다.
요청 처리:
일반 데이터 요청: 유효한 토큰이면, Node.js는 MongoDB에서 데이터를 읽거나 씁니다.
ML 기능 요청: 머신러닝 관련 기능이 필요하면, Node.js는 FastAPI 서비스에 요청을 보냅니다.
ML 모델 실행: FastAPI는 요청 데이터를 받아 ML 모델을 실행하고, 예측 결과를 Node.js에 반환합니다.
응답: Node.js는 MongoDB의 데이터 또는 FastAPI의 결과를 조합하여 최종 응답을 클라이언트에게 보냅니다.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기