- PHP란
php는 Hypertext preprocessoer 프로그래밍 언어의 일종으로 원래는 동적 웹페이지를 만들기 위해 설계가 되어지고 이를 구현하기 위해서 php로 작성된 코드를 HTML 소스 문서안에 넣으면 php처리 기능이 있는 웹서버에서 해당 코드를 인식하여 클라이언트가 원하는 웹페이지를 생성
최근에는 php코드와 html을 파일을 별도로 분리하여 작성하는 경우가 일반적이고 php또한 웹 서버가 아닌 php-fpm을 통해 실행하는 경우가 늘어나고 있다.
- PHP-FPM (PHP FastCGI Process Manager)
동적 페이지를 사용할 때 CGI보다 더 빠른 속도로 작업이 진행.
CGI/FastCGI
- 로그인, 게시글 등록과 같이 동적인 페이지 사용 시 웹 외부 프로그램(WAS 등)에서 처리하는 방법이 필요
- 외부 프로그램이 내용을 전달받아 HTML 파일로 반환하는 단계를 CGI
일반 CGI의 경우
- 요청(Request)가 인입될 때마다 신규 프로세스를 생성/구동하여 이 과정에서 부하 증가 등의 이슈 발생
FastCGI의 경우
- FastCGI 실행 시 미리 프로세를 생성한 뒤 해당 프로세스를 활용함으로써 일반 속도가 빠르고 부하하가 적다.
- CGI를 FastCGI로 변경하여 처리할 경우 몇배 이상 성능 개선 효과를 볼 수 있음.
다시 php로 돌아와서 php의 특징을 보자면
- 웹 개발에 특화된 언어
초기 탄생목적이 개인의 홈페이지 제작에 둔 스크립트 언어에서 발전한 케이스
- C언어 기반의 언어
c에서 지원하는 함수도 사용이 되며 사이트 제작시 많이 사용될 기능의 함수화가 잘되어 있다.
- 웹 서버에서 해석되는 스크립트 언어
php 장점
- 오픈 소스라 무료이고, C언어 기반이기 때문에 기본기만 있다면 접근성도 좋음
- 윈도우나 리눅스 계열의 대부분의 운영체제에서 이용할 수 있음(저렴한 유지비용)
- 빠른 생산성 PHP는 프로그래밍 속도를 높여주기에 매우 좋음 Request('test')를 $test로 표현 가능
php단점
- 서버측에서 지원 인프라가 약함, 즉 기업형의 복잡한 시스템 구조를 수용하지 못함
- php는 웹 개발에 특화되어 있는 언어라 발생되는 문제점이 오직 웹개발을 위해서 쓸 수 있다는점
초반에 이 언어가 개인 홈페이지를 좀 더 쉽게 만들기 위해서 개발된 언어라 간단한 사이트 제작에 최적화 되어있다.
따라서 방대한 웹사이트를 만들 경우, 개발자의 입장에서 체계적으로 잡혀있지 않아서 개발하는데 어려움이 많음. 즉, 복잡한 사이트를 만드는데 효율적이지 않음.
이처럼 유저 형태가 다양하거나 복잡한 기능을 많이 가지고 있는 사이트를 구죽하고자 할때는 PHP가 적합하지 않고
다른 프로그래머들이 쉽게 접근 가능해서 보안에 문제가 발생할 수도 있다는게 큰 문제
- php기반으로 만들어진 사이트
워드프레스(wordpress)나 줌라(joomla), 드루팔(drupal)과 같은 설치형 웹 에플리케이션은 PHP기반으로 만들어진것이 대부분 또한 대표적으로 페이스북이 있는데 php의 단점 유저의 형태가 다양하고 복잡한 사이트는 php는 효율적이지 않음
페이스북이 초반에 하버드 학생들을 대상으로 만들어진 sns였기 때문에 사용자가 많지 않았고 접근성이 좋아서 php개발자를 쉽게 구하는게 가능했었음 하지만 이제는 페이스북의 서버관리하는데에 한계가 와서 이를 극복하고자 2014년쯤
페이스북 자사에서 'Hack'이라는 언어를 개발해 이용. php를 버리지 않고 보완하는 방향으로 가는듯
phpMyAdmin 이란
MySQL을 웹상에서 관리할 목적으로 PHP로 작성한 오픈 소스 도구
'PROGRAM > 시놀로지' 카테고리의 다른 글
[시놀로지] MySQL, MariaDB 엔진 종류 개념잡기 (0) | 2021.04.29 |
---|---|
[시놀로지] 도커 워드프레스 https 리다이렉트 및 직접설치 (0) | 2021.04.29 |
[시놀로지] 우분투 + Nginx 개념 잡기 (0) | 2021.04.23 |
[시놀로지] 도커 컨테이너 워드프레스 설치 (0) | 2021.04.22 |
[시놀로지] 도커 컨테이너 이미지 파일 만들기 (0) | 2021.04.21 |