LAMP 스택이란?
오늘날 대부분의 유명한 오픈 소스 웹 애플리케이션 중 일부가 Linux, Apache, MySQL 및 PHP의 이 시간 검증을 거친 스택에서 실행되는 이유를 알아봅니다.
파란색과 검은색 배경
LAMP 스택이란?

LAMP 스택에 대해 아마도 조금은 알고 있을 것입니다. 오늘날 가장 인기 있는 오픈 소스 웹 애플리케이션 중 일부(예: WordPress 및 Drupal)가 LAMP에서 실행되므로, 이는 당연한 일입니다.

하지만 LAMP는 훨씬 더 많은 장점을 갖고 있습니다. 이는 웹을 위한 최초의 오픈 소스 소프트웨어 스택 중 하나였으며, 여전히 웹 애플리케이션을 제공하는 가장 일반적인 방법 중 하나입니다. 이는 또한 매우 널리 사용되기 때문에, 기존 애플리케이션을 업데이트하거나 호스팅하는 작업 중에 이를 자주 접할 수 있습니다. 그리고 이는 많은 사람들에 의해 새로운 맞춤형 웹 앱을 개발하기 위해 선택하는 플랫폼으로 간주되고 있습니다. 

안정성, 단순성, 강력함 등은 LAMP를 설명하기 위해 가장 자주 사용되는 단어들입니다. 이 모든 것만으로도 충분히 배워볼 가치가 있으며, 개발자의 이력에 소중한 추가 경력이 될 수 있습니다.

LAMP 스택 구성요소

LAMP는 Linux, Apache, MySQL 및 PHP의 첫 글자를 딴 것입니다. 이들은 함께 고성능 웹 애플리케이션을 제공하기 위한 검증된 소프트웨어 세트를 제공합니다. 각 구성요소는 스택에 필수 기능을 제공합니다.

  • Linux: 운영체제. Linux는 1990년대 중반 이후로 사용되어 온 무료 오픈 소스 운영 체제(OS)입니다. 오늘날, 이는 산업 전반에서 확장되는 광범위한 글로벌 사용자 기반을 보유하고 있습니다. 일부 다른 운영 체제보다도 추가적인 유연성과 구성 옵션을 제공하므로, Linux는 상당히 인기가 있습니다.

  • Apache: 웹 서버. Apache 웹 서버는 요청을 처리하고 HTTP를 통해 웹 자산을 서비스합니다. 따라서 단순 웹 URL을 통해 공용 도메인의 모든 사용자가 애플리케이션에 액세스할 수 있습니다. 개방형 커뮤니티에 의해 개발되고 유지되는 Apache는 현재 인터넷에서 웹 사이트의 많은 부분을 실행하는 성숙되고 기능이 풍부한 서버입니다. 

  • MySQL: 데이터베이스. MySQL은 애플리케이션 데이터의 저장을 위한 오픈 소스 관계형 데이터베이스 관리 시스템입니다. MySQL을 사용하면 SQL 언어로 손쉽게 쿼리할 수 있는 형식으로 모든 정보를 저장할 수 있습니다. 잘 구조화된 비즈니스 도메인을 다루고 있으며 해당 구조를 백엔드로 변환하려는 경우, SQL은 탁월한 선택사항입니다. MySQL은 대형의 복잡한 사이트까지도 실행하기에 적합합니다. SQL 및 NoSQL 데이터베이스에 대한 자세한 정보는 "SQL과 NoSQL 데이터베이스: 차이점"을 참조하세요.

  • PHP: 프로그래밍 언어. PHP 오픈 소스 스크립트 언어는 Apache와 함께 작동하여 동적 웹 페이지의 작성을 지원합니다. HTML을 사용하여 데이터베이스에서 데이터 풀링 등의 동적 프로세스를 수행할 수는 없습니다. 이러한 유형의 기능을 제공하려면, 동적으로 만들고자 하는 페이지의 일부에 PHP 코드를 단순히 드롭하기만 하면 됩니다. 

PHP는 효율성을 위해 설계되었습니다. 이는 새로운 코드를 작성하고, 리프레시를 수행하고, 컴파일 없이도 최종 변경사항을 즉시 볼 수 있도록 함으로써 프로그래밍을 보다 손쉽고 좀 더 재미있게 만들 수 있습니다. 원하는 경우, Perl 또는 점점 인기를 끄는 Python 언어를 위해 PHP를 교체할 수 있습니다.

LAMP는 Linux를 최하위 레벨로 하여 클래식 계층 아키텍처를 가지고 있습니다. 다음 계층은 Apache 및 MySQL, 그 다음은 PHP입니다. PHP가 명목상으로는 최상위 또는 프리젠테이션 계층이지만, PHP 구성요소가 Apache 내부에 있습니다.

