Hyperf 심층 분석: HTTP 서비스가 요청을 처리하는 방식

이전 글에서 HTTP 서비스 시작 시 발생하는 과정을 다루어 Hyperf 프레임워크와 HTTP 서비스 초기화 과정에 대해 더 깊이 이해할 수 있게 되었습니다. 오늘은 HTTP 서비스에 접속할 때 요청을 어떻게 처리하고 응답 콘텐츠를 반환하는지에 대해 계속해서 알아보겠습니다. HTTP 서비스가 시작될 때, Hyperf는 Swoole에 요청 이벤트 처리 함수를 등록합니다. HTTP 요청을 받 ...

6월 21일 18:50에 게시됨

웹 아키텍처 유형 및 구축 방법

웹 아키텍처 유형 1. 순수 정적 웹 순수 정적 웹은 사용자와의 상호작용이 없으며, 단순히 정보를 표시하는 용도로만 사용됩니다. 이 때문에 일반적인 웹 취약점이 존재하지 않습니다. 2. 프론트엔드와 백엔드가 분리되지 않은 웹 프론트엔드 코드가 백엔드 프레임워크에 내장되어 있습니다. 사용자가 웹사이트에 접속하면, 백엔드에서 페이지를 렌더링하여 사용자에게 ...

6월 21일 17:08에 게시됨

리눅스에서 PHP 환경과 Composer 설치 가이드

기존 PHP 제거하기 1. PHP 설치 방식 확인 패키지 매니저(Yum/DNF)로 설치된 경우 rpm -qa | grep php php-7.3.4-xxx 형태의 출력이 나오면 패키지 매니저로 설치된 것입니다. 소스 컴파일로 설치된 경우 which php php -i | grep configure 출력에 --prefix=/usr/local/php 같은 경로가 포함되어 있으면 소스 컴파일 설치입니다. 2. PHP 제거 방법 1: 패키지 매니 ...

6월 20일 21:21에 게시됨

PHP PDO 트랜잭션과 오류 처리 전략

PDO 오류 처리 모드의 종류와 특성 PHP의 PDO는 데이터베이스 작업 중 발생하는 오류를 다양한 방식으로 처리할 수 있도록 세 가지 오류 모드를 제공합니다. 각각의 모드는 애플리케이션의 안정성과 디버깅 효율에 직접적인 영향을 미칩니다. PDO::ERRMODE_SILENT: 기본 동작 모드로, 오류가 발생해도 별도의 경고나 예외를 발생시키지 않습니다. 개발자는 각 메서드의 ...

6월 20일 16:29에 게시됨

ThinkPHP 연속 메서드 활용 가이드

1. SQL 직접 사용 2. 연속 메서드 체이닝 select()는 반드시 마지막에 호출해야 하며, 그 외 메서드는 순서에 제약이 없습니다. 2.1 alias - 테이블 별칭 설정 현재 테이블에 별칭을 부여하여 join 등 다른 연속 메서드와 함께 활용합니다. $Dao = M('Member'); $Dao->alias('m')->join('__ORDER__ o ON o.member_id = m.id')->select(); 2.2 join - 테이블 조인 지원하 ...

6월 19일 03:03에 게시됨

Mac에서 PHP 개발 환경 구성: Apache + PHP + MySQL

Mac에서 PHP 개발 환경 설정하기 Mac 시스템에는Apache, PHP, MySQL을 쉽게 구성할 수 있습니다. 이제 차근차근 설정해보겠습니다. 1. Apache 시작하기 Apache를 시작하는 방법은 두 가지가 있습니다. 방법 1: 네트워크 공유 설정 "시스템 환경설정" → "공유"로 이동하여 "인터넷 공유" 옵션을 활성화합니다. 방법 2: 터미널에서 명령어 실행 sudo apachectl start ...

6월 17일 05:37에 게시됨

PHP에서의 메시지 손실 및 중복 처리

1. 원인 분석 메시지 손실 생성자가 메시지를 영구적으로 저장하지 않아 시스템 다운 시 손실 메시지 큐가 영구화 설정이 되어 있지 않음 소비자가 메시지를 받았지만 처리 전에 다운되어 메시지 확인 후 손실 네트워크 오류, 타임아웃, 큐 가득 찰 때 등 중복 소비 소비자의 처리 시간 초과 또는 실패로 인해 메시지 재전송 메시지가 올바르게 확인되지 않아 큐에서 ...

6월 11일 01:43에 게시됨

쇄락 문제: 개념, 재현 및 해결 방법

Nginx와 Workerman과 같은 많은 네트워크 서버는 단일 마스터-다중 워커 프로세스 모델을 사용합니다. 마스터 프로세스는 리스닝 소켓을 생성하고 워커 프로세스를 생성하며 관리합니다. 워커 프로세스는 마스터 프로세스가 fork 시스템 호출을 통해 생성되므로 마스터 프로세스의 리스닝 소켓을 상속받아 각 워커 프로세스가 독립적으로 클라이언트 연결을 수신하고 처리 ...

6월 8일 19:08에 게시됨

PHP로 구현하는 핵심 수학 알고리즘: 피보나치부터 선형 체까지

PHP는 웹 개발에서 널리 쓰이지만, 수학적 계산과 알고리즘 구현에도 충분히 활용할 수 있다. 본문에서는 대표적인 수학 알고리즘들을 PHP로 구현하는 방법을 살펴본다. 보나치 수열의 세 가지 접근법 피보나치 수열은 각 항이 앞 두 항의 합으로 정의되는 대표적인 재귀 수열이다. PHP에서는 성능과 메모리 특성에 따라 다양한 방식으로 구현할 수 있다. 재귀적 접근 ...

6월 3일 18:41에 게시됨

PHP 코드 및 명령 실행 취약점

PHP 코드 및 명령 실행 1. 코드 실행 PHP 코드 실행은 PHP가 제공하는 함수를 통해 직접 또는 간접적으로 PHP 코드를 실행하는 것을 의미합니다. 코드 실행을 유발할 수 있는 주요 함수로는 eval(), assert(), preg_replace(), create_function() 등이 있습니다. 직접 코드 실행 함수 eval() 함수 eval() 함수는 전달된 문자열을 PHP 코드로 실행합니다. <?php // 전 ...

6월 2일 19:56에 게시됨