In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform. 

For example, to develop a web application, the architect defines the stack as the target operating system, web server, database, and programming language. Another version of a software stack is operating system, middleware, database, and applications. Regularly, the components of a software stack are developed by different developers independently from one another.

Some components/subsystems of an overall system are chosen together often enough that the particular set is referred to by a name representing the whole, rather than by naming the parts. Typically, the name is an acronym representing the individual components.

The term "solution stack" has, historically, occasionally included hardware components as part of a final product, mixing both the hardware and software in layers of support.

A full-stack developer is expected to be able to work in all the layers of the application (front-end and back-end). A full-stack developer can be defined as a developer or an engineer who works with both the front and back end development of a website, web application or desktop application. This means they can lead platform builds that involve databases, user-facing websites, and working with clients during the planning phase of projects.

Examples 
 BCHS
 OpenBSD (operating system)
 C (programming language)
 httpd (web server)
 SQLite (database)

 ELK
 Elasticsearch (search engine)
 Logstash (event and log management tool)
 Kibana (data visualization)

 Ganeti
 Xen or KVM (hypervisor)
 Linux with LVM (mass-storage device management)
 Distributed Replicated Block Device (storage replication)
 Ganeti (virtual machine cluster management tool)
 Ganeti Web Manager (web interface)

 GLASS
 GemStone (database and application server)
 Linux (operating system)
 Apache (web server)
 Smalltalk (programming language)
 Seaside (web framework) 

 GRANDstack
 GraphQL (data query and manipulation language)
 React (web application presentation)
 Apollo (Data Graph Platform)
 Neo4j (database management systems)

 Jamstack
 JavaScript (programming language)
 APIs (Application programming interfaces)
 Markup (content)

 LAMP
 Linux (operating system)
 Apache (web server)
 MySQL or MariaDB (database management systems)
 Perl, PHP, or Python (scripting languages)

 LAPP
 Linux (operating system)
 Apache (web server)
 PostgreSQL (database management systems)
 Perl, PHP, or Python (scripting languages)

 LEAP
 Linux (operating system)
 Eucalyptus (free and open-source alternative to the Amazon Elastic Compute Cloud)
 AppScale (cloud computing-framework and free and open-source alternative to Google App Engine)
 Python (programming language)

 LEMP/LNMP
 Linux (operating system)
 Nginx (web server)
 MySQL or MariaDB (database management systems)
 Perl, PHP, or Python (scripting languages)

 LLMP
 Linux (operating system)
 Lighttpd (web server)
 MySQL or MariaDB (database management systems)
 Perl, PHP, or Python (scripting languages)

 LYME and LYCE
 Linux (operating system)
 Yaws (web server, written in Erlang)
 Mnesia or CouchDB (database, written in Erlang)
 Erlang (functional programming language)

 MAMP
 Mac OS X (operating system)
 Apache (web server)
 MySQL or MariaDB (database)
 PHP, Perl, or Python (programming languages)

 MARQS
 Apache Mesos (node startup/shutdown)
 Akka (toolkit) (actor implementation)
 Riak (data store)
 Apache Kafka (messaging)
 Apache Spark (big data and MapReduce)

MEAN
 MongoDB (database)
 Express.js (application controller layer)
 AngularJS/Angular (web application presentation)
 Node.js (JavaScript runtime)

 MERN
 MongoDB (database)
 Express.js (application controller layer)
 React.js (web application presentation)
 Node.js (JavaScript runtime)

 MEVN
 MongoDB (database)
 Express.js (application controller layer)
 Vue.js (web application presentation)
 Node.js (JavaScript runtime)

 MLVN
 MongoDB (database)
 Linux (operating system)
 Varnish (software) (frontend cache)
 Node.js (JavaScript runtime)

 NMP
 Nginx (web server)
 MySQL or MariaDB (database)
 PHP (programming language)

 OpenACS
 Linux or Windows (operating system)
 NaviServer (web server)
 OpenACS (web application framework)
 PostgreSQL or Oracle Database (database)
 Tcl (scripting language)

 PERN
 PostgreSQL (database)
 Express.js (application controller layer)
 React (JavaScript library) (web application presentation)
 Node.js (JavaScript runtime)

 PLONK
 Prometheus (metrics and time-series)
 Linkerd (service mesh)
 OpenFaaS (management and auto-scaling of compute)
 NATS (asynchronous message bus/queue)
 Kubernetes (declarative, extensible, scale-out, self-healing clustering)

 SMACK
 Apache Spark (big data and MapReduce)
 Apache Mesos (node startup/shutdown)
 Akka (toolkit) (actor implementation)
 Apache Cassandra (database)
 Apache Kafka (messaging)

 T-REx
 TerminusDB (scalable graph database)
 React (JavaScript web framework)
 Express.js (framework for Node.js)

 WAMP
 Windows (operating system)
 Apache (web server)
 MySQL or MariaDB (database)
 PHP, Perl, or Python (programming language)

 WIMP
 Windows (operating system)
 Internet Information Services (web server)
 MySQL or MariaDB (database)
 PHP, Perl, or Python (programming language)

 WINS
 Windows Server (operating system)
 Internet Information Services (web server)
 .NET (software framework)
  SQL Server (database)

 WISA
 Windows Server (operating system)
 Internet Information Services (web server)
  SQL Server (database)
 ASP.NET (web framework)

 WISAV/WIPAV
 Windows Server (operating system)
 Internet Information Services (web server)
 Microsoft SQL Server/PostgreSQL (database)
 ASP.NET (backend web framework)
 Vue.js (frontend web framework)

 XAMPP
 cross-platform (operating system)
 Apache (web server)
 MariaDB or MySQL (database)
 PHP (programming language)
 Perl (programming language)

 XRX
 XML database (database such as BaseX, eXist, MarkLogic Server)
 XQuery (Query language)
 REST (client interface)
 XForms (client)

See also

 Content management framework
 Content management system
 List of Apache–MySQL–PHP packages
 List of Nginx–MySQL–PHP packages
 Web framework

References

Software architecture
Web frameworks
컴퓨팅에서 솔루션 스택(solution stack) 또는 소프트웨어 스택(software stack)은 애플리케이션 지원에 추가 소프트웨어가 필요하지 않는, 완전한 플랫폼을 만드는데 필수적인 소프트웨어 하위 시스템 또는 구성 요소들의 모임이다. 애플리케이션은 이렇게 만들어진 플랫폼 "위에서 실행된다"로 이야기한다.

이를테면, 웹 애플리케이션을 개발하기 위해 설계자는 대상 운영 체제, 웹 서버, 데이터베이스, 프로그래밍 언어으로 스택을 정의한다. 다른 버전의 소프트웨어 스택은 운영 체제, 미들웨어, 데이터베이스, 애플리케이션이다. 일반적으로 소프트웨어 스택의 구성 요소들은 개별 개발자들에 의해 다른 개발자와는 독립적으로 개발된다.

"솔루션 스택"이라는 용어는 역사적으로 전체 솔루션의 일부로서 하드웨어 부품들을 포함했으며, 지원 계층에서 하드웨어와 소프트웨어가 둘 다 혼재되어 있다.

예 
 BCHS
 OpenBSD (운영 체제)
 C (프로그래밍 언어)
 httpd (웹 서버)
 SQLite (데이터베이스)

 ELK
 일래스틱서치 (웹 검색 엔진)
 Logstash (이벤트 및 로그 관리 도구)
 Kibana (데이터 시각화)

 Ganeti
 젠 또는 KVM (하이퍼바이저)
 리눅스 w/ LVM (대용량 장치 관리)
 Distributed Replicated Block Device (스토리지 레플리케이션)
 Ganeti (가상 머신 클러스터 관리 도구)
 Ganeti Web Manager (웹 인터페이스)

 GLASS
 GemStone (데이터베이스 및 애플리케이션 서버)
 리눅스 (운영 체제)
 아파치 (웹 서버)
 Smalltalk (프로그래밍 언어)
 Seaside (웹 프레임워크)

 JAMstack
 자바스크립트 (프로그래밍 언어)
 API
 마크업 (콘텐츠)

 LAMP
 리눅스 (운영 체제)
 아파치 (웹 서버)
 MySQL 또는 MariaDB (데이터베이스)
 펄, PHP, 또는 파이썬 (스크립트 언어)

 LAPP
 리눅스 (운영 체제)
 아파치 (웹 서버)
 PostgreSQL (데이터베이스 관리 시스템)
 펄, PHP, 또는 파이썬 (스크립트 언어)

 LEAP
 리눅스 (운영 체제)
 Eucalyptus (아마존 일래스틱 컴퓨트 클라우드의 오픈 소스 대안)
 AppScale (구글 앱 엔진의 대안으로서 클라우드 컴퓨팅-프레임워크, 자유-오픈 소스)
 파이썬 (프로그래밍 언어)

 LEMP/LNMP
 리눅스 (운영 체제)
 Nginx (웹 서버)
 MySQL 또는 MariaDB (데이터베이스 관리 시스템)
 펄, PHP, 또는 파이썬 (스크립트 언어)

 LLMP
 리눅스 (운영 체제)
 Lighttpd (웹 서버)
 MySQL 또는 MariaDB (데이터베이스 관리 시스템)
 펄, PHP, 또는 파이썬 (스크립트 언어)

 LYME, LYCE
 리눅스 (운영 체제)
 Yaws (웹 서버. 얼랭으로 작성됨)
 Mnesia 또는 카우치DB (데이터베이스. 얼랭으로 작성됨)
 얼랭 (함수형 프로그래밍 언어)

 MAMP
 macOS (운영 체제)
 아파치 (웹 서버)
 MySQL 또는 MariaDB (데이터베이스)
 PHP, 펄, 또는 파이썬 (프로그래밍 언어)

 MARQS
 아파치 메소스 (노드 시작/종료)
 Akka (행위자 구현체)
 Riak (데이터 스토어)
 아파치 카프카 (메시지 전달)
 아파치 스파크 (빅 데이터, 맵리듀스)

 MEAN
 몽고DB (데이터베이스)
 Express.js (앱 컨트롤러 서버)
 AngularJS (웹 앱 애플리케이션)
 Node.js (웹 서버)

 MERN
 몽고DB (데이터베이스)
 Express.js (앱 컨트롤러 서버)
 리액트 (자바스크립트 라이브러리) (웹 앱 애플리케이션)
 Node.js (웹 서버)

 MEVN
 몽고DB (데이터베이스)
 Express.js (앱 컨트롤러 서버)
 Vue.js (웹 앱 애플리케이션)
 Node.js (웹 서버)

 NMP
 Nginx (웹 서버)
 MySQL 또는 MariaDB (데이터베이스)
 PHP (프로그래밍 언어)

 OpenACS
 리눅스 또는 윈도우 (운영 체제)
 AOLserver (웹 서버)
 OpenACS (웹 프레임워크)
 PostgreSQL 또는 오라클 데이터베이스 (데이터베이스)
 Tcl (스크립트 언어)

 SMACK
 아파치 스파크 (빅 데이터, 맵리듀스)
 아파치 메소스 (노드 시작/종료)
 Akka (행위자 구현체)
 아파치 카산드라 (데이터베이스)
 아파치 카프카 (메시지 전달)

 LAMP (소프트웨어 번들)
 윈도우 (운영 체제)
 아파치 (웹 서버)
 MySQL 또는 MariaDB (데이터베이스)
 PHP, 펄, 또는 파이썬 (프로그래밍 언어)

 WIMP
 윈도우 (운영 체제)
 인터넷 정보 서비스 (웹 서버)
 MySQL 또는 MariaDB (데이터베이스)
 PHP, 펄, 또는 파이썬 (프로그래밍 언어)

 WINS
 윈도우 서버 (운영 체제)
 인터넷 정보 서비스 (웹 서버)
 닷넷 프레임워크 (소프트웨어 프레임워크)
 SQL Server (데이터베이스)

 WISA
 윈도우 서버 (운영 체제)
 인터넷 정보 서비스 (웹 서버)
 SQL 서버 (데이터베이스)
 ASP.NET (웹 프레임워크)

 XAMPP
 크로스 플랫폼 (운영 체제)
 아파치 (웹 서버)
 MariaDB 또는 MySQL (데이터베이스)
 PHP (프로그래밍 언어)
 펄 (프로그래밍 언어)

 XRX
 XML 데이터베이스 (BaseX, eXist, MarkLogic Server 등의 데이터베이스)
 XQuery (질의어)
 REST (클라이언트 소프트웨어)
 XForms (클라이언트)

같이 보기 
 저작물 관리 시스템
 웹 프레임워크

각주 

웹 프레임워크