현대의 웹 애플리케이션을 통한 소프트웨어 배포를 이야기하기 전에, 가장 고전적인 소프트웨어 배포 방법을 떠올려봅시다. 2010년대 이전으로 돌아가 흔히 소프트웨어를 배포한다고 하면, CD/DVD와 같은 디스크를 통해 설치 파일을 제공받거나, 인터넷을 통해 setup.exe install.msi 와 같이 설치 파일을 다운로드하여 애플리케이션을 설치했습니다. 이는 스마트폰을 이용해 모바일 앱을 다운로드하여 사용하고 있는 현재에도 여전히 유효한 소프트웨어 배포 방식 중 하나입니다.
그러나 웹 애플리케이션이라고 불리는 소프트웨어를 사용하려면, 이제는 웹 브라우저를 열고 서비스를 제공하는 웹사이트에 접속하고, 로그인 과정 정도만 거치고 나면 즉시 사용할 수 있습니다. 어느덧 "소프트웨어"라는 말보다는 "서비스"라는 말이 더 익숙하고, "프로그램"보다는 "앱"이라는 용어가 더욱 친숙하게 다가올 것입니다. 여기서 각 용어에 대한 엄밀한 구분이 크게 의미 있는 일은 아닙니다. 이 강의에서도 해당 용어는 맥락에 맞게 혼용해서 사용합니다.
클라우드 서비스는 이러한 배경에서 탄생했습니다. 클라우드 서비스가 있기 이전에도 웹사이트는 존재했습니다. 그러나 최근 들어서 클라우드 서비스가 주목받는 것은, 웹사이트가 이제는 애플리케이션 규모로 발전했기 때문입니다.
우리가 관심을 가져야 할 주제는 바로, 현대의 웹 애플리케이션은 과연 어떻게 소비자에게 전달되고 있느냐입니다. 우리는 앞으로 이러한 웹 애플리케이션 배포 방법에 포커스를 맞출 것입니다.
웹사이트를 밑바닥부터 직접 만들어서 인터넷상에 올려 본 경험이 있는 사람이 아니고서는, 이 모든 과정은 생소하게 느껴질 수 있습니다. 그래서 다음에 언급할 사전 지식을 먼저 알아두는 것이 중요합니다.
출시 기한을 정해놓고 소프트웨어 완성: 폭포수(waterfall) 모델
고객의 요구에 민첩하게 대응하여 지속적인 전달: 애자일(Agile) 모델
SaaS(Software as a Service)
장점
→ 이를 달성하기 위해 전달 워크플로가 수립되어야 하며, 자동화가 필수적

이런한 전달/배포 파이프라인을 구성하는 것 역시 DevOps의 영역!