목록Study (67)
자바칩
Nginx란? (필수 개념 요약)Nginx(엔진엑스)는 초고성능 웹 서버입니다.보통 아래의 용도로 사용됩니다.역할설명📁 정적 파일 서버HTML, JS, CSS, 이미지 등을 브라우저에 빠르게 서빙🔁 Reverse Proxy브라우저 요청을 Flask/Django/Node 등 백엔드 서버에 중계🔐 SSL TerminationHTTPS 처리를 대신 수행🔄 로드밸런서다수의 서버에 요청 분산 목표역할담당React 앱 (빌드된 HTML/CSS/JS)Nginx가 직접 서빙/dashboard, /admin 같은 경로Nginx가 index.html 반환 (SPA fallback)/api/... 같은 API 경로Nginx가 Flask로 프록시 전달 (Reverse Proxy)FlaskAPI 응답만 처리 실무에서 보..
docker build -t 이미지명 .docker stop 컨테이너명(또는 컨테이너ID)docker rm 컨테이너명(또는 컨테이너ID)docker run -d --restart=always --name 컨테이너명 -p 포트번호:포트번호 이미지명
1. 기존에 실행했던 컨테이너 확인docker ps -a 결과 예시) CONTAINER ID IMAGE STATUS NAMESf47778d4143c project-server Exited (0) 2 hours ago project-container 여기서 STATUS가 Exited면 꺼진 상태입니다.2. 꺼진 컨테이너 다시 실행docker start 예시)docker start project-container ordocker start f47778d4143c 이 명령은 이미 생성된 컨테이너를 재시작하는 것이므로 다시 docker run 할 필요는 없습니다.✅ 자동 재시작 옵션 사용 (원할 경우)컨테이너를 처음 만들 때 아래처럼 실..
1. React 앱 빌드 및 Flask에서 제공하기Flask는 React 앱을 정적 파일로 서빙할 수 있습니다. 이를 위해 React 앱을 먼저 빌드해야 합니다.React 앱 빌드cd frontend # React 프로젝트 디렉토리npm installnpm run build결과물은 frontend/build 디렉토리에 생성됩니다.2. Flask에서 React 앱 서빙Flask에서는 React의 build 폴더를 정적(static) 및 템플릿(html)으로 서빙하도록 설정합니다.예시로 3005번 포트를 사용하겠습니다.예시: app.py from flask import Flask, send_from_directoryimport osapp = Flask(__name__, static_folder="front..
curl -X {요청방법} http://localhost:{포트}/{테스트할 API} -H {헤더} {}는 제외하고 작성 요청방법: GET/POST/PUT/DELETE포트: 직접 설정한 포트테스트할 API: 직접 작성한 API헤더 예시: "Authorization: Bearer 토큰"
✅ Flask는 동기(synchronous) 프레임워크지만, 동시에 여러 사용자가 접근해도 문제없습니다.다만, **“어떤 방식으로 서버를 구동하느냐”**에 따라 병렬 처리 방식이 달라집니다. 🔍 1. Flask는 기본적으로 "동기 + 단일 쓰레드"입니다기본 flask run 개발 서버는 단일 프로세스 + 단일 쓰레드즉, 동시에 여러 요청이 오면 순차적으로 처리됩니다 → 실서비스용 아님❗ 그래서 Flask는 반드시 WSGI 서버와 함께 사용해야 합니다:WSGI 서버역할Gunicorn프로세스 또는 쓰레드 풀을 만들어 병렬 요청 처리uWSGI고성능 멀티프로세스 서버mod_wsgiApache 연동용WaitressWindows에서 많이 사용🔧 2. Gunicorn 예시 (실서비스 환경)gunicorn -w 4..
MongoClient 인스턴스는 내부적으로 "연결 풀(connection pool)"을 관리하므로한 번만 생성해서 여러 곳에서 동시에 사용하는 것이 바로 정석이다. ✅ MongoClient는 쓰레드/프로세스 세이프한가?질문답변하나의 MongoClient 인스턴스를 여러 쓰레드에서 공유해도 되는가✅ Yes (완전 지원됨)Flask, FastAPI, Celery, 다수의 사용자 요청에서 동시에 사용해도 되는가✅ Yes연결 병목은 생기지 않는가❌ 일반적인 수준에서는 생기지 않음 (연결 풀 자동 관리됨)🔧 작동 방식: 내부 Connection PoolMongoClient는 MongoDB 서버와의 연결을 관리하는 커넥션 풀(pool of sockets) 을 유지합니다.기본적으로 100개의 연결을 풀로 유지하며,..
🧱 기본 용어 차이 정리용어설명비유Docker컨테이너 기술을 제공하는 플랫폼이미지를 빌드하고, 컨테이너를 실행함주방, 조리 도구 전체이미지 (Image)실행 가능한 애플리케이션을 패키징한 템플릿(코드 + 환경 + 설정 포함)요리법, 레시피컨테이너 (Container)이미지로부터 실행된 실제 인스턴스이미지 기반으로 메모리 위에 떠 있는 프로세스실제로 만들어진 요리🔍 상세 예시로 이해해보기🍳 1. 이미지 (Image)도커 이미지 = 애플리케이션을 실행하기 위한 모든 요소(코드, 라이브러리, 환경 등)를 포함한 불변 템플릿예: python:3.11, nginx:latest, login-server:v20250418.3.6.20📦 "이미지"는 실행되지 않는 정적 파일. docker build 로 만들고,..