페이지

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의 결과를 조합하여 최종 응답을 클라이언트에게 보냅니다.

댓글 없음: