서버와 애플리케이션 간에 데이터를 주고 받는 방식 또는 컨벤션
웹 서버와 외부 프로그램 간의 인터페이스를 위한 표준
CGI를 사용하면, 웹 서버는 동적 콘텐츠를 생성하거나 클라이언트의 요청에 따라 데이터를 처리할 수 있는 외부 프로그램을 호출할 수 있다.
Perl, PHP, Python, C 등 다양한 프로그래밍 언어로 작성될 수 있으며, 웹 서버에 의해 실행
사용자의 요청에 따라 CGI 스크립트가 실행되고, 스크립트는 실행 결과를 웹 서버로 다시 보내며, 서버는 그 결과를 사용자에게 전달
초기의 웹서버는 정적인 콘텐츠(서버에 저장된 HTML 파일과 같은 고정된 문서)만을 클라이언트에게 전송하는 역할만 했다. 이는 웹페이지를 보는 것만 가능했고, 사용자의 입력을 기반으로 콘텐츠를 생성하거나, 데이터베이스와 상호 작용하는 등의 작업을 수행할 수 없었다.
웹의 사용이 확대되면서 사용자와 상호작용하는 동적인 웹 페이지의 필요성이 증가했다. (사용자의 입력을 받아 처리하고, 그 결과를 사용자에게 돌려주는 기능이). 예를 들어, 양식(form)을 통해 데이터를 제출하고, 서버에서 이 데이터를 처리한 후 사용자에게 특정 결과를 보여주는 과정이 이에 해당.
CGI는 클라이언트(보통 웹 브라우저)로부터 요청을 받으면, 그 요청에 맞는 외부 프로그램(스크립트)을 실행시키는 방식으로 동작
CGI는 1990년대 초반 웹 개발의 초기 단계에서 널리 사용되었지만, 각 요청마다 새로운 프로세스를 처리하는 등 고성능이 필요한 환경에서 효율적이지 않은 문제로 인해 PHP, ASP.NET, Java Servlets와 같은 기술들이 CGI를 대체하여 널리 사용되고 있다.
CGI을 대체하는 기술들은 요청 처리를 위해 새로운 프로세스를 생성하는 대신, 쓰레드를 사용하거나 특정 런타임 환경 내에서 실행되는 코드를 통해 성능을 개선하고, 다양한 추가 기능을 제공한다. 그럼에도 불구하고, CGI는 간단한 웹 애플리케이션 개발이나 레거시 시스템에서 일부 사용되고 있다.
장점
단점
단점
cgi-bin에 넣고 사용?