본문 바로가기
Coding/이론

[언어] PHP(Hypertext Preprocessor)란?

by 재현짱 2024. 7. 8.
728x90

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

https://m.blog.naver.com/tizio84/30176139669

https://namu.wiki/w/PHP