MEAN 스택
동적 웹사이트와 웹 애플리케이션 개발을 위한 풀 스택 플랫폼의 일종. 클라이언트와 서버, 데이터베이스 프로그래밍까지 자바스크립트 한 가지로 통일할 수 있다. 한 가지 프로그래밍 언어로 퉁칠 수 있으니 한두 명의 개발자가 북치고 장구치고 상모까지 돌려야 하는 스타트업을 중심으로 인기가 쭉쭉 올라가고 있다. 심지어 Angular를 이용해서 모바일 앱까지 만들어버릴 수도 있다.
MEAN 스택은 정확히 말하면 풀 스택을 위한 몇 가지 소프트웨어를 묶은 일종의 번들 개념이다. 다음과 같은 요소로 구성되어 있다.
- MongoDB : 문서 기반의 NoSQL 데이터베이스. 문서의 표준 형식이 바로 JSON이다. 다른 언어로도 사용할 수 있지만 일단 JSON 기반이므로 자바스크립트와 가장 잘 붙는 편이다. 대다수 클라우드 서비스가 NoSQL 서비스를 할 때 가장 많이 지원하고 있어서 사용자층도 가장 넓다.
NoSQL이 싫으면 MariaDB로 갈아 붙이면 어떨까? 그래도 MEAN인데. - ExpressJS: Node.js에서 가장 널리 쓰이는 웹 프레임워크.
- Angular : 구글에서 개발한 MVC 기반 클라이언트 측 자바스크립트 프레임워크. 원래 이름은 AngularJS였지만 2.0부터는 자바스크립트의 파생형인 타입스크립트를 기본으로 바꿨으며, 그에 따라 '자바스크립트'를 뜻하는 JS를 이름에서 빼버렸다.
- Node.js : 자바스크립트 엔진 기반의 웹 서버.
이 네 가지의 머릿글자를 따면 MEAN이 된다. 발레리 카프로프라는 개발자가 자신의 블로그에서 이 용어를 제안했다. 자바스크립트 기반 풀 스택이라면 이들 중 M, E, N은 대체로 이견이 없지만 A는 좀 얘기가 다른데, 일단 JQuery라는 놈이 클라이언트 측 자바스크립트 라이브러리 중에서는 가장 잘 나가고 있었고 페이스북에서 개발한 React가 JQuery를 추월한 실정이다. Vue.js 역시 사용자가 늘고 있다. Angular 역시 구글을 등에 업고 사용층을 빠르게 늘려 나갔다. 참고로 JQuery, React나 Vue.js 라이브러리는 주로 '뷰'에 집중하고 있는 반면, Angular는 프론트엔드의 풀 스택이라고 할 정도로 다루는 범위가 넓은, 하나의 프레임워크 수준으로 덩치가 크다. 한편으로는 그만큼 배워야 할 것도 많고 진입장벽이 높다는 게 문제.[1] 시간이 지날수록 React나 Vue.js의 인기가 올라가고 Angular가 밀리는 분위기라[2], MEAN 스택보다는 'A'를 'R'이나 'V'로 대신하는 풀 스택 개발 쪽이 좀더 많이 쓰이고 있다.