old/Cyber Security

APM: Apache, PHP, MySQL의 역할과 상호작용 이해하기

은색거북이 2023. 3. 31. 00:55
반응형

ARM(Apache, Php, MySql)

정의

웹 서비스를 구현하기 위해서는 웹서버, WAS, 데이터베이스가 필요하고, 주로 쓰였던 조합인 Apache, Php, MySql을 줄여서 부르는 말.

2023년 현재, 보통 웹 서버와 WAS를 합쳐서 구현함.

웹 서버Web Server

  • 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
  • 정적 웹 페이지Static web Pages를 처리Apache Server, Nginx, IIS(Windows 전용 Web 서버)등
  • 웹 서버Web Server 예제

WAS (Web Application Server)

  • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 컴퓨터 프로그램
  • 웹 컨테이너(Web Container)” 혹은 “서블릿 컨테이너(Servlet Container)”라고도 불린다.
  • 동적 웹 페이지 dynamic web page를 처리Tomcat, JBoss, Jeus, Web Sphere, JSP, php등
  • WAS 예제

DB (Database)

  • 데이터베이스란 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
  • DBMS(DataBase Management System)을 사용해서 관리MySQL, NoSQL, IDMS, MongoDB등
  • DB 예제

웹서비스의 구성요소

웹서버: Apache

WAS: php

DB: MySQL

Apache

정의

Apache재단에서 만든 HTTP서버

장점

  • 다양한 기능 지원
  • 서버 구축이 쉬움
  • 무료

단점

  • 서버 자체가 좀 무거움
  • Slow HTTP Header DoS(Slowloris) 공격에 취약점이 발견됨

php

정의

웹 서버를 제어하기 위한 용도로 쓰이는 스트립트 언어

특징

  • 인터프리터 방식
  • 비슷한 언어로는 ASP, JSP등이 있다.
  • 문법이 C언어에 가까움
  • stateless

장점

  • 데이터베이스 연동이 쉬움
  • 파일업로드, 메일 전송등의 기능은 자체적으로 지원
  • 클래스 생성 및 상속이 가능하므로 코드를 모듈화 가능
  • 속도가 빠름

단점

  • 내장함수나 인자 이름 규칙에 일관성이 부족
  • 오류와 예외처리가 일관되지 않음

MySQL

정의

Database Managment System (DBMS)의 하나

데이터베이스를 사용하는데 도움이 되는 도구의 집합.

특징

  • C언어와 C++로 구성
  • SQL에 기반

장점

  • GPL 라이선스로 오픈 소스 = 무료
  • OS 전환이 어렵지 않다
  • 다른 DBMS에 비해서 작고 빠르다.
  • 많은 정보를 사용할 수 있는 대규모 사용자 커뮤니티

단점

  • 트랜잭션 지원이 완벽하지 않다
    예를 들어, 어떤 데이터베이스 시스템에서는 네트워크 장애나 서버 문제 등으로 인해 트랜잭션 처리가 중단될 수 있습니다.
    이 때, 일부 작업은 이미 완료되었지만, 나머지 작업이 중단되어 처리되지 않았기 때문에, 데이터베이스의 일관성(저장된 데이터가 정확하고 유효하다는 것을 보장)이 깨질 수 있습니다.
    이러한 경우에는 데이터베이스 시스템에서 복구 기능을 제공하거나, 개발자가 해당 상황에 대처할 수 있는 코드를 작성하여 일관성을 유지하는 등의 조치가 필요합니다.
반응형