WebSocket 3

Flask 서버 시작 시간 최적화하기: 지연 로딩(Lazy Loading) 전략

문제 상황  Flask 서버를 운영하면서 가장 큰 문제점 중 하나는 초기 시작 시간이 너무 오래 걸린다는 것입니다. 특히 AI 모델을 사용하는 서버의 경우, cv2, numpy, torch 등 무거운 라이브러리들의 import 시간이 상당합니다.      import cv2import numpy as npimport torchfrom PIL import Imagefrom openai import OpenAI# ... 기타 무거운 라이브러리들      이러한 방식은 서버가 시작될 때 모든 라이브러리를 로드하므로, 단순한 health check나 WebSocket 연결과 같은 가벼운 요청도 서버가 완전히 로드될 때까지 기다려야 했습니다.  해결 방안: 지연 로딩 전략  이 문제를 해결하기 위해 지연 로딩(L..

다중 워커 간 메모리 공유 문제 해결

https://talk7053.tistory.com/13 다중 워커 간 메모리 공유 문제 이해문제 1: 다중 워커 간 connected_clients 상태 불일치현상: WebSocket 클라이언트가 연결된 상태인데도 특정 워커에서 connected_clients에 해당 클라이언트 ID (request.sid)가 없다고 판단합니다.원인:Gunicorn의talk7053.tistory.com다중 워커 간 메모리 공유 문제 해결 방법문제 개요웹소켓과 HTTP를 사용하는 애플리케이션에서 다중 워커를 사용하는 경우, WebSocket 연결을 처리한 워커와 HTTP 요청을 처리하는 워커가 달라질 수 있음.**전역 변수 connected_clients**를 사용해 클라이언트의 sid를 관리하는 구조에서는, 요청을 처리..

React Native 앱에서 Google Cloud Run 서버 초기화 및 WebSocket 안정화 해결

문제 상황앱 초기 실행 시 WebSocket 연결 문제: Google Cloud Run에 배포된 서버가 꺼진 상태에서는 WebSocket connect 이벤트가 동작하지 않음.SID 미수신: 앱에서 WebSocket으로 SID를 받아야 하는데, 서버가 꺼져 있으면 이를 받을 수 없어 정상적인 동작이 불가능.사용자 경험 문제: 서버가 꺼진 상태에서 첫 사용자는 어플을 다시 껐다 켜야 SID를 받을 수 있음.해결 방법앱 초기 진입점에서 서버 상태 확인앱 시작 시 HTTP 요청으로 Google Cloud Run 서버의 /health 엔드포인트에 상태 확인 요청을 보냄.서버가 꺼져 있다면, 이 요청을 통해 서버가 자동으로 시작됨(Google Cloud Run은 첫 요청 시 컨테이너를 활성화).Splash Scr..