개인프로젝트 3

[aws ec2, crontab]자동 재배포 도입 후기

개요EC2 서버가 부하로 인해 MySQL과의 연결이 끊어지는 문제를 해결하기 위해 주기적으로 서비스 상태를 확인하고, 필요 시 자동으로 재배포하는 스크립트를 도입하였습니다. 이 과정에서 monitor_deploy.sh를 작성하고, cron을 활용하여 주기적으로 실행하도록 설정하였습니다.1. monitor_deploy.sh 스크립트 작성내용#!/bin/bash# 설정URL="http://localhost:5000" # 헬스체크할 URLDEPLOY_SCRIPT="/home/ubuntu/deploy_test/scripts/deploy.sh" # 실행할 배포 스크립트LOG_FILE="/home/ubuntu/deploy_test/monitor.log" # 로그 파일..

개인프로젝트 2025.02.10

[diykitten] 사용하고 있는 파이썬 라이브러리 정리

Python을 사용하여 다양한 기능을 개발하면서 여러 개의 모듈을 추가하게 되었다. 이미지 처리, PDF 생성, S3 파일 관리, 웹 API 개발 등 여러 요소를 다루면서, 각 모듈이 프로젝트에서 어떤 역할을 하는지 정리하고, 왜 추가하게 되었는지 설명하고자 한다.1. Flask - 웹 API 개발✨ 추가 이유웹 API를 통해 클라이언트와 서버 간 데이터를 주고받기 위해 Flask를 사용했다. Flask는 가볍고, 빠르게 REST API를 만들 수 있는 프레임워크로, 프로젝트의 핵심 백엔드 역할을 한다.🔍 사용 예시@app.route('/generate-png/', methods=['GET'])def generate_png_api(file_id): return send_file(png_path, ..

개인프로젝트 2025.02.10

[fabricjs]"Trying to initialize a canvas that has already been initialized"

개요Fabric.js를 React 환경에서 사용하다 보면 fabric: Trying to initialize a canvas that has already been initialized. Did you forget to dispose the canvas? 오류를 만날 수 있습니다. 이 오류는 Fabric.js에서 동일한 Canvas를 여러 번 초기화하려고 할 때 발생합니다. 본 글에서는 해당 오류가 발생하는 원인과 해결 방법을 정리합니다.오류 발생 원인Fabric.js는 캔버스를 생성하고 관리하는 라이브러리로, React의 StrictMode에서 두 번 렌더링되는 경우가 있습니다. 이에 따라 useEffect 훅 내부에서 new fabric.Canvas()를 실행하면 두 번 생성되면서 위 오류가 발생할 ..

개인프로젝트 2025.02.08