[php] php란 무엇인가? php와 mysql의 상호작용

2021. 7. 4. 23:04
728x90
반응형

=== 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 의 언어로 풀어 응답을 하게 된다. 

출처 : http://man.hubwiz.com/

 

그런데해당 웹브라우저에 html 의 형식으로 요청을 하게 되면문제없다만,

 

org 라던지 php, py 등의 확장자로 요청을 하게 되면웹서버에서는 그 확장자를 보고해당 php나 python에게 요청하게 되고 (부품 같은 존재)

html로 변환하여 (php 언어)  클라이언트 측으로 해당 데이터를 보내주게 된다. 

 

 

출처 : https://www.researchgate.net/

 

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 코드를 웹 브라우저에 보냄으로써 

우리는 정보를 브라우저 화면에서 볼 수 있게 된다. 

출처 : https://helperbyte.com/

 

php는 정보를 받기도 하지만 (서버 개념) 

php를 mysql 로 주기도 한다(클라이언트 개념)

 

그래서 클라이언트와 서버는 상대적 개념이라고도 하고, 

php를 Middle ware 라고 부르는 이유이기도 하다. 

 

 

 

전체적인 큰 그림을 알게 되면, php와 mysql 언어를 배울 때

좀 더 쉽게 접근 할 수 있다. 

이 관계를 잘 기억해 놓으면 코드를 작성 할 때도 좀 더 수월할 것이다!

 

 

 

 

728x90
반응형

'FRONTEND > Php_Mysql' 카테고리의 다른 글

[php] php 웹사이트 개발 환경 구축하기  (0) 2021.07.12
[php] 회원가입 정보 db 삽입하기  (0) 2021.05.04