클라우드 관련 용어인 IaaS, PaaS, SaaS에 대한 고찰
개발사들은 다양한 방식으로 서버를 사용하고 있는데,
서버를 사용하는 유형은 현재 네 개 정도로 분류할 수 있다.
온프레미스, IaaS, PaaS, SaaS가 그것이다.
온프레미스와 IaaS까진 바로 이해가 되는데, PaaS와 SaaS 개념이 모호하여 글을 작성하며 고찰해보았다.

“X-as-a-Service” 라는 것은 X 라는 자원이 필요한 만큼(수도, 전기처럼) 가져다 쓰고 쓴 만큼 돈을 내는 것이다.
1. 온프레미스(On premise) : 서버 하드웨어, OS, 개발 환경, 소프트웨어까지 100% 스스로 세팅
온프레미스는 서버를 하나부터 열까지 개발자들이 모두 책임지는 방식이다.
서버 장비부터 OS, 개발 환경과 서버 환경 세팅 작업이 필요하다.
90년대의 게임 서버는 온프레미스 방식이어서, 개발자들이 서버 컴퓨터를 직접 조립하고 세팅하며 밤을 지샜다.
2. IaaS(Infrastructure as a Service)
IaaS는 서버 장비를 빌려서 쓰는 방법이다. AWS가 가장 유명한 IaaS다. 개발자는 어딘가에 설치된 아마존의 서버 장비를 빌려서 OS를 설치하고 서버 환경을 준비한다.
흔히 리눅스와 서버 환경인 APM을 깔아서 쓰는 서버가 이 방식이다. 서버 공부하면서 APM 소스빌드 하느라 몇 시간 들이고, 방화벽을 잘 몰라서 삽질했던 걸 생각하면 ㅡ_ㅡ;;;; 공부가 많이 되지만 숙달되면 귀찮은 과정들이다.
3. PaaS(Platform as a Service)
PaaS는 서버 장비와 OS, 개발 환경까지 미리 준비된 것을 쓴다.
개발자는 바로 필요한 코딩 혹은 개발을 진행할 수 있다. 예를 들어, 자바 개발이 필요하다면 자바 개발 환경이 준비된 PaaS 서버를 사용하면 된다. 개발자는 자바 IDE, 환경 변수를 설정하느라 진땀뺄 필요가 없다.
IaaS처럼 APM을 설치하느라 고생할 필요가 없고, DB가 필요하면 DB PaaS, 웹 서버가 필요하면 웹서버 PaaS를 사용하면 된다.
제품 예로는 구글 앱 엔진, MS Azure, Heroku가 있다. 레진 코믹스 서버 개발자는 혼자서 인프라, DB, 서버 구축에 PaaS를 이용했고, 2달만에 뚝딱 만들었다고 한다. https://www.slideshare.net/curioe_/lezhincomics-google-appengine-30453946
4. SaaS(Software as a Service)
SaaS는 소프트웨어를 가져다 쓰고 요금을 내는 것이다. 인터넷에서 사용하고 있는 모든 서비스들이 사실 SaaS라 볼 수 있다.
네이버 메일, 네이버 클라우드, 네이버 웹툰 등 인터넷에서 접하는 모든 서비스가 SaaS다.
번외로 GBaaS(Game-backend as a service)
게임 서버 개발 및 관리에 대한 부담을 덜어주기 위한 서비스다.
개발자는 웹서버 짜고, 소켓서버 짤 고민 없이 GBaaS에 있는 프레임워크를 게임 로직에 맞게 가져다 사용하면 된다.
예시로는 게임 스파크, amazon gamelift 등이 있다.
참고 자료
아이펀 엔진 문대경 대표의 게임 서버 역사 칼럼 http://www.inven.co.kr/webzine/news/?news=169308
MSDN 의 IaaS, paas, saas 설명 https://blogs.msdn.microsoft.com/eva/?p=1383
PaaS의 사용 사례 - 레진 코믹스 개발자 https://www.slideshare.net/curioe_/lezhincomics-google-appengine-30453946