본문 바로가기

Language/PHP

[PHP] 웹 프로그래밍

반응형
[php] 웹 프로그래밍

php-logo

사전적 의미 그대로 웹은 망, 그물의 형태를 띠고 있는 네트워크이다. 웹 서비스는 클라이이언트-서버 모델을 기본으로 작동하고 있다. 클라이언트는 네트워크에서 정보를 요구하는 쪽을 의미하고, 서버는 요구받은 정보를 제공하는 쪽의 컴퓨터를 의미한다. 예를 들면 우리가 사용하는 웹 브라우저가 클라이언트이며 정보를 제공하고 있는 웹 사이트의 시스템은 서버가 되는 것이다.

c-s

 

웹이 동작되는 주요 요소로 웹 브라우저, 웹 서버가 있다. 일반적으로 사용하는 대표적인 브라우저가 크롬, 익스플로어이다. 웹의 동작은 클라이언트와 서버가 요청과 응답을 주고 받으며 진행된다. 클라이언트에서 서버로 정보를 요구하기 위해 보내는 메시지가 요청(request)이며, 요청을 받은 서버는 요구된 메시지에 대해 HTML이나 이미지 등의 데이터를 응답(response)으로 보낸다. 요청과 응답은 HTTP프로토콜을 지키며 통신한다. 브라우저를 통해 보이는 화면은 HTML으로 구성된 웹 페이지이다.

웹을 통한 서비스들이 발달하여 사용자의 요청을 처리하기 위해서 정적 페이지만으로는 한계가 발생했다. 정적 페이지란 고정된, 변하지 않는 성질을 가진 페이지로 요청에 대해 항상 동일한 응답을 받게된다. 하지만 사용자에 따라 보여줘야 할 페이지가 다른 경우가 있다. 수신 메일 목록이나 결제 내역 등 개인마다 다른 내용을 보여줘야할 필요가 생겼다. 이처럼 동적인 정보를 웹 페이지에 포함시켜 자동으로 웹 페이지를 생성하는 것이 동적 페이지이다. 웹으로 들어오는 요청에 대한 결과물을 만들기 위해 웹 서버가 요청을 받은 뒤 적절한 처리를 하고 그 결과물을 사용자에게 전달해 주는 것이다. 이런 동작을 위해 다양한 웹 프로그래밍 언어가 개발되었고 PHP도 그 중 하나이다.

웹 개발은 간단히 두 부분으로 구성된다. 웹 브라우저로 접속하고눈에 보이는 페이지를 개발하는 프론트엔드, 요청이오면 적절한 처리를 통해 결과값을 만들어 응답을 보내는 백엔드로 나누어진다.

 

CGI

CGI(CommonGateway Interface)는 웹 페이지에 동적인 생명을 불어넣기 위한 기술로, 웹 서버와 백엔드프로그램 사이에서 정보를 주고 받는데 사용되는인터페이스이다. CGI는 웹 서버와 동적 컨텐츠 생성을 맡은 프로그램 사이에서 정보를 주고받는 인터페이스이다. CGI 프로그램은 프로세스를 생성하여 처리하게 되는데 하나의 요청에 대해 한 프로세스가 생성이 되어 그 요청을 처리한 뒤 종료한다. 이 때 10000번의 동적 컨텐츠 생성 요구에 대한 응답을 제공하기 위해 CGI 프로그램은 10000개의 프로세스를 생성해 요청을 처리한다. 프로세스 생성 후, 처리, 종료하는 방식때문에 많은 부하를 발생시키는 문제가 있었다.

이러한 단점들을보완하기 위해 확장 CGI가 발전하게 되었다. 확장 CGI는 매번 프로세스를 생성하는 방식이 아닌 하나의 프로세스를 생성하고 여러 개의 스레드를 사용하여 요청을 처리하여 시스템의 부하를 줄인다. PHP도 확장 CGI에 속하는 기술이다.

 

PHP

PHP는 동적인 페이지를 생성하기 위한 서버사이드 스크립트 언어이다. 오픈소스이고 프로그래밍이 편리하며 이식성이 좋기 때문에 많은 곳에서 사용되고 있다.

php는 CGI처럼 컴파일을 하지않고 웹 서버에서해석을하여그결과를 출려하는 방식이다. 이를 SSI(Server SideInclude) 방식이라고한다.

PHP는문법이 C언어와 비슷하고 실행속도 또한 빠르다. PHP는 웹 모듈이기 때문에 웹 서버 없이 혼자 동작할 수 없다. 웹 서버란 웹 페이지가 들어 있는 파일을 사용자들에게 제공하는 프로그램이다. 보통 HTML 파일을 제공하며 PHP도 동일하게 제공할 수 있다. 정적인 페이지에 대한 요청(HTML, 이미지, 텍스트 등)에 대한 요청은 웹 서버에서 해결하고, 동적인 페이지에 대한 요청은 웹 서버에서 PHP 엔진으로 다시 전달하여 해석된다. 이렇게해서 PHP 페이지가 웹 브라우저에 실행된다. 사용자가 ooo.php에 요청을 보내면 웹 서버는 해당 페이지에 존재하는 php 구문을 php parser로 넘긴다. 이런 요청을받은 php 엔진은 해당 php 페이지를 찾아서 php 언어로 된 부분을 해석한 뒤 php 파일의 실행 결과를 사용자의 웹 브라우저로 전송한다.

php-structure

 

출처 : (그누위즈의) PHP & MySQL 웹 프로그래밍 입문 + 활용 / 유성훈, 정동진, 최주호 공저 / 앤써북 / ISBN 9791185553436

반응형

'Language > PHP' 카테고리의 다른 글

[PHP] psr4  (0) 2019.05.13
[PHP] composer 설치  (0) 2019.05.13
[PHP] autoload  (0) 2019.05.10
[PHP] PDO  (0) 2019.04.23
[PHP] phpstorm code sniffer 설정  (0) 2019.04.23