⬅️ 이전: 12.2 MySQL / MariaDB 구축     🏠 분류 목차     다음: 12.1 데이터베이스 구조 개요 ➡️

3 WEBDB 개념도

12.3 인터넷 아키텍처의 완성, WAS 서버와 3계층(3-Tier) 구조

이전 장에서 배운 웹 서버 데몬은 단순히 그림과 글씨 문서 파일(HTML) 껍데기만 뿌려주는 아주 멍청한 바보입니다. 고객이 로그인 버튼을 눌렀을 때 아이디와 비밀번호가 맞는지 프로그래밍(C, Java, PHP) 뇌로 판단을 하고, 뒤에 있는 데이터베이스 엔진에게 “이 사람 정보 좀 줘봐” 라고 명령을 내리는 중간자 브레인이 있어야 합니다. 이 중간 브레인을 WAS(Web Application Server) 라고 불렀습니다.

웹 3계층 아키텍처 구조도

동작 원리: 보안과 트래픽 관리를 위해 현대의 웹 서비스는 [1-브라우저 껍데기] ➡️ [2-WAS 프로그래밍 (PHP, Node.js)] ➡️ [3-데이터베이스 엔진 (MySQL)] 로 구성되는 철저한 ‘3단 논법’ 아키텍처로 세팅됩니다. 외부의 해커가 1단계를 뚫고 들어오더라도 깊은 심연에 박힌 3단계 데이터베이스의 문을 열지 못하게 하는 보안 체계입니다.


1. 전설의 APM (Apache + PHP + MySQL) 스택

단순히 그림판 쪼가리였던 1990년대 초반 인터넷 환경을 폭발시키고, 오늘날의 동적인 ‘게시판’ 혁신 문화를 만들어 낸 리눅스의 가장 핵심적인 조합 패키지입니다.

  • A (웹서버): 클라이언트 네트워크 요청을 제일 앞에서 방어하는 문지기 (Apache / Nginx 탑재)
  • P (WAS 프로그래밍): 아파치가 요청 번호표를 넘겨주면, 복잡한 분기 연산을 처리하는 뇌 모듈 (PHP 모듈 탑재)
  • M (디비 저장소): 최종적으로 사용자의 정보와 글이 적힐 영구 보관소 (MySQL 탑재)

1-1. 최신 트렌드 구조 (Node.js 시대)

현재는 무겁고 오래된 APM 낡은 방식에서, Nginx를 선봉장으로 세우고 언어로 Javascript를 끌어와 쓰는 Node.js 혹은 파이썬의 Django 와 같은 강력한 고속 WAS 체계로 세대 교체가 모두 완료되었습니다.


2. [실습] 패키지를 통한 APM 연동 환경 구동

나의 리눅스 공간에 WAS 프로그래밍 언어인 PHP 를 우겨넣어 연동하는 실습 방법입니다.

실습 1. 구동 언어 (PHP 모듈) 설치 배포

# APT 툴킷으로 복잡한 연산 기능을 하는 서버 언어 모듈인 php-fpm 과
# php가 mysql과 소통하기 위해 사용하는 플러그인(php-mysql)을 세트로 다운로드합니다.
sudo apt update
sudo apt install -y php-fpm php-mysql

실습 2. 정상 구동 버전 확인

가장 유명한 뼈대 언어가 내 리눅스 서버에 잘 스며들었는지 점검합니다.

# 내 리눅스에 어떤 버전의 프로그래밍 언어가 탑재되었는지 확인!
php -v

이제 Nginx(문지기)와 PHP(뇌)와 Mysql(창고) 3개의 유령(데몬)들이 우분투 안에서 하나로 결합하며, 쿠팡이나 네이버 같은 회원가입 로그인이 가능한 거대한 풀 스택(Full-Stack) 서비스 서버가 완벽하게 탄생했습니다!


⬅️ 이전: 12.2 MySQL / MariaDB 구축     🏠 분류 목차     다음: 12.1 데이터베이스 구조 개요 ➡️
서브목차