
들어가며
사실 고백하자면 2x년을 뼈문과로 살아온 사람의 입장에서
'클라우드'란 한낱 맥주에 지나지 않았다.
그러나 IT 기획자가 되기 위해 이것 저것 얕은 지식을 쌓다보니 '클라우드' 기술이라는 단어를 꽤 많이 마주치게 되었고, 이제는 대충 느낌적인 느낌으로는 와닿았지만 부끄럽게도 아직도 단어로 명쾌하게 설명하기는 어려운 수준이다. 어쩌다 보니, 관련 취업 준비도 하게 되어 배운 내용을 간단하게 정리하고자 한다.
클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅으로서 인터넷을 통해
액세스할 수 있는 서버,
그리고 서버에서 작동하는 소프트웨어와 데이터베이스를 의미한다.
하지만 진정한 뼈문과라면 이 말을 보아도, 아직 와닿지 않을 것이다. (삐빅- 정상입니다)
여러 아티클을 통해 이해한 바를 설명해보자면 다음과 같다.
1. Before 클라우드
우선 개발자가 만든 앱, 웹, 게임은 '컴퓨터'를 통해 실행되는 것이 정석이다.
따라서 IT 서비스를 하기 위해서는
(1) 컴퓨터를 구비해야 하고, (2) 컴퓨터 실행환경과 네트워크를 관리해야만 했었다.
라떼 인터넷은 말이야 ...
과거의 인터넷 환경을 떠올려보자.
우리는 문서 작성을 위해 워드, PPT, 한글과 컴퓨터 등의 오피스 프로그램을 설치해야 했고,
동영상은 토렌트와 소리바다에서 다운로드를 받아 감상했고 USB에 자료를 보관해야만 했다.
핸드폰으로 찍은 사진은 USB 케이블을 통해 PC에 사진을 보관했던 시절이 있었다.
2. After 클라우드
클라우드에서 컴퓨팅자원이 비처럼 쏟아져 내려와 ..
하지만 클라우드 기술은 IT 서비스의 개발과 관리, 사용을 혁신적으로 바꿔 놓았다.
이제는 웹상 오피스 프로그램으로 문서작업을 하기보다는
Notion, Wiki, Conflence 등을 통해 문서를 쉽게 작성하고,
유튜브와 넷플릭스를 통해 스트리밍으로 영상을 감상하고,
공유가 필요할 경우 '링크 공유하기'로 링크만 보내면 된다.
핸드폰 사진은 넘치면 구글 드라이브와 네이버 마이박스, 카카오 톡서랍에 보관할 수 있다.
이 모든 환경이 바로 '클라우드'이다.
2-1. 클라우드 기술의 의의
클라우드를 제공하는 회사들은 매우 많은 컴퓨터를 모아놓은 (1) '데이터 센터'를 세움으로써 대신 컴퓨터를 구비해주고
(2) 가상화 기술과 네트워크 등을 접목하여 외부 사용자/개발자들도 클라우드 컴퓨터에 접근할 수 있게 된 것이다.
(-특히 데이터 센터에 있는 한 대의 컴퓨터를 여럿이 동시에 이용할 수 있다-)
이 클라우드 기술을 통해 개발자는 클라우드 환경에서 프로그램을 실행시킬 수 있고,
사용자는 현재의 다양한 IT 서비스를 누릴 수 있게 되었다.
다시 한번 말하자면,
데이터와 컨텐츠는 가상화 기술을 통해 구름에 둘러 싸여 보이지 않는 서버에 저장된다.
그리고 사용자는 이렇게 저장된 컴퓨팅 자원들인
CPU, 메모리, 디스크 등을 '클라우드'라는 구름에서
필요할 때마다 원하는 대로 가져다 쓸 수 있게 된 것이다.
기업 역시 과거처럼 트래픽 급증에 대비하여 필요 이상의 서버 공간을 구비하는 등
필요 이상의 리소스를 낭비하는 것이 아니라,
클라우드 서비스를 통해 필요한 만큼을 사용하고 그에 대한 비용을 지불하기만 하면 된다.
즉 개발자건, 기업이건, 사용자건
인터넷 망만 연결되어 있으면
자원을 원하는 대로 꺼내어 쓸 수 있게 된 것이다.
3. 개발자 입장에서 바라보기(IaaS > PaaS)

3-1. IaaS
IaaS ...? 어떻게 읽어야 할 지 매우 당혹스러웠다.
알아보니 '아이아스' 혹은 '이아스'라고 읽는다고 한다.
개발자 커뮤니티에서 본 정보에 의하면 '아이아스'라고 읽는 경우가 조금 더 많다.
풀어쓰면 Infrastructure As A Service라는데 대부분의 문과생은 이걸 봐도 이해하기 어려울 것이다.
쉽게 말하면 서버를 구동시킬 시스템(운영체제와 컴퓨팅 자원)을 유료로 빌려주는 것이다.
그러나 결국 컴퓨터를 가상으로 빌리는 것이기 때문에 이외의 실행을 위한 환경을 세팅하고,
지속적으로 모니터링 하는 등의 '관리'가 필요하다는 단점이 있다.
3-2. PaaS
크레파스랑 물파스는 알겠는데 PaaS는 또 뭐람?!
그래서 개발자들이 개발에만 몰두할 수 있도록 환경 세팅 및 모니터링 관리를 도와주는 플랫폼이 바로 PaaS이다.
개발자가 코드만 업로드하면,
자동으로 실행되는 프로그램을 업데이트 해주고, 자동으로 스케일링을 해준다.
대표적으로 'Google App Engine' 등 이 있다.
대부분의 스타트업에서는 개발자가 부족하기에
웹, 앱, 서버의 프로그램 개발을 제외하고는 클라우드 PaaS에 맡긴다.
4. 사용자 입장에서 바라보기(> SaaS)
4-1. SaaS
SAS 합동이랑 사스독감까진 알겠는데 SaaS는 또 뭐람?!
상기의 IaaS, PaaS가 개발자가 사용하는 서비스라면, SaaS는 일반 사용자들에게 익숙한 형태의 서비스이다.
IaaS, PaaS를 통해 개발자들이 만든 소프트웨어를 실행시켜,
클라우드 환경에서 제공되는 (개발자가 만든) 모든 소프트웨어를 말한다.
대표적으로 'Google Docs', 'Google Drive', 'Slack' 등이 있다.
클라우드를 제공하는 대형 IT 회사뿐만 아니라
클라우드에서 컴퓨팅 파워를 빌려 새롭게 소프트웨어를 판매한다면 모두 SaaS에 해당한다.
마치며
이상으로 IaaS, PaaS, SaaS를 벼락치기해보았다.
사실 비장한 각오로 작성했지만 진정한 뼈문과라면 한번 읽는다고 이해되지는 않을 것이다.
(한번에 이해되었다면 당신은 뼈문과가 아니니 나가주길 바란다)
참고한 글의 주소는 다음과 같다.
간접 경험을 도와주신 블로그 저자분들께 이렇게라도 출처를 표시하며 감사 드린다.
1. https://www.grabbing.me/IT-1-SaaS-PaaS-IaaS-79cd7661e3fe43e099b7d623777fd7f8
2. https://www.jacobbaek.com/158
3. https://velog.io/@cookncoding/SaaS-vs-PaaS-vs-IaaS
4. https://www.leafcats.com/122
※ 이 글은 여러 아티클을 통해 이해한 바를 정리했기에 잘못된 내용이 존재할 수 있습니다.
댓글을 통해 문제점 혹은 기타출처를 알려주시면 수정하도록 하겠습니다.