LAMP 스택 구성요소의 연동 방식

LAMP 스택 실행 순서를 살펴보면 요소들이 어떻게 상호 운용되는지를 볼 수 있습니다. Apache 웹 서버가 사용자의 브라우저에서 웹 페이지에 대한 요청을 수신하면 프로세스가 시작됩니다. PHP 파일에 대한 요청인 경우, Apache는 파일을 로드하고 파일에 포함된 코드를 실행하는 PHP로 요청을 전달합니다. PHP는 또한 MySQL과 통신하여 코드에서 참조되는 모든 데이터를 페치합니다. 

그 다음, PHP는 파일의 코드와 데이터베이스의 데이터를 사용하여 브라우저가 웹 페이지를 표시하는 데 필요한 HTML을 작성합니다. LAMP 스택은 정적 웹 페이지는 물론 날짜, 시간, 사용자 ID 및 기타 요소에 따라 로드 시마다 컨텐츠가 변경될 수 있는 동적 페이지를 처리하는 데도 효율적입니다. 

파일 코드를 실행한 후, PHP는 최종 데이터를 다시 Apache 웹 서버로 전달하여 브라우저에 전송합니다. 이는 MySQL에 이 신규 데이터를 저장할 수도 있습니다. 물론 이러한 모든 조작은 스택의 기반에서 실행되는 Linux 운영 체제에 의해 작동됩니다.

LAMP 스택 유연성

LAMP가 Linux를 OS로 사용하지만, 대체 OS의 기타 구성요소를 사용하여 특정 요구사항을 충족시킬 수도 있습니다. 예를 들어, Microsoft Windows를 사용하는 WAMP 스택, Mac OS의 MAMP, 심지어는 Windows를 사용하는 WIMP, 그리고 Microsoft의 IIS(Internet Information Services) 웹 서버 등이 있습니다. 

LAMP가 모두 오픈 소스이고 비독점적이므로, 사용자는 벤더 종속성을 피할 수 있습니다. 특정 프로젝트나 비즈니스 요구사항에 맞는 적절한 구성요소를 선택할 수 있는 유연성이 있습니다.

LAMP는 다른 방식으로도 유연성을 제공합니다. Apache는 설계상 모듈형이며, 사용자는 많은 다양한 확장에 사용할 수 있는 기존의 커스터마이징 가능한 모듈이 있다는 사실을 알게 됩니다. 이러한 모듈은 다른 언어에 대한 지원에서부터 인증 기능까지 매우 다양합니다. 

LAMP의 또 다른 장점은 기업에서 입증된 안전한 아키텍처와 잘 정립된 암호화 사례입니다.

LAMP 스택 및 개발 효율성

LAMP는 개발 시간 단축을 지원합니다. LAMP가 10년 넘게 사용 가능했던 오픈 소스 스택이므로, 오늘날에는 상당한 LAMP 에코시스템이 존재합니다. 사람들이 이전에 만들었던 것들 위에 구축을 하고, 이를 자신의 것으로 만들 수 있습니다. 이미 80% 진행된 Apache 모듈 내에서 작업하고 마지막 20%를 사용자 정의하면, 결과적으로 상당한 시간을 절감할 수 있습니다.

관련 솔루션
LAMP 구성

LAMP 스택으로 구성된 클래식 가상 서버에서 고성능 웹 앱을 제공합니다.

LAMP 구성 살펴보기
리소스 관계형 데이터베이스란?

관계형 데이터베이스는 키를 통해 결합된 여러 테이블의 데이터를 구조화합니다. SQL(Structured Query Language)은 관계형 데이터베이스와 상호작용하기 위한 표준 프로그래밍 언어입니다.

MEAN 스택이란?

MEAN(MongoDB, Express.js, AngularJS, Node.js)은 클라우드용 애플리케이션에 주로 사용되는 엔드 투 엔드 JavaScript 스택입니다.

다음 단계

LAMP를 시작할 준비가 되셨나요? 이 간단한 튜토리얼에서는 가상 프라이빗 클라우드(VPC) 환경 구축 및 가상 서버 인스턴스(VSI) 프로비저닝부터 LAMP 스택 설치 및 호스팅, WordPress 프로비저닝 및 구성에 이르기까지 VPC에서 LAMP 스택의 프로비저닝 및 구성을 자동화하는 방법을 설명합니다. (IBM Cloud 계정이 필요합니다.)

LAMP 튜토리얼 사용해 보기