[ 프로젝트 BEP ] 최종장 - 엔지니어로서의 마인드셋에 대해 : 우수한 엔지니어는 누구이고, 가져야할 마인드 셋에 대해

이미지
  들어가면서 이제 2025년도 얼마 남지 않은듯 하다.  조금 길어질 수도 있기 때문에  실제로 업로드 하는 것은 새해 이후가 될 가능성도 있으나  올해는 이 글로 마무리 해보려고 한다. 이제 이 최종장을 끝으로 이 프로젝트를 다소 마무리 할 수 있을 것 같다. 물론 전체적으로 글 자체가 부족한 부분이 여려 곳 보이지만,  이는 천천히 개선하기로 하고 일단 마무리를 잘 지어보려고 한다. 이 프로젝트의 목표는 어디까지나 주니어 엔지니어(넓은 범위로서)에게  도움이 될 수 있는 부분을 정리해 놓은 것 이며, 이를 전달하는 것에 주력을 했다. 정확히는 그 사이에 몇 번이나 직장은 바뀌었지만,  내가 다니고 있는 회사에서 작게는 멘터,  크게는 주니어 교육에 활용하기 위한 초안이였다. 들어가기 앞서서 먼저 개발자는 무엇인가에서 부터 시작해서,  수학은 필요한가, 그리고 학위에 대한 이야기를 나누어보았고, 그 다음으로 컴퓨터가 무엇인가에 대해서는,  가장 첫 장인 컴퓨터 개론에서 메모리 손실과 함께 설명하였다. 다음으로는 개발 방법론과 시스템 설계,  그리고 프로그래밍 언어에 대한 이야기로 간단하고 이론적인 이야기를 하였다. 눈치가 빠른 사람은 알 수 있듯이,  현실에서 가질 수 있는 몇 가지 의문으로 시작해서  컴퓨터라는 하드웨어 부터 시작해서,  프로젝트(개발 방법론), 설계, 프로그래밍 언어 순으로  일부러 점점 컴퓨터 세계로 들어가도록 구성을 해 놓았다. 여기서 한 걸음 더 나아가자면, 알고리즘이 들어갈 수는 있겠으나  어디까지나 가볍게 전달하는대에 목적이 있기도 하고,  개인적으로는 당장은 크게 중요하지 않은 부분이 라고 생각 했기 때문이다. 먼저 이 부분에 대해서 좀 더 자세히 이야기해보도록 하자. 시작 부터 모든 지식을 쌓을 수는 없다 이는 개발 영역에서만 해당되는 이야기는 아니지만,  모든 것에는...

[ Essay - Technology ] 왜 현재 IT 패러다임은 클라우드 컴퓨팅인가? : 클라우드 컴퓨팅에 대한 정의


지난해는 클라우드 컴퓨팅의 해였다고 해도 과언이 아니다.

왜냐하면 클라우드 컴퓨팅에 대한 기술적 발전과
클라우드 컴퓨팅에 대한 사람들의 인식

그리고 결정적으로 기업들이 
자사만의 IDC를 유지하는데 어려움을 느끼면서
클라우드 컴퓨팅에 대한 수요가 급상승 했기 때문이다.

이를 증명하듯이 
MS가 다시 한번 세계 굴지의 IT기업으로 돌아왔고
클라우드 컴퓨팅 관련 회사들의 주가는 치솟았다.

따라서 클라우드 컴퓨팅에 대한 수요가 상승하면서
더 많은 서버 증설이 필요하게 됨에 따라

단기간이라고 해도 삼성 전자, SK하이닉스를 비롯한
반도체 제조업들의 매출도 급 상승하였다. 

그렇다면 이러한 질문이 머리속에 떠오른다면
당연한 것이다.

왜 사람들은 클라우드 컴퓨팅에 대해 이야기 했는가?

이 세상에 이유 없는 행위는 없다.

많은 사람들이 클라우드 컴퓨팅에 대한 이야기를 했다면
그리고 실제로 많은 사람들이 클라우드 컴퓨팅를 사용하고 있다면,

더 나아가 세계 시장에서 관련 기업들이 
높은 가치를 평가를 받고 있다면

이는 이유가 있을 것임에는 틀림 없다.

