php의 시작
인터넷 초창기에는 Perl언어와 C언어를 사용하여 웹사이트를 제작하였으나 두 언어의 처리방식 때문에 문제가 발생.
클라이언트가 한명씩 접속할 때마다 하나의 프로세서 생성 -> 접속하는 클라이언트 많아질수록 과부화가 심해짐
이에 다양한 웹언어들이 출현하기 시작함
처리방식을 클라이언트 한명씩 접속할때 하나의 프로세서를 만든 후, 그 안에 하나의 쓰레드를 하나씩 만들어 처리해줌 -> 접속하는 클라이언트 많아져도 과부화 심해지지않음
PHP는 초기에 한 개인에 의해 개발되어 오픈소스화되어 유명해진 웹언어입니다. 먼저 C언어의 문법을 따라해 문법이 쉬우며 무료라서 사용하는데 돈이 들지 않으며 윈도우, LINUX, UNIX 등 여러 OS를 지원하여 플랫폼에 독립적입니다. 그리고 무료 OS인 LINUX에서 좀 더 빠르게 돌아가면서 무료 RDBMS인 MYSQL와 궁합이 잘 맞아
APM(APACHE+PHP+MYSQL)이라는 수식어를 가지고 다닙니다. 위의 3가지(APACHE+PHP+MYSQL) 프로그램은 모두 사용하는데 돈이 들지 않습니다.
php 언어 특징
- 웹 서버에서 해석되는 스크립트 언어 (컴파일 과정이 없어서 편함)
- 데이터베이스 연동이 편리함 (mysql 연동이 엄청 편했음)
- 운영체제를 가리지 않고 구현가능함
- 코드작성 및 문법이 쉬움 (레퍼런스도 많이 있음)
- Laravel 프레임워크를 사용하면 MVC 패턴으로 구현하기 편함
- 파일 업로드, 메일전송 등의 기본적인 기능을 자체적으로 지원한다. (PHP Mail()함수 등)
- 이미지 동적생성이 가능함 (GD 라이브러리 사용)
- XML, ZIP, PDF, 암호화등 다양한 함수를 기본적으로 내장하고 있다 (컴포넌트 설치하지않아도 처리 가능)
- 오픈소스라서 무료이용이 가능하다.
Laravel 특징
- MVC 패턴 구현 편리
- Query Builder를 통한 PBO 변수 바인딩 지원 (Sql Injection 공격으로부터 방어)
- 블레이드 템플릿을 사용하여 CSS 또는 XSS 공격 방어 (csrf_token() 함수를 통한 CSRF 방어)
- 페이징 처리 지원
- public 폴더 노출 최소화 및 설정 파일 숨김
- 의존성 주입과 제어 역전 (Java Spring 프레임워크와 비슷함)