전통적인 백엔드 스택과 서버리스에 관하여

 

파이어베이스(Firebase)와 몽고DB(MongoDB) 및 익스프레스(Express)

의 사용에 있어서 차이점이 궁금했다.

 

 

* 몽고와 익스프레스를 사용할 때는 Node.js 환경에 임포트하여 웹 서버를 구축하여 사용할 수 있고, 파이어베이스를 사용할 때는 전과 같은 스택을 사용하지 않아도 간편하게 사용할 수 있는가?

 

- 바로 파이어베이스가 백엔드 기능을 '백엔드 애즈 어 서비스(Backend as a Service, BaaS)' 형태로 제공하기 때문이다. 

이러한 서비스는 개발자가 서버 측 로직을 직접 관리하고 데이터베이스를 설정할 필요 없이, 클라우드를 통해 데이터베이스, 인증, 파일 저장소 등의 백엔드 기능을 쉽게 사용할 수 있게 해 주기 때문이다. 개발자는 API 호출을 통해 이러한 기능을 쉽게 사용할 수 있으며, 서버리스 아키텍처를 통해 인프라 관리 부담을 줄일 수 있다.

 

* 그렇다면 저렇게 간편한 서버리스 아키텍처를 사용하지 않고 몽고나 익스프레스를 사용하는 경우는 무엇인가?

 

- 전통적인 백엔드 스택인 몽고나 익스프레스는 개발자가 서버의 구성, 데이터베이스 관리, API 개발, 인증 시스템 구현 등 백엔드 시스템의 모든 측면을 설계하고 구현해야 한다. 이 과정은 완벽한 제어와 유연성을 제공하여 애플리케이션에 필요한 맞춤 설정과 제어를 가능하게 하기 때문이다.

 


 

전통적인 백엔드 스택

전통적인 백엔드 스택은 서버, 데이터베이스, 백엔드 애플리케이션으로 구성되며, 개발자가 직접 서버를 관리하고 애플리케이션을 운영하는 구조이다.

이 방식에서는 LAMP (Linux, Apache, MySQL, PHP/Python/Perl) 또는 MEAN (MongoDB, Express.js, Augular, Node.js)과 같은 기술 스택이 자주 사용된다.

 

장점

  • 커스터마이징 용이 : 서버 환경과 애플리케이션 구성 요소를 자유롭게 선택하고 조정할 수 있어, 맞춤형 솔루션을 개발하기에 용이하다.
  • 제어력 : 서버와 애플리케이션의 모든 측면을 직접 제어할 수 있어, 세부적인 최적화 관리가 가능하다.

단점

  • 관리 부담  : 서버의 운영, 유지보수, 보안 업데이트 등 관리해야 할 요소가 많아 관리 부담이 크다.
  • 확장성 : 트래픽이 증가할 경우 서버를 수동으로 확장해야하며, 이는 시간과 비용이 많이 소요될 수 있다.

 

서버리스(Serverless)

서버리스는 서버 관리를 클라우드 서비스 제공업체에 위임하고, 개발자가 애플리케이션의 코드 작성에만 집중할 수 있게 하는 아키텍처이다. 

AWS Lambda, Azure Functions, Google Cloud Functions와 같은 서비스를 사용하여 코드를 실행할 수 있으며, 애플리케이션의 실행에 필요한 리소스는 자동으로 관리된다.

 

장점

  • 관리 부담 감소 : 서버 운영과 관리가 클라우드 제공업체에 의해 자동으로 이루어져, 관리 부담이 크게 감소한다.
  • 비용 효율성 : 실제 사용한 만큼만 비용을 지불하기 때문에, 비용 효율적이다.
  • 자동 확장 : 애플리케이션의 트래픽에 따라 자동으로 확장되므로, 확장성이 뛰어나다.

단점

  • 콜드 스타트 : 일정 시간 동안 함수가 호출되지 않으면 "콜드 스타트"가 발생할 수 있어, 응답 시간이 길어질 수 있다.
  • 벤더 종속성 : 특정 클라우드 제공 업체의 서비스에 종속될 위험이 있다.

 


 

각 방식은 고유의 장단점을 가지고 있으며, 프로젝트의 요구 사항, 예산, 개발 팀의 기술적 역량 등을 고려하여 선택해야 한다. 전통적인 백엔드 스택은 더 많은 제어와 유연성을 제공하지만 관리의 복잡성이 증가하는 반면, 서버리스는 관리 부담을 줄여주고 비용 효율성을 높여주지만 특정 클라우드 제공 업체의 서비스에 종속될 위험이 있다.

'ETC' 카테고리의 다른 글

웹(WEB)이란  (1) 2024.06.12
Firebase Permission denied 문제 - 해결방법  (0) 2024.04.19
4가지 렌더링 방식  (0) 2024.04.11
Cookies, Session, Cache에 대해 알아보자.(1)  (0) 2023.11.03
주석 작성법을 알아보자!  (1) 2023.11.02