LAMP 스택은 개발자가 동적 웹 애플리케이션을 빌드, 배포, 관리하는 데 도움이 되도록 함께 작동하는 무료 오픈소스 구성요소의 번들을 나타냅니다.
미하엘 쿤제는 1998년에 처음으로 개발자가 동적 웹 애플리케이션을 빌드, 배포, 관리하는 데 도움이 되도록 함께 작동하는 무료 오픈소스 구성요소 번들을 나타내는 LAMP라는 용어를 만들었습니다. 공통된 구성요소나 레이어가 함께 작동하여 완전히 작동하는 환경을 구성하므로 스택이라고 합니다.
스택의 각 구성요소나 레이어는 무료 오픈소스이므로 누구나 사용하고 액세스할 수 있습니다. LAMP는 구성요소 이름의 각 첫 글자로 구성된 약어입니다.
웹 애플리케이션을 전달하는 전체 솔루션을 제공하기 위해 각 레이어가 함께 작동하는 방식을 살펴보겠습니다. 다음 다이어그램에서는 서로 다른 구성요소가 모두 함께 작동하여 스택을 만드는 방법을 보여줍니다.
Linux 는 LAMP 스택의 운영체제(OS)이자 기반입니다. 1991년에 출시된 Linux는 전 세계적으로 큰 인기를 얻고 있는 무료 오픈소스 OS입니다. 오픈소스이기 때문에 유연하고 맞춤설정이 가능하므로 조직에서 니즈에 맞게 소스 코드를 수정할 수 있습니다. LAMP 스택의 다른 세 가지 요소는 Linux OS 위에 있습니다.
Apache HTTP 서버는 인터넷을 통해 웹 콘텐츠를 전달하는 웹 서버 소프트웨어입니다. 1995년에 출시된 Apache는 세계에서 가장 인기 있는 웹 서버 중 하나로 성장했습니다. Apache는 LAMP 스택의 두 번째 레이어로, 인터넷을 통해 클라이언트 요청을 처리합니다. HTTP(Hypertext Transfer Protocol)를 사용하여 수신 HTTP 요청을 수락한 후 관련 웹 콘텐츠를 제공합니다. Apache는 오픈소스이므로 이 강력한 생태계에 Apache 기능을 확장하는 다양한 모듈이 빌드되었습니다. 이러한 모듈에는 인증, 암호화, 진단, 로깅 등이 포함될 수 있습니다.
MySQL은 애플리케이션 데이터를 저장하기 위한 오픈소스 관계형 데이터베이스입니다. DB-Engines에 따르면 1996년에 출시된 MySQL이 현재 세계에서 두 번째로 많이 사용되고 있는 데이터베이스입니다. LAMP 스택은 MySQL을 사용하여 데이터베이스에 정보를 저장, 관리, 쿼리합니다. 이 정보에는 사용자 계정, 사용자 세부정보, 제품 이름, 고객 기록, 판매, 애플리케이션 등이 포함될 수 있습니다. 사용자는 구조화된 쿼리 언어(SQL)를 사용하여 데이터베이스에 저장된 정보에 쉽게 액세스하고 조작할 수 있습니다.
원래 LAMP의 'P'는 동적 웹페이지를 만드는 데 도움이 되는 1995년에 출시된 프로그래밍 언어인 PHP를 지칭했습니다. 시간이 지남에 따라 'P'는 Python, Perl과 같이 웹 개발에도 널리 사용되고 있는 PHP 이외의 언어가 포함되도록 확장되었습니다.
현재 웹사이트에는 실시간 정보나 업데이트된 정보를 표시하는 동적 기능이 필요합니다. HTML에서는 동적 프로세스를 실행할 수 없으므로 PHP, Perl 또는 Python 코드를 이 기능이 필요한 웹사이트 일부에 삽입할 수 있습니다. HTML은 웹사이트 레이아웃에 사용될 수 있는 반면, PHP, Perl 또는 Python은 전자상거래 웹사이트에서 최신 재고 확인과 같은 실시간 정보를 얻는 데 사용됩니다.
LAMP 스택이 실행되는 동적 웹사이트에서 '야구 점수'를 검색하는 사용자를 위한 간소화된 워크플로가 아래에 있습니다. 각 레이어는 스택의 기본 요소로 Linux에서 실행됩니다.
개발자가 웹 애플리케이션을 빌드하는 데 LAMP 스택을 선택하는 일반적인 이유는 다음과 같습니다.
LAMP를 사용하는 주요 이유 중 하나는 무료 오픈소스라는 점입니다. 즉, 개발자가 독점 소프트웨어에 대한 라이선스 요금을 지불하지 않고도 시작할 수 있습니다. 따라서 웹 애플리케이션 파일럿, 빌드, 배포, 관리 비용이 크게 절감됩니다.
효율성
LAMP 스택 구성요소는 약 30여 년 동안 사용되고 있으며 LAMP는 검증된 웹 개발 솔루션을 제공합니다. 개발자는 기존 권장사항, 코드, 도구를 활용하여 시간과 수고를 절약할 수 있습니다.
유연성
LAMP는 오픈소스이므로 니즈와 비즈니스 요구사항에 적합한 구성요소를 유연하게 선택할 수 있습니다. LAMP 생태계는 코드 샘플, 모듈, 확장 프로그램과 같이 니즈에 맞게 맞춤설정하고 조합할 수 있는 강력한 구성요소를 제공합니다.
커뮤니티
LAMP의 인기 덕분에 프로젝트의 각 단계에서 도움과 지원을 제공하는 숙련된 전문가로 구성된 대규모 글로벌 커뮤니티의 도움을 받을 수 있습니다. 이 활발하고 적극적인 커뮤니티를 통해 권장사항, 도구, 리소스를 공유하고 더욱 빠르고 일관된 출시 주기가 가능해집니다.