본문 바로가기

BackEnd

Cloud

1. 클라우드란?

  직역하면 구름으로, 필자는 사용자나 개발자가 언제든지 솜사탕 떼 먹는 것처럼 인터넷만 연결되어 있다면 언제든 다른 컴퓨팅 자원을 사용하게 해주는 "서비스"라고 표현하고 싶다. 예를 들어, 유튜브의 영상을 생각해보자. 과거에는 영상을 직접 자신의 저장소에 저장해서 사람들에게 직접 가서 보여줘야했다. 하지만 이제 유튜브에 올리면 사람들이 찾아서 볼 수 있다. 이 "영상"이라는 단어를 모든 카테고리에 확장 시킬 수 있다. 

 

2.  클라우드는 무슨 컴퓨팅 자원을 제공할까

  음악, 서버 그리고 프로그램 등등 단순하면서 복합적인 것 혹은 모든 것들이 될 수 있다. 개발자는 DB 클라우드 서비스를 이용할 수 있다. 직접 DB를 자신의 옆에 놓지 않아도 AWS나 Microsoft Azure에서 자신의 DB를 사용할 수 있는 서비스를 제공해준다. 이런 시스템은 굉장히 현대사회에 편리하게 다가왔지만 보안 및 컨트롤에서 자유롭지 못하다는 몇몇의 문제점이 존재한다.

 

3. 클라우드 서비스의 장단점

  먼저 장점은 비용감소, 확장성, 접근성 등이다. 개발자나 운영자들은 DB나 서버를 직접 구축하기 위해 물리적인 장치를 직접 구축할 필요가 없고 직접 구축하는 것보다 싼 비용으로 클라우드 서비스를 이용하여 구축할 수 있다.  확장성은 확장하기 쉽게 편하게 개발자들이 만들어놓았다. 이게 무슨 말인가 싶겠지만 개발자 입장에서는 버튼 몇번 눌러서 서버를 더 만들 수 있는 로직들을 클라우드 개발자가 만들어 놓는다는 것이다. 접근성은 인터넷만 연결되어 있다면 우리는 클라우드 서비스를 어디서든 쓸 수 있다.

 

  물론 단점도 존재하고 대표적인 단점들은 보안, 네트워크 의존 그리고 클라우드 업체의 종속성 등이다. 본인의 서버가 아닌 다른 서버에 데이터를 저장하면 다른 서버의 보안이 뚫렸을 시, 자신의 데이터도 위험해지는 상황이 발생한다. 그리고 네트워크가 없는 환경에서는 사용을 못한다는 것과 특정 클라우드 업체에 적응해버리면 해당 업체들의 클라우드 서비스만 사용할 수 밖이 없다는 단점들이 존재한다. 만약 개발자가 AWS 서비스(Lambda, DynamoDB, S3, API Gateway)에 맞춰서 코드를 짰다면, AWS에서 다른 클라우드 서비스로 옮기기 힘들 것이다. 

 

4. 우리는 어떤 클라우드 서비스를 사용해야 할까?

  본인의 혹은 회사의 개발 목적, 예산, 기술스택 그리고 경험들을 고려하여 선택해야한다. 예를 들어, 스타트업이나 개인 개발자는 무료 요금제나 간단한 설정이 가능한 Firebase, Vercel, Render 등을 사용할 수 있고, 기업에서는 확장성과 안정성을 고려해 AWS, Microsoft Azure, Google Cloud Platform(GCP) 같은 대형 클라우드를 많이 선택한다. 특정 서비스에 종속되지 않기 위해, 가능한 범용 기술(예: Docker, PostgreSQL, REST API)을 사용하는 것도 중요하다. 클라우드는 도구일 뿐이고, 그 도구를 어떻게 활용할지는 개발자의 선택과 설계에 달려 있다.

 

 

'BackEnd' 카테고리의 다른 글

Transaction  (2) 2025.07.10