1. PHP(Hypertext Preprocessor) 소개
PHP는 전 세계적으로 대중적으로 사용되어진 웹 개발 백 앤드(Backend) 스크립팅 언어입니다.
PHP는 1994년 라스무스 러도프(Rasmus Lerdorf) 개발자가 PHP/FI를 개발하였습니다.
PHP/FI는 대중적으로 인기를 끌지 못했지만 PHP/FI를 개발했던 경험을 바탕으로 1997년 PHP3를 출시하면서
많은 개발자들에게 관심을 받고 2000년부터 많은 개발자들부터 사용됐습니다. 현재에는 전 세계적으로 사용률이 상위에 랭크될 정도로 많은 사랑을 받고 있습니다.
2. PHP 동작 방식
PHP는 인터프리터 방식의 언어입니다. 인터프리터 방식에 대해서 알려면 컴파일러와 대조적으로 비교하여 설명이 필요합니다. 먼저 컴파일러 방식에 대해서 설명을 하자면 컴파일러가 전체 소스 코드를 가져와 바이너리 또는 기계언어로 번역하는 방식입니다. 정적인 방식이기 때문에 한번 코드를 분석하는데 느리지만 기계어로 한번 번역이되면 실행 속도는 빠릅니다. 대표적인 프로그래밍 언어로는 c, c++, c#, java등이 있습니다.
반면 인터프리터 방식은 동적인 방식으로 소스 코드를 한 줄씩 받아 기계어로 번역 합니다. 컴파일러 방식에 비해 소스 코드 분석 시간은 빠르지만 바이너리 파일이 별도로 존재하지 않기 때문에 느립니다. 즉 컴파일러 방식은 소스 코드를 기계어로 변환하는 데에는 인터프리터 방식보다는 느리지만 한번 번역을 하면 정적으로 실행 파일이 남기 때문에 다시 번역할 필요는 없어 실행 속도가 빠릅니다. 인터프리터는 한 줄씩 동적으로 분석하기 때문에 코드를 분석하는 시간은 빠르지만 수행 속도는 컴파일러 방식에 비해 느릴수 밖에 없습니다.
인터프리터 방식이 수행 속도 측면에서는 컴파일러 방식보다 느리지만, 사소한 구문 코드를 변경을 하면 동적으로 분석하여 반영하기 때문에 시스템을 운영하는 측면에서는 편리한 점이 있습니다. 반면 컴파일러 방식은 코드를 변경하면 다시 분석하고 실행 파일을 만들어야 하기 때문에 약간의 불편한 점은 있습니다. 최근에 하드웨어 성능이 좋아지므로 인해서 인터프리터 언어라 할지라도 수행 속도 면에서 컴파일러 방식과 큰 차이가 없기 때문에 백 앤드 분야에서 많이 사용하고 있습니다. 대표적으로 인터프리터 방식 프로그래밍 언어에는 PHP, 파이썬, nodejs등이 있습니다.
[ PHP 동작 단계 ]
1단계: 클라이언트가 브라우저에서 웹페이지를 요청합니다.
2단계: 서버(PHP 소프트웨어가 설치된 곳)는 요청과 관련된 .php 파일을 확인합니다.
3단계: php파일을 확인 후 인터프리터로 보내어 해석합니다.
4단계: 인터프리터는 요청된 데이터 출력을 HTML형식으로 변환합니다. 그 이유는 웹브라우저는 PHP 소스코드를 인식하지 못하기 때문입니다.
5단계: 웹 서버는 인터프리터로부터 HTML 파일을 받습니다.
6단계: 웹 페이지를 클라이언트 브라우저로 다시 보냅니다.
3. PHP의 장점
(1) 간단한 문법으로 학습하기 쉽고, 다른 프로그래밍 언어에 비해서 익숙해 지는데 소요하는 시간이 짧습니다.
(2) PHP는 오픈 소스 소프트웨어입니다. 프로그래밍 언어를 사용하는데 있어서 별도의 비용이 발생되지 않습니다. 이러한 측면 때문에 전 세계적인 많은 기업들이 PHP를 사용하고 있으며 국 내외적으로 취업 시 큰 어려움없이 취업을 할 수 있습니다. (2022년 ~ 2023년 기준)
(3) 광범위한 오픈 소스 라이브러리와 커뮤니티가 활성화 되었습니다. PHP로 개발 시 어려움이 있을때 개발 커뮤니티에서 많은 도움을 받을 수 있다는 장점이 있습니다.
4. PHP의 단점
(1) 문법이 간단하고 접근하기 쉽기 때문에 프로그래머 역량에 따라서 좋은 코드를 관리할 수도 있고 아닐 수도 있습니다. 좋은 코드가 아닐 경우 협업 시 유지보수가 어렵기 때문에 소프트웨어 수명 단축 되는 경우가 있습니다. 현재에는 PHP도 모던화된 개발 코드를 지향하기 때문에 이러한 부분이 많이 없어졌기는 했지만 기존에 운영되고 있는 시스템에는 그러한 경우가 있기 때문에 유지보수에 많은 어려움이 있습니다.
(2) PHP가 인터프리터 방식이기 때문에 실행 속도가 느린 감이 있지만 PHP 7.xx 버전 이상에서는 이런 점을 개선하였기 때문에 성능이 상당히 좋아졌습니다. 하지만 현업에서는 PHP7 미만 버전들이 아직도 운영되고 있기 때문에 성능 관리에 어려움이 있습니다.
5. 맺은말
PHP의 간략한 역사와 소개 그리고 동작 방식에 대해서 살펴봤습니다. PHP는 개발 언어로 훌륭한 언어이기 때문에 기본기를 잘 닦고 충분히 연습만 잘한다면 훌륭한 결과를 만들어 낼 수 있습니다. 재취업을 하시거나 코딩을 처음 공부하시는 분들에게는 이번 기회에 PHP 공부를 확실하게 하시어 원하고자 하는 목표를 이뤄 내셨으면 좋겠습니다.
'소프트웨어 개발 > PHP' 카테고리의 다른 글
[PHP 기초강좌] PHP 기초 문법 (0) | 2023.01.31 |
---|---|
PHP 날짜 형식 정규식 ( yyyy-mm-dd, yyyy/mm/dd,mm/dd/yyyy) (0) | 2023.01.30 |
[PHP 기초강좌] PHP 환경설치 - Nginx + PHP8.1 + mariadb (0) | 2023.01.29 |
PHP 5.3 - json_encode 한글처리 (0) | 2022.12.01 |
정규식 preg_match - 정수(숫자), 실수 체크 (0) | 2022.11.19 |
댓글