cli
-
1. 문제는 "느린 코드"가 아니라 "워커 점유 시간"이다PHP 웹 애플리케이션에서 요청은 보통 nginx를 거쳐 PHP-FPM worker로 전달된다. FPM worker 하나는 한 번에 요청 하나를 처리한다. 응답을 돌려주기 전까지 그 worker는 다른 요청을 받을 수 없다.동시 처리 가능한 요청 수= 사용 가능한 FPM worker 수문제는 평균 응답 시간이 아니다. 문제는 일부 요청이 갑자기 오래 걸리는 경우다.예를 들어 평소 50ms로 끝나던 엔드포인트가 특정 입력에서 2분 동안 실행된다고 해보자. 대량 메일 발송, 외부 API 폴링, 엑셀 리포트 생성, 대규모 데이터 집계 같은 작업이 여기에 해당한다.이런 요청이 몇 개만 겹쳐도 FPM worker가 오래 묶인다. 그러면 원래 빠르게 끝날 수..
Laravel - 큐1. 문제는 "느린 코드"가 아니라 "워커 점유 시간"이다PHP 웹 애플리케이션에서 요청은 보통 nginx를 거쳐 PHP-FPM worker로 전달된다. FPM worker 하나는 한 번에 요청 하나를 처리한다. 응답을 돌려주기 전까지 그 worker는 다른 요청을 받을 수 없다.동시 처리 가능한 요청 수= 사용 가능한 FPM worker 수문제는 평균 응답 시간이 아니다. 문제는 일부 요청이 갑자기 오래 걸리는 경우다.예를 들어 평소 50ms로 끝나던 엔드포인트가 특정 입력에서 2분 동안 실행된다고 해보자. 대량 메일 발송, 외부 API 폴링, 엑셀 리포트 생성, 대규모 데이터 집계 같은 작업이 여기에 해당한다.이런 요청이 몇 개만 겹쳐도 FPM worker가 오래 묶인다. 그러면 원래 빠르게 끝날 수..
2026.06.26 -
개요PHP 애플리케이션은 같은 코드베이스라도 항상 같은 방식으로 실행되지 않는다. 웹 요청은 보통 PHP-FPM worker가 처리하고, php artisan 같은 명령은 CLI 프로세스가 처리한다. 로컬 개발에서 사용하는 php artisan serve는 또 다른 실행 방식인 PHP built-in server를 사용한다.이 차이를 이해하려면 먼저 SAPI를 분리해서 봐야 한다. SAPI는 PHP 엔진이 외부 세계와 만나는 실행 인터페이스다. 즉 PHP 코드 자체가 달라지는 것이 아니라, PHP 엔진에 요청을 어떻게 전달하고 결과를 어디로 내보낼지가 달라진다.1. SAPI란?SAPI는 PHP 문맥에서 Server API, 또는 Server Application Programming Interface로 ..
PHP - SAPI개요PHP 애플리케이션은 같은 코드베이스라도 항상 같은 방식으로 실행되지 않는다. 웹 요청은 보통 PHP-FPM worker가 처리하고, php artisan 같은 명령은 CLI 프로세스가 처리한다. 로컬 개발에서 사용하는 php artisan serve는 또 다른 실행 방식인 PHP built-in server를 사용한다.이 차이를 이해하려면 먼저 SAPI를 분리해서 봐야 한다. SAPI는 PHP 엔진이 외부 세계와 만나는 실행 인터페이스다. 즉 PHP 코드 자체가 달라지는 것이 아니라, PHP 엔진에 요청을 어떻게 전달하고 결과를 어디로 내보낼지가 달라진다.1. SAPI란?SAPI는 PHP 문맥에서 Server API, 또는 Server Application Programming Interface로 ..
2026.06.26 -
1. 프로젝트 클론git clone [project url]2. 프로젝트 디렉토리로 이동cd [project name]3. 가상환경 생성 및 활성화# macOS/Linuxpython3 -m venv venvsource venv/bin/activate# windowspython -m venv venvvenv\Scripts\activate4. 필요한 라이브러리 설치pip install -r requirements.txt5. django 설정 파일 생성cp .env.example .env6. db 마이그레이션python manage.py migrate7. 개발 서버 실행python manage.py runserver
Django - 장고 프로젝트 git clone 후 실행1. 프로젝트 클론git clone [project url]2. 프로젝트 디렉토리로 이동cd [project name]3. 가상환경 생성 및 활성화# macOS/Linuxpython3 -m venv venvsource venv/bin/activate# windowspython -m venv venvvenv\Scripts\activate4. 필요한 라이브러리 설치pip install -r requirements.txt5. django 설정 파일 생성cp .env.example .env6. db 마이그레이션python manage.py migrate7. 개발 서버 실행python manage.py runserver
2023.09.25