스프링, 장고, Flask 등은 무조건 AWS 와 같이 리눅스 콘솔을 통해 세팅하는 서버가 있어야 한다.
하지만 PHP는 닷홈, 000webhost와 같이 FTP 통신만 가능한 서버에 파일을 옮겨놓기만 해도 돌아간다.
난 예전엔 이 점이 이해가 안됐다.
웹 구조는 흔히 클라이언트 - 서버 라고한다.
하지만 한 층 벗겨보면
클라이언트 - 웹서버 - WAS ( Web Application Server)
3 단계로 나뉜다.
웹서버는 모두가 아는 Apache의 역할이고,
WAS는 Tomcat의 역할이다.
PHP는 웹서버만 있으면 동작이 된다.
컴파일 필요없는 인터프리터 언어이다.
스프링을 보면 아파치 톰캣으로 포팅을 해줘야하는데, 이게 WAS의 역할이고,
이 과정에서 서버가 파일들을 받아서 컴파일을 해주고 세팅을 해줘야하지만,
PHP는 이런게 필요 없다. WAS가 없어도 동작하기 때문이다.
PHP는 오래된 만큼 시간이 지남에 따라 많은 문제점이 발견된다.
HTML 과 뒤죽박죽 섞여서 코드 분리가 안되고,
절차지향 기반이라 객체지향 코딩도 안되고,
타입규정이 느슨해서 오류나 보안에 취약하는 등 여러 문제가 있지만,
버전을 거듭하며 계속 개선되고 있다.
php 5.3 부터 본격적인 객체지향화가 시작됐고,
php 7이 현 시점은 지원 중단된 상태이고
php 8이 성능을 대폭 강화하며 재도약을 꿈꾸고 있다.
하지만 php의 부정적인 인식은 쉽게 탈피되지 못하고
계속 사용자는 줄고 있는 듯 하다.
버전이 올라가면서 명백하게 해결된 문제들도
사람들은 모르고 아직도 지적하고 있기도 하다.
현재 라라벨(Laravel) 이 나오면서 다시 PHP가 인기를 회복하고 있다.
개인적으로 php가 개떡처럼 말해도 찰떡처럼 알아듣는 매력이 있어서
개발을 처음 시작할 때부터 매우 정 들었었는데,
계속적인 발전을 통해 다시 웹시장의 큰 파이를 차지하는 언어가 됐으면 좋겠다.
'개발 > Linux & DevOps' 카테고리의 다른 글
톰국지 삼대장 (톰캣, 카탈리나, 재스퍼) 파헤치기 (3) | 2021.02.05 |
---|---|
잘생긴 로그 수집기, Fluentd 플루언트디 (0) | 2021.01.27 |
Linux Java tar gz 설치 완벽 정리 + 버전 컨트롤 (0) | 2020.12.24 |
리눅스 vs 윈도우 디렉토리 별 역할 비교! (0) | 2020.12.24 |
오픈소스 / 유무료 로그 통합 관리 프로그램 (0) | 2020.12.22 |