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