PHP(Hypertext Preprocessor)란?
개요
- 대표적인 *서버 사이드 스크립트 언어 (백엔드 언어)
- 비슷한 언어로 Perl, Ruby 등이 존재
- 1995년 라스무스 러돌프가 처음 공개
- 빠른 생산성 및 저렴한 유지 비용
*서버 사이드 스크립트(Server-side script): 동적이고 상호작용적인 웹 사이트를 구축하는데 필수적인 역활
탄생 배경
1. 개인 홈페이지 관리의 필요성
- 개인 홈페이지를 관리 및 방문자 수 추적을 위한 도구를 만들 필요성을 느낌
- Perl로 작성된 간단한 CGI(Common Gateway Interface) 스크립트 개발
- 이를 Personal Home Page라 불렀었음
2. PHP/FI의 등장
- 1995년, 다른 사람들도 사용할 수 있도록 PHP/FI (Personal Home Page/Forms Interpreter)로 발전시킴
- 단순한 웹 폼 처리 기능 및 SQL 쿼리 지원 기능 제공
- 오픈 소스로 공개하여 많은 개발자들이 사용 및 개선에 참여
3. 성장
- 많은 개발자들이 PHP에 기여하기 시작
- PHP ver2 개발
- 사용자 정의 함수, 외부 변수 접근, Database 지원 등 많은 기능이 추가
결론적으로 PHP는 개인 홈페이지 관리 도구로 시작하여, 오픈 소스 커뮤니티의 기여 및 지속적인 발전을 통해 강력한 웹 개발 언어로 성장.
서버 사이드 스크립트 (Server-Side Script)
- 서버에서 실행되므로 클라이언트에게 코드가 노출되지 않아 보안이 강화됨
- 클라이언트 측의 부담을 줄이고, 대량의 데이터 처리를 효율적 수행
- 중앙에서 관리되어 클라이언트 측에 코드를 배포할 필요 없이 서버에서 업데이트를 수행 가능
작동 원리
1. 클라이언트 요청
- 사용자가 웹 브라우저를 통해 URL을 입력하거나 양식을 제출하면 HTTP 요청이 서버로 전송
2. 서버 처리
- 웹 서버는 요청을 받아 서버 사이드 스크립트를 실행
- Database 조회, 비즈니스 로직 처리, 파일 작업 등을 수행
3. 응답 생성
- 서버 사이드 스크립트는 요청에 대한 응답을 생성
- 응답은 일반적으로 HTML, JSON, XML 등의 형식으로 생성, 클라이언트에게 전달
4. 클라이언트 응답 수신
- 클라이언트는 서버로부터 응답을 받아 웹 페이지를 랜더링
- 데이터 업데이트 등을 수행
서버 사이드 스크립트의 주요 기능
1. 데이터베이스 상호작용
- DataBase와 통신하여 데이터를 저장, 검색, 업데이트 및 삭제하는 작업을 수행
- 사용자가 웹 페이지에서 양식을 제출하면 서버 사이드 스크립트는 그 데이터를 DB에 저장하거나 필요한 정보를 DB에서 가져와 처리할 수 있음
2. 동적 콘텐츠 생성
- 사용자의 요청에 따라 동적으로 웹 페이지를 생성
- 사용자가 특정 제품을 검색하면 서버 사이드 스크립트는 DB에서 관련 제품 정보를 가져와 웹 페이지에 표시
3. 사용자 인증 및 세션 관리
- 로그인, 로그아웃, 세션 유지 등의 사용자 인증과 관련된 작업을 처리
- 사용자의 상태를 추적 및 맞춤형 서비스 제공
대표적인 서버 사이드 스크립트 언어
- PHP: 오픈 소스 웹 개발 언어, 웹 페이지의 동적 콘텐츠를 생성하기 위해 사용
- Python: Django, Flask와 같은 웹 프레임워크를 통해 서버 사이드 스크립팅에 사용
- Ruby: Ruby on Rails라는 강력한 웹 프레임워크를 통해 사용
- JavaScript (Node.js): 서버 측에서도 JavaScript를 사용할 수 있도록 해주는 런타임 환경
- Java: Spring, JSP 등 다양한 프레임워크와 함께 서버 사이드 스크립팅에 사용
- C# (ASP.NET): Microsoft의 .NET 플랫폼을 통해 서버 사이드 스크립팅에 사용
PHP 장점
- CGI를 이용해 웹서버를 제작하는것 보다 쉽게 배울 수 있음
- DataBase를 연동 가능해 데이터의 관리가 편리함
- PHP는 매우 큰 커뮤니티가 존재, 다양한 라이브러리와 *프레임워크가 존재해 개발을 더욱 효율적으로 할 수 있음
- 관련 내장 함수들이 존재하여 개발 생산성이 뛰어남
- 무상태성(Stateless)으로 요청할 때마다 새로 시작하기 때문에 배포가 편리함
*프레임워크(Frame + Work): 일정한 틀과 뼈대를 가지고 일하다 라는 뜻, 제공받은 일정한 요소와 틀, 규약을 가지고 무언가 만드는 일 즉 소프트웨어에서의 프레임워크는 "프로그램을 개발하기 위해 사용되는 틀을 제공하는 프로그램"
PHP 단점
- 전체적으로 잘 설계된 언어가 아님 ex) 내장함수나 인자 이름 규칙에 일관성이 부족
- 초보 개발자가 쉽게 접근할 수 있는 만큼, 보안에 취약한 코드가 많이 작성될 수 있음
- 무상태성(Stateless)는 장점이자 단점, 사용자 요청 후 종료 되기 때문에 프레임워크처럼 한번 띄워두고 사용해야 되는 것들도 매번 로딩되어 성능에 영향을 끼침
PHP 주요 사용 사례
1. 동적인 웹 페이지 개발
- 동적인 콘텐츠를 생성하기 위해 자주 사용
- 사용자의 입력에 따라 다른 결과를 출력하거나, 개인화된 정보를 제공하는 등 동적인 웹 페이지 구현
- 대표적인 PHP로 제작한 사이트로는 위키피디아가 있다.
2. 웹 애플리케이션 개발
- 다양한 Database와의 상호작용을 지원해 데이터의 검색,삽입,수정,삭제 등 다양한 작업을 수행하여 웹 애플리케이션의 데이터 관리가 용이
- 대표적인 PHP로 제작한 사이트로는 WordPress, Joomla, Drupal 등의 설치형 웹 애플리케이션이 있다.
PHP 간단한 예시
예시 1
<?php
$data = "안녕하세요!";
print $data;
?>
예시 2
<?php
$type = "form";
switch($type){
// 등록 폼을 표시
case "form":
print "등록 폼입니다.";
break;
// 확인 화면을 표시
case "confirm":
print "확인 화면입니다.";
break;
// 등록처리를 실행
case "exec":
print "등록처리를 실행중";
break;
//오류 처리
default:
print "화면이 없습니다.";
}
?>
참고한 사이트
https://velog.io/@reasonoflife39