본 포스팅에서는 웹서버 구축을 위해 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의 실제 설치 방법과 설치시 알아야할 최근 변경된 이슈에 대해서 정리하여 포스팅 하도록 하겠다.
'IoT Server 설계 > Web Programming' 카테고리의 다른 글
Heidisql 활용을 위한 SQL 유저생성, 권한설정 및 DB 외부접속 (2) | 2018.11.13 |
---|---|
(APM) Apache, PHP, MySQL 이론 및 설치 (2) (1) | 2018.11.10 |