PHP는 웹 페이지를 만드는 서버 사이드 스크립트 언어입니다. .php 파일은 웹 서버에서 실행되어 HTML을 출력하고(예: echo "<h1>Hello</h1>";), 서버는 그 HTML을 방문자의 브라우저로 보냅니다. 브라우저는 PHP 코드를 볼 수 없고, 그 결과만 받습니다.
Run을 누르세요. PHP가 아래 페이지를 만들고, Page 탭에서 브라우저처럼 표시됩니다.
Output 탭으로 바꾸면 PHP가 출력한 순수한 HTML이 보입니다. 그 텍스트가 바로 브라우저가 받는 내용입니다. 가격을 바꾸거나 항목을 추가하고 다시 실행해 보세요.
PHP의 용도
PHP는 웹을 위해 만들어졌고, 지금도 대부분 웹에서 실행됩니다.
- 웹사이트와 CMS. WordPress, Drupal, Joomla는 PHP로 작성되었고, 그 위에 만든 모든 사이트도 마찬가지입니다.
- 웹 애플리케이션. Laravel, Symfony 같은 프레임워크로 쇼핑몰, 대시보드, SaaS 제품, 사내 도구를 만듭니다.
- API. PHP 스크립트는 HTML 대신 JSON을 출력할 수 있으며, 많은 모바일 앱과 JavaScript 프론트엔드가 이렇게 데이터를 받습니다.
- 명령줄 스크립트. cron 작업, 데이터 가져오기, 보고서 생성기, 배포 도구는 웹 서버 없이
php script.php로 실행됩니다.
PHP 요청이 HTML이 되는 과정
누군가 https://example.com/menu.php를 열면 다음 일이 일어납니다.
- 브라우저가 서버에 HTTP 요청을 보냅니다.
- 웹 서버(Apache, PHP-FPM을 쓰는 Nginx, 또는 PHP 내장 서버)가
.php확장자를 보고 파일을 PHP에 넘깁니다. - PHP는 파일을 위에서 아래로 실행합니다.
<?php ... ?>태그 밖의 텍스트는 그대로 출력에 복사되고, 태그 안의 코드는 실행되어echo로 텍스트를 더 출력할 수 있습니다. - PHP가 출력한 모든 것이 응답 본문이 되고, 브라우저가 이를 렌더링합니다.
- PHP는 모든 것을 잊습니다. 다음 요청은 스크립트를 처음부터 다시 실행합니다.
5단계 때문에 PHP 애플리케이션은 세션과 데이터베이스를 사용합니다. 변수에 담긴 값은 두 요청 사이에 남지 않습니다. 아래 폼이 이 과정을 보여 줍니다. 실행한 뒤 폼에 이름을 입력하고 Send를 누르세요. 같은 스크립트가 다시 실행되고, 이번에는 $_POST에 값이 들어 있습니다.
htmlspecialchars는 < 같은 문자를 <로 바꾸므로, <b>Ada</b> 같은 이름은 마크업이 되지 않고 텍스트로 표시됩니다. 방문자에게서 온 값은 모두 이렇게 출력해야 합니다. 자세한 내용은 htmlspecialchars 페이지에 있습니다.
PHP는 HTML과 섞어 쓴다
PHP 파일은 순수한 코드일 수도 있고, PHP 조각이 들어간 HTML 페이지일 수도 있습니다. 거의 모든 일을 세 가지 태그가 처리합니다.
| 태그 | 하는 일 |
|---|---|
<?php ... ?> | 안의 코드를 실행 |
<?= $value ?> | <?php echo $value; ?>의 줄임 |
파일 끝의 ?> | 선택 사항이며, PHP만 들어 있는 파일에서는 생략 |
$hour를 9로 바꾸고 다시 실행하면 다른 인사말이 나옵니다.
PHP 코드의 생김새
변수는 $로 시작하고, 문장은 ;로 끝나며, 큰따옴표 문자열 안에는 변수를 넣을 수 있습니다. 배열은 리스트로도, 키/값 맵으로도 동작합니다.
스크립트가 HTML 태그를 출력하지 않으므로 여기서는 출력이 일반 텍스트입니다. 터미널에서 실행하는 코드와 똑같습니다.
모던 PHP (PHP 8)
PHP 8.0(2020)에서 match 표현식, 이름 있는 인자, 유니온 타입, str_contains(), JIT 컴파일러가 추가되었고, PHP 8.1에서 enum과 readonly 속성이 추가되었습니다. PHP 8.3용 코드는 이렇게 생겼습니다.
PHP의 뜻
PHP는 "PHP: Hypertext Preprocessor"의 약자입니다. 이름이 재귀적이어서 첫 번째 P가 PHP 자신을 가리킵니다. Rasmus Lerdorf는 1995년에 자신의 홈페이지용 스크립트 모음인 "Personal Home Page Tools"로 첫 버전을 공개했고, 지금의 이름은 1998년 PHP 3과 함께 생겼습니다. "Hypertext preprocessor"는 하는 일을 잘 설명합니다. PHP는 하이퍼텍스트(HTML)가 전송되기 전에 파일을 처리합니다.
흔한 첫 실수: .php 파일을 브라우저로 열기
index.php를 더블클릭하면 로컬 파일로 열리고, 브라우저는 PHP 코드를 그대로 보여 주거나 다운로드하려고 합니다. 반대편에 PHP가 없으므로 아무것도 실행되지 않습니다. .php 파일은 PHP에 넘겨 주는 웹 서버를 통해 제공되어야 합니다. 내 컴퓨터에서 가장 빠른 방법은 PHP 내장 서버입니다.
php -S localhost:8000
그런 다음 http://localhost:8000/index.php를 여세요. PHP 실행하기 페이지에서 이 방법과 터미널에서 스크립트를 실행하는 방법을 다루고, PHP 설치에서 먼저 PHP를 컴퓨터에 설치합니다.
자주 묻는 질문
PHP는 무엇의 약자인가요?
PHP는 "PHP: Hypertext Preprocessor"의 약자로, 재귀적 약어입니다. 1995년 최초의 이름은 "Personal Home Page Tools"였고, Rasmus Lerdorf가 자신의 웹사이트용으로 작성한 스크립트에서 시작되었습니다.
PHP는 프론트엔드 언어인가요, 백엔드 언어인가요?
백엔드입니다. PHP는 서버에서 실행되고, 브라우저는 스크립트가 출력한 HTML(또는 JSON)만 받습니다. 브라우저는 PHP 코드 자체를 볼 수 없습니다.
PHP는 주로 어디에 쓰이나요?
서버에서 웹 페이지와 웹 애플리케이션을 만드는 데 쓰입니다. 콘텐츠 사이트, 쇼핑몰, 관리자 화면, API 등입니다. WordPress, Drupal, Magento, Laravel, Symfony는 모두 PHP로 작성되었습니다. cron 작업이나 데이터 가져오기 같은 명령줄 스크립트도 실행합니다.
2026년에도 PHP를 쓰나요?
네. W3Techs에 따르면 서버 사이드 언어를 감지할 수 있는 웹사이트의 약 4분의 3이 PHP를 사용하며, 상당 부분은 WordPress 덕분입니다. 언어도 활발히 개발되고 있습니다. PHP 8.0에서 match, 이름 있는 인자, JIT 컴파일러가 추가되었고, PHP 8.1에서 enum과 readonly 속성이 추가되었습니다.
PHP는 배우기 쉬운가요?
웹 개발의 첫 언어로는 쉬운 편입니다. <?php echo "Hello";만 적은 파일도 이미 동작하는 페이지이고, 모든 공유 호스팅에서 실행됩니다. 어려운 부분은 안전한 습관을 일찍 익히는 것입니다. 예를 들어 htmlspecialchars로 출력을 이스케이프하고, SQL에는 prepared statement를 사용하는 것입니다.