본문 바로가기

IoT Server 설계/Web Programming

(APM) Apache, PHP, MySQL 이론 및 설치 (1)

본 포스팅에서는 웹서버 구축을 위해 APM 의 간략한 이론과 APM 구동 시나리오에 대해서 설명한다. 포스팅에 앞서 APM은 하나의 S/W를 특정짓는 것이 아닌 Apache, PHP, MySQL을 의미하는 것으로 간단히 설명하자면 Apache는 서버, PHP는 웹 프로그래밍 언어, MySQL은 DB의 구축 및 언어를 의미한다. 



1. Apache (웹 서버)

: 정식명칭은 Apache HTTP server 웹 서버 프로그램이다. 웹 서버란 웹 서비스를 제공해주는 서버이다. 예를 들어 사용자가 웹 사이트에 접속하면 웹 서버에게 HTML 파일을 요청한다. 요청을 받은 웹 서버는 클라이언트 컴퓨터에 HTML 파일을 제공하면서 사용자는 해당 웹 페이지를 볼 수 있게 된다. 여기서 사용자의 요청을 받는 웹 서버는 Apache와 마이크로소프트의 IIS (Internet Information Server), Enginex 등이 존재하며, 사용자가 사용하는 웹 페이지는 브라우저로 크롬, Firefox 등이 존재한다. 

결국 아파치와 같은 웹 서버는 사용자의 웹 브라우저에게 요청을 받으며 해당 요청에 대해 응답 및 제공을 해주는 역할을 담당한다.




2. PHP (웹 프로그래밍 언어)

: Personal Home Page의 약자로 웹 프로그래밍 언어로서 서버에서 실행되는 언어를 말한다. HTML과의 차이점은 HTML은 웹 브라우저에서 소스를 해석해 보여주지만 PHP는 서버에서 해석하여 HTML 코드로 만들어 브라우저에 전달하는 형식이다. PHP는 Apache 웹 서버와 연동하여 동작하며 PHP는 .php 파일을 Apache 는 HTML 파일을 처리한다. 이 외에도 JSP, ASP 등이 사용되고 있지만, 웹에 최적화된 언어, 거의 모든 DB를 지원 하는 장점으로 가장 기본적이면서 전세계에서 가장 많이 쓰이는 언어중 하나이다.




3. MySQL (데이터베이스)

: MySQL은 전세계적으로 가장 널리 사용되고 있는 오픈소스 데이터베이스이다. 
향 후 MySQL과 MariaDB의 차이점에 대해서 따로 포스팅 하겠다.

가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템 (RDBMS: Relational DBMS) 이며, 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용가능하며, 위의 PHP와 함께 웹 개발에 자주 사용된다.

**오픈소스 라이센스이기는 하나 상업적으로 사용할 때는 상업용 라이센스를 구입해야함**


4. APM 구동원리

출처: https://wodonggun.github.io


APM의 구동원리의 경우 (wodonggun님의 블로그 설명과 동일함) 

Client가 인터넷 창에서 URL을 입력하여 원하는 정보를 서버에 요청 -> 서버의 아파치 프로그램은 승인 (80번 포트로 웹서버에 요청 / 웹서버는 사용자에게 홈페이지 정보 HTML, CSS를 날려줌) -> 사용자가 로그인 요청이나 다른 정보 요청하면 PHP 스크립트 실행 -> MySQL에 쿼리 질의 -> MySQL은 저장된 데이터를 DB에서 가져와 가져온 데이터와 PHP 코드를 모두 HTML 형태로 변경하고, 해당 HTML을 아파치에 전송 -> 아파치는 완성된 HTML 파일을 클라이언트 측의 컴퓨터 웹 브라우저에 전달한다.



이번 포스팅에서는 웹서버 설계시 가장 많이 사용되는 APM에 대하여 기술하였다. 다음 포스팅에서는 이러한 APM의 실제 설치 방법과 설치시 알아야할 최근 변경된 이슈에 대해서 정리하여 포스팅 하도록 하겠다.