
잼스택과 LAMP 스택의 차이
잼스택은 자바스크립트, API, 마크업(Markup)이라는 세 가지 축을 기반으로 하는 웹 애플리케이션 아키텍처다. JAM이라는 단어도 이 세 기술의 앞 자에서 따왔다. 잼스택을 추구하는 웹 페이지는 표준 마크업 언어로 구성돼서, 애플리케이션 서버 또는 노드JS와 같은 서버 사이드 기술에 의존하지 않고 어디서나 빌드하고 테스트할 수 있다. 이때 인터랙티브 기능은 표준 브라우저에서 실행되는 자바스크립트 코드로 제공된다. 이 코드는 HTTPS를 통해 재사용할 수 있는 API를 호출하며, 해당 호출은 다시 웹페이지에 넣을 수 없는 외부 데이터 및 다른 기능에 액세스하기 위해 사용된다.잼스택이 왜 혁신적인지 알아보려면 일단 LAMP(Linux Apache MySQL PHP) 스택부터 살펴봐야 한다. LAMP 스택은 지난 15년간 웹 개발자가 선택하는 대표적인 개발 방식이었다. LAMP는 리눅스(웹 서버를 구동하는 OS), 아파치(리눅스 시스템에서 실행되는 서버 소프트웨어), MySQL(웹 애플리케이션 데이터가 저장되는 데이터베이스), PHP/펄/파이썬(서버 사이드 작성 언어)의 각 첫 글자를 따와 만든 단어다. LAMP 기반 웹사이트를 방문하면 웹 서버는 서버 사이드 코드를 실행하며, 이 코드는 필요할 때마다 MySQL 데이터베이스에서 데이터를 가져와 웹 페이지를 즉석에서 생성한다.
LAMP 아키텍처는 동적이고 인터랙티브한 웹사이트를 생성할 수 있지만, 강력한 웹 서버가 뒷받침돼야 한다. 사이트로 유입되는 트래픽이 늘어난다면 서버 측에는 더 높은 컴퓨팅 성능이 필요하다. 하지만 아무리 고성능 서버가 있더라도 동적 웹 페이지를 빌드하고 로드하는 데는 시간이 오래 걸릴 수 있다. 요즘처럼 스마트폰으로 웹을 서핑하고 빠른 것을 선호하는 세상에서 로딩 속도가 느리다는 것은 치명적인 골칫거리가 될 수 있다. 잼스택은 이런 상황에서 전통적인 웹사이트 작동 모델에서 탈피해보고자 2010년 급부상했다.
정적 웹사이트의 구조
웹 개발 초보자에게 웹의 동작 방식을 설명하려 할 때 다음과 같은 표현을 쓰곤 한다.
“웹 서버 파일 시스템 어딘가에 HTML 파일이 있고, 그 파일은 http 주소로 접근할 수 있다. 웹 브라우저는 그 HTML 파일을 다운로드한 다음 해석해서 웹 페이지를 생성한다.”