어떤 사람들은 
어떤 이유인지 고찰해보지도 않고
그런 행위를 하는 사람들을 멍청하다고 
생각할지는 모르겠지만

대개 실상은 전혀 그렇지 않다.

많은 사람들이 
그러한 행위를 하는데에는 다 이유가 있다.

그렇다면 
왜 클라우드 컴퓨팅이 패러다임이 되었는지에 대해 
고찰을 해봐야 한다.

진정한 개발자라면
그리고 진정한 엔지니어라면
그렇지 않더라도 진정한 엔지니어가 되고 싶다면,

사회의 문제를 IT 기술로 해결해주는 해결사라면
이에 대해 직감을 가지고 있어야 한다.

그러기 위해서는 우선 클라우드 컴퓨팅이 
무엇 인지에 대해 직감을 가질 필요가 있을 것이다.

그리고 작년에 왜 그렇게 
전 세계적으로 클라우드 컴퓨팅에 대한 이야기로 
가득찼었는지

좀 더 나아가 
현재 왜 IT 패러다임이 클라우드 컴퓨팅인지에
대한 논의도 할 수 있을 것이다.

클라우드 컴퓨팅이란 무엇인가?


지식 쑤셔넣기에 열중하고 있는
똑똑한 현대인들에게는

정의에 대해 정확히 알지 못해도 
클라우드 컴퓨팅이라는 이름으로 
대충은 이해를 가지고 있을 것이다.

클라우드 컴퓨팅은 
IT기술들을 제공 업체에 의해
빌려쓰는 것, 
임대하는 것 등으로 정의 내릴 수 있다.

여기서 말한 IT기술들이란
API가 될 수도 있고,
서버가 될 수도 있으며,
소프트웨어가 될 수도 있고
심지어 저장 공간까지도 포함된다.

따라서 여러 사람이
클라우드 컴퓨팅에 대해 이야기 한다면
자신이 이야기한 클라우드 컴퓨팅의 정의가 
서로 다를 수 도 있다.

그렇기에 이를 분류해 놓고 
이야기 하는 것이 옳을 것이다.

① 클라우드 스토리지(Cloud Storage) 및
클라우드 서버(Cloud Server)
→ Infrastructure as a Service, IaaS


아마 일반 사람들이 
클라우드 컴퓨팅에 대해 이야기를 한다면 

이 클라우드 스토리지에 대해 
이야기를 하고 있을 가능성이 크다.

클라우드 스토리지는 
컴퓨터의 HDD와 SSD에 데이터를 저장하는 것이 아닌

인터넷을 통해 저장 또는 불러오게 된다.

좀 더 정확히는 제공해주는 회사 소유의
복수의 서버에 분산 되어 저장되어지고 
불러오게 된다. 

대표적인 스토리지 서비스는 
아래와 같다.


아마 일반적으로 익숙한 클라우드 스토리지 서비스는 
구글 드라이브와 MS사의 OneDrive일 것이다.

그리고 회사 입장에서 익숙한 것은 


클라우드 서버(Cloud Server)일 것이다.

왜냐하면 이미 많은 기업들이 
무거운 회사 고유의 서버(Internet Data Center, IDC)를 버리고
클라우드 서버로 전환 및 전환을 고려하고 있기 때문이다.

나의 회사 또한 회사를 이사하면서
IDC를 없에고 클라우드 서버로 전환하였다.

많은 회사들이 클라우드 서버로 
전환하는 이유는 간단하다.

직접 데이터 센터(IDC)를 가지고 운영하는 것보다
클라우드 서버를 이용하는 것이 금전적, 인적 등의 
여러가지 비용을 고려했을 때 
훨씬 더 비용이 저렴하기 때문이다.

클라우드 서버를 사용하면
서버를 설치 공간 및 구축 비용이 필요 없으며,

더 이상 보안을 더 이상 신경쓰지 않아도 되며
이로 인한 인력 또한 필요 없게 된다.
(물론 인프라 엔지니어들에게는 
피눈물을 흘릴만한 소식이겠지만)

기본적으로 보안에 대한 책임은 
제공하는 회사가 진다.

여기에 여러가지 이점이 있겠지만
단순히 이 2가지만 놓고 보더라도 
클라우드 서버로 이전하는 것이 
훨씬 유용할 것이다.

