원래는 Personal Home Page였지만 Hypertext Preprocessor라는 의미로 변경되었다.
html,db와 결합
최적화된 방식은 보통 리눅스+아파치+MySQL,PHP조합이다.
플랫폼이 독립적이고 다양한 db를 지원한다.
html,css,js등과 달리 php는 클라이언트가 아닌 서버 측에서 작동하는 스크립트 언어이다.
phP를 이용해 할 수 있는 것들로는 동적 웹페이지를 생성할 수 있으며 세션을 관리하여 로그인/로그아웃을 할 수 있고, 이메일 전송도 가능하다.
파이썬과 같은지는 모르겠지만 웹에서 데이터 크롤링도 가능하다.
또한 JAVA,C와는 다르게 결과값을 바로 받아올 수 있다. 그리고 JAVA이야기가 나와서 말하지만 다른 언어에 비해 배우기 쉬우며 비슷한 언어로는 C언어라고 할 수 있을 것 같다.
사실 가장 큰 부분은 빠른 생산성과 유지 비용이 저렴하다는 점이다. 호스팅과 도메인 정도만 구매한다면 나머지는 무료 설치가 가능하여 접근성이 좋다.
단점으로는 oop지원이 약하고 유연성이 부족해 대규모 프로젝트에는 취약한 부분을 보인다.
새로운 기능과 오래된 기능들이 뒤섞여 언어의 일관성이 부족하다.
시스템 프로그래밍, cpu 집약적인 기능(복잡하고 많은 계산 요구)에는 적합하지 않을 수 있으며 app개발에는 적합하지 않을 수 있다.
하지만 웹 개발에 있어서는 다른 언어와 통합, 협업도 가능하다.
PHP의 원리에 대해서도 알아보자. php는 사용자가 어떠한 동작을 요청할 경우 웹 서버에서 값을 받아 db와 연동하기 위해 php 파서(parser)를 통해 응답을 받아 그 결괏값을 사용자헤게 전달한다.
대표적인 개발 툴로는 Editplus, atom, vs code가 있는데, 익숙한 건 아무래도 vs code인 것 같다.
php프레임워크도 보자. 크게 두개정도 있는데 laravel, codeeigniter가 있다.
라라벨의 경우 다양한 기능을 제공하고, 메모리의 사용량을 최소화해 사이트를 구현할 수 있다.
코드이그나이터도 오랫동안 사랑받는 프레인워크 중 하나이다. mvc모델을 사용하기 때문에 협업을 할 때 맡은 부분만 집중해서 개발이 가능하다.
php를 이용할 때는 js,ajax,jquary도 함께 사용
```