정의:
주요 특징:
공식 문서:
정의:
주요 역할:
라우팅:
다양한 URL 경로와 HTTP 메서드(GET, POST, PUT, DELETE 등)에 따라 요청을 처리할 수 있도록 라우트를 설정할 수 있습니다.
미들웨어:
요청과 응답 사이에 원하는 기능(예: 로깅, 인증, 파싱 등)을 추가하여 처리할 수 있는 미들웨어를 쉽게 연결할 수 있습니다.
RESTful API 구축:
간단하게 REST API를 구축할 수 있어, 프론트엔드와 백엔드 간 데이터 통신을 원활하게 합니다.
공식 문서:
이유 | 핵심 설명 |
---|---|
API Key 노출 방지 | React 번들은 누구나 열어 볼 수 있어 REACT_APP_GEMINI_API_KEY 가 그대로 탈취됩니다. Express에 두면 키는 서버 환경 변수에만 존재해 안전합니다. |
CORS & 프록시 | Gemini 도메인이 브라우저에서 직접 호출될 때 CORS 오류가 발생할 수 있습니다. Express가 중계하면 동일 출처 요청으로 처리돼 깔끔하게 해결됩니다. |
스트리밍·웹소켓 | Gemini 스트림 응답을 서버가 받아 압축·필터링·SSE/WebSocket으로 내려주면 브라우저 호환성과 실시간 UX를 동시에 잡을 수 있습니다. |
민감 데이터 처리 | 사용자 메시지를 서버에서 로그/마스킹·감사한 뒤 Gemini로 전달하면 개인정보 유출 리스크를 줄이고, 필요 시 서버 쪽 AI 모델로 후처리할 수도 있습니다. |
추가 비즈니스 로직 | 인증·결제·파일 업로드·캐싱 등 앞으로 붙을 기능을 클라이언트에 남기기엔 보안·성능이 취약합니다. Express가 중앙 허브 역할을 해 주는 편이 확장성이 높습니다. |
버전·트래픽 제어 | A/B 테스트나 Canary 배포 시 서버에서 엔드포인트 라우팅만 바꿔도 전체 앱 업데이트 없이 트래픽을 조절할 수 있습니다. |