📌 PHP(Hypertext Preprocessor)란?
- 웹 페이지 개발에 특화 된 프로그래밍 언어
- 컴파일 과정을 거치지 않고 실시간으로 텍스트를 분석하며 실행(인터프리터)
- 상대적으로 컴파일 언어보다 실행 속도가 느리나 PHP 8.0부턴JIT 컴파일을 지원해 실행 속도가 크게 개선
- PHP 7 부터 모던PHP라고 하며, PHP 5 이하 버전을 레거시PHP라고 함
- PHP 5.3에서 OOP에 관한 기능과 문법이 추가되고, PHP 7 에 와서는 객체의 경우 Call by reference가 디폴트가 되는 등 좀 더 확실한 OOP 언어에 가까워 짐
📌 PHP의 장점
- 웹 개발에 필요한 관련 함수들이 내장되어 있어서 개발 생산성이 뛰어나며, HTML 템플릿을 지원하여 쉽게 웹서버를 구축 가능
- PHP는 무상태성(Stateless)로 요청마다 프로그램을 로딩하므로 오류에 덜 민감하며 메모리 누수를 방지
- PHP 파일을 실행할 때마다 파일 내용을 확인 후, 변경이 없으면 캐시파일을 실행하고, 변경이 있는 부분만 해석한 뒤 다시 캐시로 저장 후 실행 하는 방식이라 배포작업 시 해당 파일만 업로드 하면 되므로 배포 작업이 매우 간편
- 타 언어는 프로젝트 규모가 커지면 빌드 시간이 늘어 배포에 시간에 오래 걸리나, PHP는 빌드가 필요 없음
📌 PHP의 단점
- 내장 함수나 인자 명명규칙 등 일관성이 부족하고, PHP의 태생이 템플릿 언어로 시작해 프로그래밍 언어로 바뀌다보니 전체적으로 잘 설계된 언어는 아님
(PHP 7.0 이후 버전업을 통해 계속 개선 중)
- PHP의 무상태성(Stateless)로 인해 요청마다 프로그램을 로딩하므로 프레임워크와 같이 한번 전부 불러오고 사용해야 하는 것들도 매번 로딩되어 성능 저하가 나타 날 수 있음
- PHP 7.4이하 버전에서의 단점
- 정의되지 않은 변수(undefined)가 사용 가능
- 예외처리에 일관성이 없어 예외처리를 해야할 요소에 E_WARNING 등 경로로 처리되어 해당 오류를 컨트롤 할 수 없는 상황이 발생
- PHP 5.X 버전대 이하에서의 단점
- 현재 PHP의 안좋은 이미지를 가지게 된 시기
- 2004년 배포되어 PHP 7버전이 나온 2015년까지 오랫동안 5버전에서 머무름
- 특히 PHP 5.4.X는 보안 이슈가 다량 존재
- 이때, PHP를 사용하던 대다수의 기업들이 타 언어로 전향
📌 PHP 개발시 주의사항
- PHP의 나쁜 이미지는 오랫동안 PHP 5버전대에서 머무른 이유도 있지만, 새로운 지식(OOP나 개발규칙 등)을 받아들이지 않은 채 과거의 개발 스타일 그대로 개발을 하는 개발자의 탓도 크므로, PHP 코딩 표준안을 잘 치켜 개발할 필요가 있음
- PHP 코딩 표준안(PHP The Right Way)
한국어 사이트
📌 PHP 주석, 출력
- 출력
- echo : 현업에서 가장 많이 사용 - 구문
echo "안녕, php";
- print : 단순 출력, 현업에서는 잘 사용안함 - 함수
print("프린트로 안녕");
- var_dump() : 출력하고자 하는 값, 값의 상세정보까지 출력, 코딩 중간중간에 확인하는 용도
var_dump("바덤프 안녕");