=== Prologue ===
php 와 mysql 을 이용해서 회원가입도 하고
정보도 불러오며 웹사이트를 만들었으나,
정확한 개념이 잡히지 않아 php 에 대해 다시 알아보려고 한다.
==== Mission ====
php는 무엇인가와
php, mysql
요 두녀석의 상관관계에 대해서 알아보자
==== detail progress ====
★ PHP?
PHP(PHP: Hypertext Preprocessor PHP: 하이퍼텍스트 프리프로세서)는 프로그래밍 언어의 일종이다.
1. 원래는 동적 웹 페이지를 만들기 위해 설계되었으며
2. 이를 구현하기 위해 PHP로 작성된 코드를 HTML 소스 문서 안에 넣으면 PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성한다.
==> 주로 HTML 코드를 프로그래밍적으로 생성
서버쪽에서 실행되는 프로그래밍 언어
근래에는 PHP 코드와 HTML을 별도 파일로 분리하여 작성하는 경우가 일반적이며, PHP 또한 웹서버가 아닌 php-fpm(PHP FastCGI Process Manager)을 통해 실행하는 경우가 늘어나고 있다.
잠깐 서버와 클라이언트의 개념에 대해서 알아보자면,
클라이언트 : 웹브라우저(웹 클라이언트)
서버 : APPACHE or IIS etc
우리가, web browser 에 url 등을 치고, 엔터를 누르게 되면
그 정보를 가지고 웹서버에 요청을 한다.
그러면, 웹서버에서는 해당 url 또는 정보를 받아서
응답을 하게 되는데 HTML 의 언어로 풀어 응답을 하게 된다.
그런데해당 웹브라우저에 html 의 형식으로 요청을 하게 되면문제없다만,
org 라던지 php, py 등의 확장자로 요청을 하게 되면웹서버에서는 그 확장자를 보고해당 php나 python에게 요청하게 되고 (부품 같은 존재)
html로 변환하여 (php 언어) 클라이언트 측으로 해당 데이터를 보내주게 된다.
php는 웹이 생기고 난 이후에 생성된 언어로
웹에 최적화되어있는 언어일뿐더러,
(웹을 위해서 만들어진 언어)
웹을 위한 시스템 기반에는 기본적으로
php를 사용할 수 있도록 시스템 환경이 구축되어있기 때문에
따로 그 시스템 환경을 구축하려는 수고를 들이지 않아도 되는 장점이 있다.
(대부분의 호스팅 환경에서 사용할 수 있다)
또한,
웹 개발에 필요한 수많은 로직들이 함수의 형태로 미리 제공된다.
가장 많은 공개 소프트웨어가 PHP로 만들어진 점이 큰 장점이라 할 수 있다.
(많은 서버 측 오픈 소스 소프트웨어는 PHP로 구현되었다.
워드프레스와 위키백과를 구동시키는 미디어 위키 등)
<?php>
echo "
=== 클라이언트 사이드, 서버 사이드 ==
1) 클라이언트 : 서버에서 제공하는 웹서비스를 이용하는 사용자 또는 기기(브라우저)
자바스크립트, 제이쿼리
2) 서버 : 서비스를 제공하는 컴퓨터
HTML 문서에 서버사이드 언어를 삽입하면, 서버에서 해당 부분을 처리하고 결과를 브라우저에 보내준다.
* 서버에 미리 저장된 파일이 아닌 서버의 데이터들을 서버 언어로 가공해서 생성되는 페이지를 동적 웹페이지 (Dynamic 웹페이지) 라고 한다.
==== php 특징 ===
1) 장점 : 대부분의 운영체제나 웹서버에서 지원.
직관적인 코드 기능( 코드 양이 적음)
텍스트 처리에 특화되어 있어 HTML 문서 처리에 적합하다
다른 서버사이드 언어보다 쉽다.
2) 단점 : 보안상 안전하지 않은 구조를 가진다. (7버전에서 개선)
간단한 사이트를 제작하기 위해 만들어진 언어라서 복잡한 사이트를 만드는데는 효율적이지 못하다.
"
<?>
그러면,
php 와 mysql 이 어떻게 사용하게 될까?
★ php와 mysql의 상호작용
우리가 어떤 정보를 보내고 불러오기 까지의 전체적인 그림 or 프로세스는 이렇다.
1. 클라이언트(웹브라우저) 가 url 또는 정보 요청 (index.php)
2. 웹 서버가 (apache) 그 요청을 받음
=> 요청한 데이터의 확장자가 php 인것을 확인하고,
php는 php라는 프로그램에 의해서 실행될수있다는 것을 알기 때문에,
php 한테 그 역할을 위임함.
3. php는 그 정보를 받아서 (php에 해당되는 코드를 php문법에 따라 해석하고 동작함)
그 속에 mysql 과 관련된 함수가 있으면, php는 mysql에 그 코드를 던져줌.
php는 mysql 명령어를 이용해서 여러가지 정보를 mysql에 전송.
4. mysql은 관련된 함수를 받아와 관련된 결과를 (정보db) php에 알려주면
php는 그 정보를 받아 순수한 html 언어(동적인 언어)로 변환해서 웹서버에 던져준다.
5. 웹서버는 그 html 코드를 웹 브라우저에 보냄으로써
우리는 정보를 브라우저 화면에서 볼 수 있게 된다.
php는 정보를 받기도 하지만 (서버 개념)
php를 mysql 로 주기도 한다(클라이언트 개념)
그래서 클라이언트와 서버는 상대적 개념이라고도 하고,
php를 Middle ware 라고 부르는 이유이기도 하다.
전체적인 큰 그림을 알게 되면, php와 mysql 언어를 배울 때
좀 더 쉽게 접근 할 수 있다.
이 관계를 잘 기억해 놓으면 코드를 작성 할 때도 좀 더 수월할 것이다!
'FRONTEND > Php_Mysql' 카테고리의 다른 글
[php] php 웹사이트 개발 환경 구축하기 (0) | 2021.07.12 |
---|---|
[php] 회원가입 정보 db 삽입하기 (0) | 2021.05.04 |