따라서 엔터프라이즈급 큰 회사건
스타트업의 작은 회사이건 간에
클라우드 서버를 이용하는것이 대개 더 좋을 것이다.

보통 클라우드 스토리지의 경우는 달 마다 결제,
클라우드 서버의 경우는 사용하는 만큼 결제를 하게 된다.

② 가상 서버(클라우드 상)에서의
소프트웨어 구동
→ Software as a Service, SaaS


우리는 HDD와 SSD와 같은 저장 장치에 두고
단순히 저장만 하지는 않는다. 

소프트 웨어를 구동하기 위해 저장하기도 한다.

클라우드 스토리지에 
이 소프트 웨어를 저장시켜 원격에서 구동도 가능하다.

현재 과거에는 
실제 컴퓨터 저장장치에 설치하고 사용했던 
소프트웨어들이 현재에 들어서는 이러한
클라우드 컴퓨팅 서비스에 의해 제공되어 지고 있다.

MS사의 Office 365

가장 대표적으로 최근에 볼 수 있는 
MS사의 Officee 365이다.

월 만원 정도로 MS사에서 제공하는 소프트웨어를 
클라우드 컴퓨팅으로 사용 가능하다.

역시 끼어 팔기의 대가 답게 
모든 서비스를 다 넣어버렸다.

MathWorks사의 공학용 소프트웨어
MatLab

공학용 소프트웨어로 유명한 MatLab도 
이미 클라우드 컴퓨팅을 통해 사용할 수 있다.

③ IT 솔루션 플랫폼
→ Platform as a Service, PaaS


심지어 어떤 클라우드 컴퓨팅 업체는 
IT 솔루션 플랫폼도 제공해주기까지 한다.

이런 대표적인 회사로 
아마존 웹 서비스(Amazon Web Service, AWS)를 제공하는 
아마존일 것이다.

AWS에서 제공하는 솔루션들은 아래와 같다.


AWS에서 제공하는 솔루션들

또한 
자신들의 솔루션을 통해 
시스템을 구축한 회사들을 명시하고 있는데

엔터프라이즈급 기업들을 시작해


스타트업 


공공 부분 까지

멀지 않은 미래에는 
AWS가 닿지 않는 시스템을 보기 힘들지 않을까 싶다.

이를 증명하듯이
개발자를 구직 할때 
AWS를 다룰 줄 아는 개발자를 
명시하는 회사가 최근 꽤 많이 보이기 시작한다.

따라서 현재 클라우드 컴퓨팅은 
IT업계에서의 여러 패러다임 중 하나가 될 수 밖에 없을 것이다.

그래서 클라우드 컴퓨팅은 무엇인가?


정리해보자면 클라우드 컴퓨팅에 대한 정의는
그 사람이 어떤 입장에 있느냐에 따라
그리고 목적에 따라 다를 수 있다.

어떤 사람이 일반적인 사람이라면
클라우드 컴퓨팅에 대해 클라우드 스토리지(IaaS)나
클라우드 서버에서 소프트웨어를 구동(SaaS)
하는 것을 말하고 있을 가능성이 높다. 

또한
어떤 사람이 회사를 차리고 싶거나
결정권자라면 
시스템을 구축 또는 고려하기 위해 클라우드 서버(Iaas) 및
IT 솔루션 플랫폼(PaaS)을 이야기 하고 있을 가능성이 높으며,

마지막으로
개발자라면
IT 솔루션 플랫폼(PaaS)를 말하고 있을 확률이 높을 것이다.

물론 훌륭한 
엔지니어라면 
이 모든 것을 통틀어서 말하고 있을 것이다.

여기까지 해서 
클라우드 컴퓨팅에 대한 정의에 대해 이야기 해보았다. 




참고 :




2020.09.08 내용 다듬기 및 수정 





이 블로그의 인기 게시물

[ Web ] 웹 애플리케이션 아키텍처 (Web Application Architecture)

[ Web ] 서버 사이드(Sever Side) ? 클라이언트 사이드(Client Side)? 1 [서론, 클라이언트 사이드(Client Side)]

[ Web ] 웹 애플리케이션 서버 아키텍처의 정의 및 유형 ( Define and Types of Web Application Server Architecture )