LAMP 스택

menu icon

LAMP 스택

오늘날의 가장 인기 있는 오픈 소스 웹 애플리케이션 중 일부가 Linux, Apache, MySQL 및 PHP의 시간 검증을 거친 스택인 LAMP에서 실행되는 이유를 알아봅니다.

LAMP 스택이란?

  • 오픈 소스 커뮤니티 전체에서 사용되는 시간 검증을 거친 스택에 대해 자세히 보기
  • 신속하게 진입하여 결과를 얻을 수 있는 동적 언어를 사용한 프로그램
  • 자신의 방식으로 웹 앱을 작성 및 배치할 수 있도록 맞춤형 모듈에서 빌드
  • 자체 경력에 소중한 신규 지식과 스킬을 추가

LAMP 스택에 대해 아마도 약간은 알고 있을 것입니다. 오늘날 가장 인기 있는 오픈 소스 웹 애플리케이션 중 일부(예: WordPress 및 Drupal)가 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 vs. NoSQL 데이터베이스: 차이점"을 참조하세요.
  • PHP: 프로그래밍 언어. PHP 오픈 소스 스크립트 언어는 Apache와 함께 작동하여 동적 웹 페이지의 작성을 지원합니다. HTML을 사용하여 데이터베이스에서 데이터 풀링 등의 동적 프로세스를 수행할 수는 없습니다. 이러한 유형의 기능을 제공하려면, 동적으로 만들고자 하는 페이지의 일부에 PHP 코드를 단순히 드롭하기만 하면 됩니다.

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

 

LAMP 아키텍처의 다이어그램

LAMP 아키텍처

LAMP는 최저 레벨 Linux의 클래식 계층 아키텍처를 보유하고 있습니다. 다음 계층은 Apache 및 MySQL, 그 다음은 PHP입니다. PHP가 명목상으로는 최상위 또는 프리젠테이션 계층이지만, PHP 컴포넌트가 Apache 내부에 있습니다.

각 요소들의 상호 운용 방법

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

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

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

유연성

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

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

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

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

효율성

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

LAMP 스택 및 IBM

기술이 점점 복잡해지므로, 소프트웨어의 기본 작업이 모호해질 수 있습니다. LAMP 스택은 기본으로 돌아가서, 웹 페이지의 기술적 서비스와 이의 수행 방법에 조금 더 가까이 다가갈 수 있도록 안내합니다. 이를 순수한 애플리케이션 작성 방법이라고 말할 수도 있습니다. 자체 데이터베이스, 자체 스크립트 언어 및 클라이언트에 이를 제공하는 방법이 있습니다. 바로 LAMP입니다.

등록하고 IBM Cloud 계정을 만드세요.