개발환경 및 운영배포
개발환경
언어 및 주요 패키지 버전
Python3.10
웹 프레임워크: FastAPI, Starlette
비동기 IO: aiohttp, uvicorn, uvloop
데이터베이스: SQLAlchemy
데이터 처리: pandas, numpy, scikit-learn, scipy
이미지 및 비디오 처리: OpenCV, moviepy, imageio
기타: requests, cryptography, celery
도커 컨테이너 설정
기본 이미지: python:3.10-slim을 사용하여 경량화된 Python 환경을 제공합니다.
시스템 의존성: apt-get을 통해 다양한 시스템 라이브러리 및 도구를 설치합니다. 예를 들어, ffmpeg, libgdal-dev, libjpeg-dev 등이 포함되어 있습니다.
환경 변수: GDAL 관련 환경 변수가 설정되어 있습니다 (CPLUS_INCLUDE_PATH, C_INCLUDE_PATH).
애플리케이션 실행: uvicorn을 사용하여 FastAPI 애플리케이션을 실행합니다.
이 환경은 주로 비동기 웹 애플리케이션 개발과 데이터 처리, 이미지 및 비디오 처리에 적합하게 구성되어 있습니다. Docker를 통해 일관된 개발 및 배포 환경을 제공합니다.
운영배포
컨테이너 이미지 빌드
도커 컴포즈 실행
백엔드 서비스 전체 구조는 백엔드 애플리케이션 구조 문서를 참고하세요.
최초 환경설정
시스템 설치 직후 최초 관리자 계정 추가 작업은 백엔드 API 문서 내 sign-up API 를 통해 계정 생성 이후 DB에서 tb_account.role 정보를 ADMIN으로 변경해야합니다.
DB 동시 요청 개수를 조정해야 합니다. 아래 쿼리를 통해 최대 연결 개수를 운영 환경에 맞게 조정합니다.
네트워크 구성
네트워크 구성은 아래와 같습니다.
노드 내부 Nginx 라우팅 설정은 아래 파일 참고
/etc/nginx/sites-enabled/diva.conf
/etc/nginx/sites-available/diva.conf

Last updated