지난 번 글에 이어 계속 좀 더 내용을 보충하겠습니다.
사실 저번에 마저 채워야 했는데, 당시에 너무 피곤해서...
GCP 에서는 공식적으로 매우 많은 언어를 지원합니다.
Go , Python , .NET , Java , Ruby 등 다양한 언어가 있습니다.
하지만, 제가 쓸줄 아는 언어는 기본적으로 Node.js와 PHP입니다.
그러나, 클라우드상에서 뭔가 우리가 "복잡한"작업을 하는데 있어서는 동기식보다는 비동기가 나을 수 있습니다.
왜냐하면, 동기식은 사용자의 웹브라우저에서 기다려야 하는 시간이 있기에 적합하지가 않습니다.
따라서 저는 몇가지 작업을 제외하고는 보통 Node.js를 선호합니다.
( 항상 강조합니다만, 언어의 우월성이 아니라 용도에 맞는 사용입니다. 오해 없기를.. )
그리고, 구글뿐 아니라 3대 클라우드 사들은 Severless(서버리스) 를 열심히 밀고 있습니다.
서버리스란 클라우드상에서 일반적인 서버가 없는 무서버(?) 의 시스템 구성을 의미합니다.
서버없이 클라우드에서 제공해주는 다양한 기능들을 묶어서 예를들면 파일의 저장은 Cloud Storage에, SQL은 Cloud SQL에, 그리고 연산은 Cloud Function을 이용합니다. 그 로직들을 실제로 수행하는것은 Cloud Function(이하 GCF ) 을 이용하고 프로세스간의 통신은 Cloud Pub/Sub을 이용합니다. 그리고 그 GCF가 돌아가는 기반은 Node.js로 되어 있는 Docker입니다.
제가 가장 잘 사용하는 언어가 PHP와 Node.js이므로 주로 이야기는 그 두가지로 풀어갈 것입니다.
물론 구글에서 다른 언어를 지원하지 않는것은 아니므로, 비슷하게 활용하시면 됩니다.
제가 Python 과 Java를 몰라서요.. ( 파이썬은 배워야 하는데 .. )
저는 서버를 하드웨어로 생각하고 있어서 그런지, Serverless 란 개념이 이해가 가지 않습니다. Cloud라도 어떻게든 그 데이터를 처리하는 하드웨어는 있어야 할 것 같은데... 문송해야 하는 궁금증일지 모르겠네요. 제가 문과는 아니라 더 죄송할 수도.. .
우리가 인터넷을 이용할때 그 서버는 제가 관리하는게 아니듯 마찬가지로 서비스를 운영하지만 그게 우리 서버가 아닌것과 마찬가지입니다. 서버리스라는 개념은 실질적인 하드웨어 서버가 없는게 아니라. 서버는 클라우드 회사에서 모든걸 관리해주고 대신에 우리는 “코드/리소스”만 업로드 하여 그 위에서 동작시킨다고 보면 됩니다. 서버리스에서 말하는 기본 개념은 "자잘한 다양한 서비스들을 이미 클라우드가 준비해뒀으니 그 기능들을 활용해서 서버가 아닌 서비스를 임대해서 사용하라" 는 의미로 받아 들이면 됩니다.
따라서 서버 비용이 아닌 서비스 비용을 지불합니다.
이해가 되었습니다. 답변 감사드립니다.
감사히 읽었습니다.
이렇게 개괄하니 한 눈에 들어옵니다