개발환경 및 운영배포

개발환경

언어 및 주요 패키지 버전

  • 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를 통해 일관된 개발 및 배포 환경을 제공합니다.

운영배포

컨테이너 이미지 빌드

도커 컴포즈 실행

circle-info

백엔드 서비스 전체 구조는 백엔드 애플리케이션 구조 문서를 참고하세요.

최초 환경설정

  • 시스템 설치 직후 최초 관리자 계정 추가 작업은 백엔드 API 문서 내 sign-up API 를 통해 계정 생성 이후 DB에서 tb_account.role 정보를 ADMIN으로 변경해야합니다.

  • DB 동시 요청 개수를 조정해야 합니다. 아래 쿼리를 통해 최대 연결 개수를 운영 환경에 맞게 조정합니다.

네트워크 구성

네트워크 구성은 아래와 같습니다.

노드 내부 Nginx 라우팅 설정은 아래 파일 참고

/etc/nginx/sites-enabled/diva.confarrow-up-right

/etc/nginx/sites-available/diva.confarrow-up-right

Last updated