들어가기전
※ 이 문서는 위 사이트의 최종 문서를 기준으로 설명하고 있는 글입니다. 각 버전마다 차이점이 존재할 수 있습니다.
PHP란 무엇인가?
PHP(PHP: Hypertext Proccesser PHP: 하이퍼텍스트 프리프로세서)라는 프로그래밍의 일종입니다.
본래의 기능으로는 동적인 웹 페이지를 만들기 위해 설계되었으며 이를 구현하기 위해서 PHP로
작성된 코드를 HTML 소스 문서안에만 넣으면 PHP 기능이 있는 웹 서버에서 해당 코드를 인식하여
작성자가 원하는 웹 페이지를 생성할 수 있습니다.
웹 시스템(web System)
우리가 매일 사용하고 있는 인터넷에는 인터넷을 구성하는 시스템인 웹 시스템(web system)이 있습니다.
이러한 웹 시스템에는 다음 그림과 같은 클라이언트(client)와 서버(Server)로 구성됩니다.
서버(Server)를 간단하게 설명하자면 웹 서비스를 제공해주는 컴퓨터를 의미하고
클라이언트(Client)란 서버가 제공해주는 웹 서비스를 이용해 사용자 또는 사용자의 기기(브라우저)를
지원 해주는 도구 입니다.
클라이언트 사이드와 서버 사이드
웹 시스템에서의 처리는 클라이언트와 서버 중 어느 쪽에서 수행되는 작업인가에
따라서 다음과 같이 구분할 수 있는데
- 클라이언트 사이드(client-side)
- 서버 사이드(server-side)
클라이언트 사이드(Client-side)란 클라이언트 측에서 수행하는 처리를 의미합니다.
웹 시스템에서 브라우저는 서버에서 수신한 HTML 문서를 해석해 사용자의 화면에 그려주는 역할을 담당합니다. 이러한 클라이언트 사이드에서 자주 사용되는 스크립트 언어로는 JS를 대표적으로 뽑을 수 있습니다.
서버 사이드(Server-side)란 서버 측에서 수행하는 처리를 의미합니다.
브라우저가 요청한 HTML 문서에 서버 사이드 스크립트 언어의 코드가 포함되 있다면, 서버는 이러한 부분을
자신이 처리하고 그 결과를 브라우저에 보내주는 역할을 합니다.
그래서 PHP란?
PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어로 동적인 웹 페이지를 쉽고 빠르게 만들 수 있도록 해주는 데 목적을 두고 있습니다.
PHP로 작성된 코드를 HTML 코드안에 추가한다면, 웹 서버에서는 해당 PHP 코드를 해석한 뒤
동적인 웹 페이지를 생성합니다.
PHP의 특징
PHP에는 다음과 같은 장점을 가지고 있는데
- 주요 운영체제와 대부분의 웹 서버에서 제공
- 다른 프로그래밍 언어보다 직관적으로 코드를 작성할 수 있어, 작성해야 하는 코드량이 적음
- 텍스트 처리에 특화되어 HTML 문서 처리에 적합
반면 단점으로는
- 간단한 사이트를 제작하기 위해 만든 언어로써 복잡한 사이트를 만들때에는 효율적이지 못함
- 보안에 안전하지 않은 언어 구조를 가지고 있음
PHP의 동작 원리
웹 프로그래밍 언어
웹 시스템 중 서버 측에서 실행되는 서버 사이드 언어를 웹 프로그래밍 언어라고도 부릅니다.
이러한 웹 프로그래밍 언어 중 가장 많이 사용되는 언어로는
- PHP
- JSP
- ASP.NET
예전만 해도 많은 상업용 사이트에서 PHP를 사용했지만, 보안 상 취약점으로 인한 JSP나 ASP.NET으로 대체되고 있습니다. 하지만 아직도 소규모 기업이나 개인 사이트에는 대부분의 사이트가 PHP를 사용하고 있는 경우도 드물게 있습니다.
언어 | 운영체제 | 웹 서버 | 제조사 | 속도 | 이식성 |
PHP | 리눅스,윈도우 | Apache 등 | 오픈 소스 | 빠름 | 보통 |
JSP | 리눅스,윈도우 | Tomcat,Jeus 등 | Oracle | 느림 | 좋음 |
ASP.NET | 윈도우 | IIS | Microsoft | 보통 | 나쁨 |
PHP는 웹 시스템인 클라이언트 / 서버 환경에서 동작하는 서버 사이드 스크립트로써
다음 그림에서는 PHP의 동작 원리를 보여주는 그림입니다.
① : 클라이언트가 웹 브라이우를 통해서 웹 서버에 원하는 페이지를 요청합니다.
② : 웹 서버는 클라이언트가 요청한 웹 페이지의 로직 및 데이터베이스와의 연동을 위해 PHP 파서(parser)에 이에 대한 처리를 요청합니다.
③ : 이때 PHP 파서는 데이터베이스와의 연동이 필요하면 데이터베이스와 데이터의 처리를 수행합니다.
④ : PHP 파서는 웹 페이지의 로직 및 데이터베이스와의 작업 처리 결과를 웹 서버로 전달합니다.
⑤ : 웹 서버는 전달받은 데이터로 웹 페이지를 완성하여 웹 브라우저로 응답을 전송합니다.
PHP 문법
PHP의 코드 영역
PHP 코드는 웹 페이지의 어느 부분에서도 위치 할 수 있는 코드입니다.
따라서 PHP 파서가 PHP 코드를 인식하기 위해서 그 시작과 끝을 알려줄 필요가 있습니다.
PHP 코드 영역을 알려주는 방식으로 다음과 같은 여러가지의 스타일이 존재합니다.
// 1. PHP 권장 스타일
<?php...?>
// 2. HTML 스크립트 스타일
<script language = "php"> ... </script>
// 3. SGML 스타일
<?...?>
// 4. ASP 스타일
<% .. %>
PHP 권장 스타일과 HTML 스크립트 스타일은 그 어떠한 상황에서도 정확히 인식될 것 입니다.
하지만 SGML 스타일과 ASP 스타일은 php.ini 설정을 통해 특정 태그를 활성화했을 경우에만
정확히 인식될 것 입니다.
따라서 서버 이식성 문제 등을 피하기 위해서 PHP 권장 스타일을 사용하는 것이 좋습니다.
<?php
echo "Hello World";
?>
'백엔드 > PHP' 카테고리의 다른 글
[PHP] Mariadb Nginx를 이용한 MediaWiki 만들기 (0) | 2022.04.11 |
---|---|
[PHP] PHP 설치 (0) | 2022.02.26 |