아파치 웹서버의 동작 원리
- 클라이언트가 접속시 하나의 프로세스를 만들고 그안에서 하나의 쓰레드를 만들어 응답
- 쓰레드 단위로 업무를 처리

PHP의 동작 원리

- PHP는 아파치라는 웹서버프로그램과 연동하여 동작
- 요청처리는 사용자가 문서를 요구할때 APACHE는 HTML문서를 처리하고 php엔진은 php문서를 처리한다.
- 웹 업무를 나누어 처리한다.
  - PHP (PHP Hypertext Preprocessor) Server-side HTML embeded 스크립트 언어 
  - PHP는 서버에서 실행되며 HTML을 포함하는 스크립트 언어
  - HTML을 포함하고 있기 때문에 HTML 내용을 PHP확장자로 저장하여도 아무 지장 없이 사용할 수 있다.

PHP는 CGI(Common Gateway Interface)인가? 
- PHP는 완전한 CGI는 아니지만 아니라고 할수 도 없다.

CGI는?
- CGI는 보통 웹서버와 분리되어 있는 프로그램 
- 일반적으로 웹서버로 요청이 들어오면 CGI프로그램을 실행하여 하나의 프로세스를 생성하고 그 처리결과를 웹서버로 전송한후 프로세스가 종료되는 형식
- 100개의 요청이 들어오면 CGI프로세스가 100개 생성되어 100개가 소멸

PHP는?
- CGI와는 달리 아파치 웹서버에 모듈로 장착되어 있다.(웹서버와 가까이 붙어있음) 
- 따라서 매회 실행시마다 프로세스가 생성되는 CGI와 달리 하나의 프로세스에 여러개의 쓰레드를 생성하여 처리

프로세스 vs 쓰레드

- 프로세스는 각각의 별도로 시스템 자원을 소비
- 1개의 프로세스가 메모리 1메가바이트를 소비한다면 100개의 경우 100메가 바이트 메모리를 소비
- 그러나 쓰레드는 서로 시스템자원 공유
- 따라서 100개라고 해서 100메가 바이트를 소비하는거이 아니라 그보다 훨씬적은 메모리를 소비함

그래서 프로세스 방식인 CGI보다 쓰레드 방식인 PHP가 성능이 우수합니다.


블로그 이미지

JOKERGT

타고난 능력이란, 자연계의 초목과 같아 항상 탐구로써 가지를 쳐줘야 한다. https://www.linkedin.com/in/datajoker1

,