
CGI는 웹 서버가 요청을 받을 때마다 프로그램을 하나씩 띄우고, 요청이 끝나면 프로그램을 종료합니다. 이 방식은 구현이 간단하다는 장점이 있지만, 대신에 효율이 매우 낮습니다. 반면에, FastCGI는 프로그램 하나로 모든 요청을 처리합니다. (자식 프로그램이 몇 있을 수는 있습니다.)
비유하자면 이렇습니다. 인터넷 브라우저를 처음 띄우는 것은 시간이 오래 걸리지만, 일단 브라우저가 켜진 상태에서 새 창만 여는 것은 시간이 훨씬 덜 걸리지요. 이것이 CGI와 FastCGI의 차이입니다.
IIS라는 것이 있습니다. Microsoft(마이크로소프트)가 만든 웹 서버입니다. 지금까지 IIS는 FastCGI를 지원하지 않았기 때문에, IIS에서 PHP를 돌리려면 IIS가 직접 만든 기술인 ISAPI라는 것을 써야 했습니다. 그러나, ISAPI+PHP의 성능은 FastCGI+PHP보다 나쁩니다.
그래서, IIS의 주인님인 Microsoft(MS)와 PHP 전문 회사인 Zend가, 2006년 초부터 IIS에서 돌아가는 FastCGI 모듈을 만들기 시작했습니다. 그리고 드디어 결과가 나왔습니다.
MS는 iis.net에서 IIS용 FastCGI 확장의 베타를 공개 라이선스로 배포했습니다. 이것으로 사용자는 IIS에서 FastCGI로 PHP를 돌릴 수 있고, 직접 FastCGI 확장을 만들 수도 있습니다.
이것으로 윈도우즈에서 IIS를 통해 PHP를 돌릴 때의 성능 문제가 크게 개선될 것으로 보입니다. PHP의 시장이 더 커지리라는 생각이 들고, 아파치의 점유율 일부를 IIS가 빼앗으리라는 생각도 드네요.
Posted by 랜덤여신

