LAMP와 MEAN은 고성능, 엔터프라이즈급 웹 및 모바일 앱을 개발하는 데 사용되는 인기 있는 오픈 소스 웹 스택입니다. 이는 다른 웹 스택과 마찬가지로 개발자가 스택 개발을 통해 모든 기능을 갖춘 웹 애플리케이션을 효율적이고 안정적으로 생성, 배포 및 관리하는 데 사용할 수 있는 기술(운영 체제, 프로그래밍 언어, 데이터베이스, 라이브러리 및 애플리케이션 프레임워크)을 결합합니다.
LAMP와 MEAN은 웹 앱이 모든 프런트엔드 인터페이스, 네트워크 및 백엔드 서버 활동에서 작동하는 데 필요한 다양한 기술 계층 또는 "스택"을 개발자에게 제공한다는 점에서 다릅니다. 예를 들어, 웹 기반 뱅킹 애플리케이션은 LAMP 스택 또는 MEAN 스택을 사용하여 뱅킹 활동을 확인하려는 사용자의 요청을 해석하고 필요한 데이터를 검색하여 사용자 인터페이스에 표시할 수 있습니다.
LAMP는 다음과 같은 스택 기술을 의미합니다.
Linux OS를 사용하면 전체 웹 앱이 지정된 하드웨어에서 올바르게 작동할 수 있습니다. Apache 웹 서버는 사용자의 요청을 변환한 다음 HTTP(Hypertext Transfer Protocol)를 통해 정보를 검색하고 사용자에게 다시 "제공"합니다. MySQL 데이터베이스(관계형 데이터베이스 관리 시스템)는 웹 서버가 사용자의 특정 요청에 따라 검색하고 제공할 수 있는 데이터(예: 은행 명세서 아카이브, 재무 활동, 이미지 파일, CSS 스타일시트)를 저장합니다. PHP 프로그래밍 언어는 Apache와 함께 작동하여 MySQL 데이터베이스에서 동적 콘텐츠를 검색하여 사용자에게 다시 제공합니다. HTML은 정적 콘텐츠(예: 데이터에 관계없이 인터페이스에 남아 있는 헤드라인)를 표시할 수 있는 반면, 사용자 상호 작용에 따라 변경되는 동적 콘텐츠는 PHP에 의존합니다. PERL과 Python 프로그래밍 언어도 LAMP 스택에서 사용할 수 있습니다. 작가 Michael Kunze는 1998년에 발행된 독일 컴퓨터 잡지의 기사에서 LAMP 스택이라는 약어를 처음으로 사용했습니다.
그림 1: LAMP 스택에서 사용자 요청이 처리되는 방식.
MEAN은 다음과 같은 스택 기술을 의미합니다.
AngularJS 프레임워크는 들어오는 사용자 요청을 처리합니다. Node.js는 요청을 구문 분석하고 웹 앱이 이해할 수 있는 입력으로 변환합니다. Express.js는 이러한 변환된 입력을 사용하여 비관계형 NoSQL 데이터베이스인 MongoDB에 대한 호출을 결정합니다. MongoDB가 필요한 정보를 제공하면 Express.js가 데이터를 다시 Node.js로 전송하고, Node.js는 이를 AngularJS 프레임워크로 전송하여 사용자 인터페이스에 요청된 정보를 표시할 수 있도록 합니다.
AngularJS 프런트엔드 프레임워크는 React.js와 같은 다른 프레임워크를 대체할 수 있지만, Node.js 환경은 MEAN 스택에 매우 중요하며 대체할 수 없습니다. 이는 Node.js 전체 스택 JavaScript 개발을 가능하게 하기 때문이며, 이는 MEAN 스택을 사용하여 애플리케이션을 매우 효율적으로 개발하고 관리할 수 있는 주요 이점입니다. AngularJS 프레임워크가 React.js로 대체되면 스택을 MERN이라고 합니다. 약어 MEAN 스택은 2013년 MongoDB 개발자 Valeri Karpov가 처음 사용했습니다.
그림 2는 웹 앱이 사용자의 정보 요청을 이행하기 위해 MEAN 스택 전반에 걸쳐 응답하는 방법의 개략적인 예를 보여줍니다.
그림 2: 웹 앱이 MEAN 스택에서 응답하여 요청을 이행하는 방식.
다음은 LAMP를 사용하여 웹 애플리케이션을 생성하고 배포하고 관리할 때의 몇 가지 이점입니다.
LAMP를 사용하여 웹 애플리케이션을 생성, 배포 및 관리할 때의 단점은 다음과 같습니다.
MEAN을 사용하여 웹 애플리케이션을 생성, 배포 및 관리하면 다음과 같은 이점이 있습니다.
다음은 MEAN을 사용하여 웹 애플리케이션을 생성, 배포 및 관리할 때의 몇 가지 단점입니다.
어느 스택도 다른 스택보다 낫지 않습니다. 그러나 특정 웹 개발 사용 사례에는 LAMP 스택 또는 MEAN 스택이 더 적합할 수 있습니다.
LAMP 스택은 일반적으로 다음과 같은 특성을 가진 웹 애플리케이션 또는 사이트에 더 나은 옵션입니다.
반대로 MEAN 스택은 다음과 같은 웹 애플리케이션 또는 사이트에 더 나은 선택입니다.
기본으로 돌아가자면, LAMP 스택은 웹페이지가 어떻게 기술적으로 제공되는지를 좀 더 가까이에서 이해하게 해줍니다. 데이터베이스, 스크립팅 언어, 그리고 이를 클라이언트에게 제공하는 방식이 하나로 결합된 것이 바로 LAMP입니다.
LAMP 또는 MEAN 스택을 사용하여 애플리케이션을 개발하고 클라우드에 배포하는 것이 얼마나 쉬운지 알아보려면 IBM에서 제공하는 다음 튜토리얼을 참조하세요.
IBM의 완전 관리형 서비스로 Java 애플리케이션 워크로드를 손쉽게 현대화하세요.
혁신을 실현하면서 팀이 기존 애플리케이션을 빠르게 현대화하고 새로운 클라우드 네이티브 서비스를 제공할 수 있도록 역량을 강화하세요.
클라우드 애플리케이션 개발은 한 번 구축하고 빠르게 반복하여 어디에나 배포하는 것을 의미합니다.