PHP 개요 - swkim0128/PARA GitHub Wiki
우리가 매일 사용하고 있는 인터넷을 구성하는 시스템을 웹 시스템(web system)이라고 합니다.
이러한 웹 시스템은 다음 그림과 같이 클라이언트(client)와 서버(server)로 구성됩니다.
서버(server)란 간단히 말해 웹 서비스를 제공하는 컴퓨터를 의미합니다.
클라이언트(client)란 서버가 제공하는 웹 서비스를 이용하는 사용자 또는 사용자의 기기(브라우저)를 의미합니다.
웹 시스템에서의 처리는 클라이언트와 서버 중 어느 쪽에서 수행되는 작업인가에 따라 다음과 같이 구분할 수 있습니다.
- 클라이언트 사이드(client-side)
- 서버 사이드(server-side)
클라이언트 사이드(client-side)란 클라이언트 측에서 수행하는 처리를 의미합니다.
웹 시스템에서 브라우저는 서버에서 수신한 HTML 문서를 해석하여 여러분의 화면에 표시해 줍니다.
이러한 클라이언트 사이드에서 자주 사용하는 스크립트 언어에는 자바스크립트(JavaScript)가 있습니다.
서버 사이드(server-side)
란 서버 측에서 수행하는 처리를 의미합니다.
브라우저에서 요청한 HTML 문서에 서버 사이드 스크립트 언어의 코드가 포함되어 있으면, 서버는 이 부분을 자신이 처리하고 그 결과를 브라우저에 보내 줍니다.
이러한 서버 사이드에서 자주 사용하는 스크립트 언어가 바로 **==PHP==**입니다.
PHP는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어입니다.
PHP로 작성된 코드를 HTML 코드 안에 추가하면, 웹 서버는 해당 코드를 해석하여 자동으로 HTML 문서를 생성합니다.
따라서 PHP를 사용하면 동적으로 빠르게 HTML 문서를 만들 수 있습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>PHP Syntax</title>
</head>
<body>
<?php
echo "PHP 수업에 잘 오셨습니다!"
?>
</body>
</html>
PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어
PHP는 동적 웹 페이지를 쉽고 빠르게 만들 수 있도록 해주는 데 그 목적이 있습니다.
PHP로 작성된 코드를 HTML 코드 안에 추가하면, 웹 서버는 해당 PHP 코드를 해석하여 동적 웹 페이지를 생성합니다.
PHP의 장점
- 주요 운영체제와 대부분의 웹 서버에서 지원합니다.
- 다른 프로그래밍 언어보다 직관적으로 코드를 작성할 수 있어서, 작성해야 하는 코드의 양이 적습니다.
- 텍스트 처리에 특화되어 있어 HTML 문서 처리에 적합합니다.
PHP의 단점
- 간단한 사이트를 제작하기 위해 만든 언어라서 복잡한 사이트를 만드는 데는 효율적이지 못합니다.
- 보안에 안전하지 않은 언어 구조를 가집니다.
웹 시스템 중 서버 측에서 실행되는 서버 사이드 언어를 웹 프로그래밍 언어라고도 부릅니다.
이러한 웹 프로그래밍 언어 중 많이 사용되는 언어는 다음과 같습니다.
- PHP
- JSP
- ASP.NET
예전에는 많은 상업용 사이트가 PHP를 사용하였지만, 보안상의 취약성으로 인해 JSP나 ASP.NET으로 대체되고 있습니다. 하지만 소규모나 개인 사이트는 대부분의 사이트가 PHP를 사용하여 제작되고 있습니다.
PHP는 웹 시스템인 클라이언트 / 서버 환경에서 동작하는 서버 사이드 스크립트 언어입니다.
다음 그림은 PHP의 동작 원리를 간략히 보여줍니다.
① : 클라이언트가 웹 브라우저를 통해 웹 서버에 원하는 웹 페이지를 요청합니다.
② : 웹 서버는 클라이언트가 요청한 웹 페이지의 로직 및 데이터베이스와의 연동을 위해 PHP 파서(parser)에 이에 대한 처리를 요청합니다.
③ : 이때 PHP 파서는 데이터베이스와의 연동이 필요하면 데이터베이스와 데이터의 처리를 수행합니다.
④ : PHP 파서는 웹 페이지의 로직 및 데이터베이스와의 작업 처리 결과를 웹 서버로 전달합니다.
⑤ : 웹 서버는 전달받은 데이터로 웹 페이지를 완성하여 웹 브라우저로 응답을 전송합니다.
PHP 코드는 웹 페이지의 어느 부분에나 위치할 수 있습니다.
따라서 PHP 파서가 PHP 코드를 인식하기 위해서는 그 시작과 끝을 알려줄 필요가 있습니다.
PHP 코드 영역을 알려주는 방식에는 다음과 같이 여러 가지 스타일을 사용할 수 있습니다.
Important
문법PHP 권장 스타일 : HTML 스크립트 스타일 : <script language = "php"> ... </script>SGML 스타일 : ... ?>ASP 스타일 : <% ... %>
PHP 권장 스타일과 HTML 스크립트 스타일은 그 어떤 상황에서도 정확히 인식될 것입니다.
하지만 SGML 스타일과 ASP 스타일은 php.ini 설정 파일의 특정 태그를 활성화했을 경우에만 정확히 인식될 것입니다.
따라서 서버별 이식성 문제 등을 피하기 위해서라도 PHP 권장 스타일을 사용하는 것이 좋습니다.
<?php
echo "PHP 수업에 잘 오셨습니다!";
?>
// C언어처럼 PHP 명령문도 마지막은 세미콜론(;)으로 끝납니다.
<?php
echo "PHP 수업에 잘 오셨습니다!";
?>
// PHP 코드가 종료되면 자동으로 세미콜론을 적용해주므로, 아래의 예제도 정상적으로 동작합니다.
<?php
echo "PHP 수업에 잘 오셨습니다!"
?>
// 또한, PHP 코드 영역을 나타내는 종료 태그도 생략할 수 있습니다.
<?php
echo "PHP 수업에 잘 오셨습니다!";
주석(comment)이란 코드 내에 삽입된 일종의 설명문입니다.
주석은 작성자나 다른 개발자가 나중에 코드를 수정할 때 참고할 수 있으며, 웹 페이지 개발 시 디버깅에도 활용됩니다.
이러한 주석은 PHP 코드의 어느 부분에라도 작성할 수 있으며, 웹 브라우저의 동작에는 전혀 영향을 미치지 않습니다.
PHP 주석은 다음과 같이 여러 가지 스타일을 사용할 수 있습니다.
Important
문법한 줄 C언어 스타일 : //주석문여러 줄 C언어 스타일 : /주석문/한 줄 쉘 스타일 : #주석문
PHP 주석은 줄의 끝이나 PHP 코드 영역을 나타내는 종료 태그 중 먼저 나오는 부분까지만 주석으로 처리합니다.
따라서 PHP 코드 영역을 나타내는 종료 태그 이후에 나오는 HTML 코드는 주석이 아닌 정상적인 코드로 인식됩니다.
<?php
// C언어 스타일의 한 줄 주석
/*
C언어 스타일의 여러 줄 주석
*/
# 쉘 스타일의 한 줄 주석
?>
<p>PHP 주석에 대한 예제입니다.
<?php /* echo "PHP 수업에 잘 오셨습니다! " */ ?>
화이팅!</p>
위의 예제에서 PHP 주석은 '?>'인 종료 태그의 직전까지만 적용되며, 그 뒤에 나오는 화이팅!이라는 문자열과
태그는 정상적으로 인식됩니다.# 여러 줄 주석 내부에 또 다른 여러 줄 주석을 삽입할 수는 없습니다.
/* 여러 줄
/* 또 다른 여러 줄 주석입니다. */
주석입니다. */
echo() 함수 C언어의 printf() 함수나 C++의 cout 객체와 같이 HTML 스트림에 문자열을 출력해 줍니다.
이러한 echo() 함수는 실제 함수가 아니므로, 인수를 전달할 때 괄호(())를 사용해도 되고 생략할 수도 있습니다. 또한, 가변 길이 인수와 같이 함수 문맥으로도 사용할 수 없습니다. 하지만 두 개 이상의 인수를 전달할 때는 반드시 괄호를 사용해서는 안됩니다.
PHP는 키워드, 클래스, 함수, 사용자 함수 이름의 대소문자를 구분하지 않습니다. 따라서 ECHO나 Echo를 사용해도 모두 같은 동작을 합니다.
<?php
echo "문자열을 출력합니다.<br>";
echo ("인수를 전달할 때 괄호를 사용해도 괜찮습니다!<br>");
ECHO "echo() 함수의 키워드는 대소문자를 구분하지 않습니다!<br>";
echo "첫 번째 인수, ", "두 번째 인수";
//echo("첫 번째 인수, ", "두 번째 인수"); // 오류 발생
?>