2021.02.02

칼럼 | 클라이언트 서버리스라는 '새 바람'을 환영하며

James Kobielus | InfoWorld
현대의 사용자는 어느 장소에 있고, 어떤 기기나 장치를 사용하고 있든 손끝으로 인터넷 전체를 이용하기를 바란다. 그러나 이것은 불과 얼마 전까지만 해도, 애플리케이션 개발자가 구현해 전달하기 어려웠던 기능이자 역량이다. 

지난 몇 년간 스마트폰과 브라우저, 임베디드 장치가 발전을 거듭한 후 이들 도구는 전 세계에 분산된 모바일 리치 클라이언트로 기능하게 되었다. 로컬 환경이나 고속 통신망과 연결할 때와 비슷한 원격 사용자 경험을 전달할 수 있다.

이런 이정표에 도달할 수 있었던 이유는 서버리스 아키텍처와 마이크로서비스, 클라우드 네이티브 서비스, 개발자의 전 세계 어디서나 확장 가능하고 신뢰할 수 있는 웹 애플리케이션 빌드를 지원하는 방식이 부상했기 때문이다. 지금부터 클라이언트-서버리스 아키텍처의 기원과 2021년 전망에 대해 설명한다. 
 

앱 개발을 위한 새로운 리치 클라이언트 패러다임

이러한 추세가 본격화되면서, 연결된 인터넷 애플리케이션을 위한 새로운 패러다임이 세상의 주목을 받았다. 클라이언트 서버리스 컴퓨팅으로 불리는 접근법이다. 사용자가 어디에 있든, 액세스하는 리소스가 어디에서 제공되든, 모든 스마트폰이나 엣지 장치에서 지속적으로 동적인 대화형 애플리케이션 경험과 환경을 전달한다.

리치 클라이언트 장치가 광범위하게 도입되고, 전 세계적으로 분산형 클라우드 서비스를 이용할 수 있게 되면서 클라이언트 서버리스 컴퓨팅이라는 트렌드가 한층 더 확산되었지만, 이는 개발자에게 더 많은 것을 요구한다. 이제 개발자는 자신의 프로그램 코드가 하나의 데이터센터나 클라우드 지역에 위치한 데이터베이스, 앱 서버, 웹 서버 액세스에 주로 사용될 것이라고 가정할 수 없게 되었다. 

개발자는 여러 다양한 클라이언트 장치에서 사용자 인터페이스를 렌더링할 클라이언트 사이드 자바스크립트, 서버 사이드 비즈니스 로직과 마크업을 구축해야 한다. 또한, 이들은 REST(원격 API)나 JSON(데이터 형식용) 같은 산업 표준 인터페이스를 기반으로 고품질의 브라우저 사이드(측) 인터페이스에 최적화된 애플리케이션을 코딩해야 한다.
 

빠른 리치 클라우드 앱 개발

클라이언트 서버리스는 클라이언트 측 GUI를 백엔드 SQL 데이터베이스에 연결하는 LAN 및 PC와 함께 등장한 오래된 3계층 애플리케이션 아키텍처에 뿌리를 두고 있다. 하지만 이 새로운 패러다임은 21세기 멀티 클라우드 컴퓨팅 플랫폼에 훨씬 더 적합하다. 클라이언트 서버리스가 다음과 같은 특징을 갖고 있기 때문이다.
 
  • 모든 클라이언트 애플리케이션에서 호출할 수 있고, 페이고(Pay-as-you-go) 기반이며, 안전하면서 일관된 웹 네이티브 API를 통해 지연률을 낮추고 컴포저블 기능을 제공한다.
  • 언제 어디서나 모든 컴퓨팅 인프라 구성요소에서, 요구에 따라 애플리케이션을 쉽게 서비스, 구성, 소비할 수 있다.
  • 개발자가 클라우드-투-엣지 환경 전반에 걸쳐 신속하게 기능을 배포하고 확장할 수 있도록 돕는다.
  • 기반이 되는 비즈니스 로직이 멀리, 또 광범위하게 분산되어 있는 경우에도 애플리케이션 성능이 저하되지 않도록 보장한다.
  • 백엔드 애플리케이션 로직이 제공되는 물리적 위치와 운영 플랫폼을 추상화한다.
  • 프로그래머가 애플리케이션 로직 실행이 동적으로 할당될 컨테이너, 가상머신, 기타 백엔드 런타임 엔진을 관리하는 로직을 작성할 필요가 없다.
  • 백엔드 클라우드 플랫폼의 CPU, 메모리, 스토리지, 기타 하드웨어 활용과 관련된 밀도, 효율성, 용량을 높인다.
 

특정 서버리스 컴퓨팅 패브릭에 종속되지 않아

이런 접근법의 서버리스 요소는 클라우드 공급업체가 애플리케이션 비즈니스 로직을 실행할 백엔드 머신 리소스에 대한 할당을 동적으로 관리하는 유틸리티 컴퓨팅 모델이다. 

서버리스 트랜젝션 데이터베이스를 공급하는 파우나(Fauna)의 에반 위버 최고 기술 책임자는 “잼스택 아키텍처(자바스크립트, API, 마크업)가 부상하면서 서버리스 앱 사용이 증가했고, 많은 개발자가 이를 구현하게 되었다. 그러나 이런 새로운 컴퓨팅 방식을 활성화한 다른 아키텍처도 많다. 마이크로서비스의 급증을 예로 들 수 있다. 현재 개발자는 구축이나 구현 방법을 결정할 때 그 어느 때보다 선택권이 많다”라고 설명했다.

클라이언트 서버리스 인프라와 도구는 개발자가 많은 긍정적인 기능과 특징을 갖고 있는 클라이언트 서버리스 클라우드 앱의 빌드를 돕고 있다. 이런 애플리케이션들은 통상 다음과 같은 특징을 지닌다.
 
  • 구성가능성(컴포저블): 클라이언트 서버리스 도구는 인터넷에 호환되는 API를 이용, SaaS 클라우드에서 마이크로서비스로 액세스되는 백엔드 기능을 소비할 수 있도록 해준다.
 
  • 유연성: 클라이언트 서버리스 추상화 계층은 모든 규모, 복잡성, 기능성의 분산형 클라우드 애플리케이션 개발을 지원할 수 있다. 개발자는 클라이언트 로직을 서버 애플리케이션, 워크플로우 엔진. 기타 인프라 구성요소에 대한 마이크로서비스로 배포할 수 있다.
 
  • 견고성: 클라이언트 서버리스 환경은 안전하고, 신뢰할 수 있고, 상태를 추적할 수 있고, 트랜젝션 측면에서 일관된 애플리케이션 개발에 도움을 준다. 애플리케이션은 서버리스 데이터 API를 매개체로 분산된 환경의 모든 장소에서 이용할 수 있는 안전한 데이터베이스를 이용한다.
 
  • 다이내믹 : 클라이언트 서버리스는 본질적으로 정적 프로비저닝, 리소스 낭비, 운영 오버헤드, 보안 문제 등의 도전과제를 갖고 있는 관리형 가상 머신 및 컨테이너 모델을 탈피해 발전하고 있는 클라우드 인프라 도입을 촉진하고 있다. 클라우드 인프라는 동적이고, 무한대로 확장 가능하며, 도처에 전개할 수 있고, 고객에게 운영 부담을 부과하지 않는 API 모델로 옮겨가고 있다. 스트라이프(Stripe) 지불이나 트윌리오(Twilio) 메시징 등 API에 액세스 가능한 비즈니스 기능이 운영 부담 없이 클라이언트 서버리스 환경에 점차 더 많이 도입될 전망이다.
 

성장 전망

클라이언트 서버리스 도구와 플랫폼은 2021년 이후에 IT와 애플리케이션 개발이라는 세계에 큰 영향을 가져올 전망이다. 이를 알려주는 징후들이 많다. 클라이언트 서버리스 플랫폼과 도구를 기반으로 클라우드 애플리케이션을 개발하는 기업은 점차 늘고 있다.

AWS와 람다(Lambda), 클라우드플레어(Cloudflare) 같은 더 발전된 서버리스 컴퓨트 백엔드, 서버리스 데이터 플랫폼, 스노우플레이크(Snowflake) 같은 서버리스 데이터 웨어하우징, Next.js와 RedwoodJS 같은 서버리스 개발 프레임워크로 옮겨 가기 시작한 기업도 많다.

잼스택과 GraphQL, 파우나 데이터베이스 같은 순수한 클라이언트 서버리스 기술은 기업과 개발 분야 종사자 사이에 아직 널리 보급되지 않은 상태다. 그렇지만 위치에 영향을 받지 않고, 물리적 인프라와 완전히 분리된 방식으로 자사 애플리케이션 인프라를 확장하기 위해 서버리스 백엔드를 활용하는 기업은 여전히 많다.

클라이언트 서버리스 혁신이 가속화되면 서버리스 컴퓨팅 환경은 컴퓨팅 기능에만 초점을 맞췄던 것을 넘어 클라이언트 측면에서 리치 모바일 및 엣지 애플리케이션에 더 중점을 두게 될 것이다. 클라이언트 서버리스 환경의 부상은 또 다른 우버나 트위터를 탄생시킬 수도 있다. 규모는 작지만 초점을 맞춘 개발 팀이 이 새로운 애플리케이션 패러다임의 혁신 잠재력을 활용하게 될 것이기 때문이다. editor@itworld.co.kr 



2021.02.02

칼럼 | 클라이언트 서버리스라는 '새 바람'을 환영하며

James Kobielus | InfoWorld
현대의 사용자는 어느 장소에 있고, 어떤 기기나 장치를 사용하고 있든 손끝으로 인터넷 전체를 이용하기를 바란다. 그러나 이것은 불과 얼마 전까지만 해도, 애플리케이션 개발자가 구현해 전달하기 어려웠던 기능이자 역량이다. 

지난 몇 년간 스마트폰과 브라우저, 임베디드 장치가 발전을 거듭한 후 이들 도구는 전 세계에 분산된 모바일 리치 클라이언트로 기능하게 되었다. 로컬 환경이나 고속 통신망과 연결할 때와 비슷한 원격 사용자 경험을 전달할 수 있다.

이런 이정표에 도달할 수 있었던 이유는 서버리스 아키텍처와 마이크로서비스, 클라우드 네이티브 서비스, 개발자의 전 세계 어디서나 확장 가능하고 신뢰할 수 있는 웹 애플리케이션 빌드를 지원하는 방식이 부상했기 때문이다. 지금부터 클라이언트-서버리스 아키텍처의 기원과 2021년 전망에 대해 설명한다. 
 

앱 개발을 위한 새로운 리치 클라이언트 패러다임

이러한 추세가 본격화되면서, 연결된 인터넷 애플리케이션을 위한 새로운 패러다임이 세상의 주목을 받았다. 클라이언트 서버리스 컴퓨팅으로 불리는 접근법이다. 사용자가 어디에 있든, 액세스하는 리소스가 어디에서 제공되든, 모든 스마트폰이나 엣지 장치에서 지속적으로 동적인 대화형 애플리케이션 경험과 환경을 전달한다.

리치 클라이언트 장치가 광범위하게 도입되고, 전 세계적으로 분산형 클라우드 서비스를 이용할 수 있게 되면서 클라이언트 서버리스 컴퓨팅이라는 트렌드가 한층 더 확산되었지만, 이는 개발자에게 더 많은 것을 요구한다. 이제 개발자는 자신의 프로그램 코드가 하나의 데이터센터나 클라우드 지역에 위치한 데이터베이스, 앱 서버, 웹 서버 액세스에 주로 사용될 것이라고 가정할 수 없게 되었다. 

개발자는 여러 다양한 클라이언트 장치에서 사용자 인터페이스를 렌더링할 클라이언트 사이드 자바스크립트, 서버 사이드 비즈니스 로직과 마크업을 구축해야 한다. 또한, 이들은 REST(원격 API)나 JSON(데이터 형식용) 같은 산업 표준 인터페이스를 기반으로 고품질의 브라우저 사이드(측) 인터페이스에 최적화된 애플리케이션을 코딩해야 한다.
 

빠른 리치 클라우드 앱 개발

클라이언트 서버리스는 클라이언트 측 GUI를 백엔드 SQL 데이터베이스에 연결하는 LAN 및 PC와 함께 등장한 오래된 3계층 애플리케이션 아키텍처에 뿌리를 두고 있다. 하지만 이 새로운 패러다임은 21세기 멀티 클라우드 컴퓨팅 플랫폼에 훨씬 더 적합하다. 클라이언트 서버리스가 다음과 같은 특징을 갖고 있기 때문이다.
 
  • 모든 클라이언트 애플리케이션에서 호출할 수 있고, 페이고(Pay-as-you-go) 기반이며, 안전하면서 일관된 웹 네이티브 API를 통해 지연률을 낮추고 컴포저블 기능을 제공한다.
  • 언제 어디서나 모든 컴퓨팅 인프라 구성요소에서, 요구에 따라 애플리케이션을 쉽게 서비스, 구성, 소비할 수 있다.
  • 개발자가 클라우드-투-엣지 환경 전반에 걸쳐 신속하게 기능을 배포하고 확장할 수 있도록 돕는다.
  • 기반이 되는 비즈니스 로직이 멀리, 또 광범위하게 분산되어 있는 경우에도 애플리케이션 성능이 저하되지 않도록 보장한다.
  • 백엔드 애플리케이션 로직이 제공되는 물리적 위치와 운영 플랫폼을 추상화한다.
  • 프로그래머가 애플리케이션 로직 실행이 동적으로 할당될 컨테이너, 가상머신, 기타 백엔드 런타임 엔진을 관리하는 로직을 작성할 필요가 없다.
  • 백엔드 클라우드 플랫폼의 CPU, 메모리, 스토리지, 기타 하드웨어 활용과 관련된 밀도, 효율성, 용량을 높인다.
 

특정 서버리스 컴퓨팅 패브릭에 종속되지 않아

이런 접근법의 서버리스 요소는 클라우드 공급업체가 애플리케이션 비즈니스 로직을 실행할 백엔드 머신 리소스에 대한 할당을 동적으로 관리하는 유틸리티 컴퓨팅 모델이다. 

서버리스 트랜젝션 데이터베이스를 공급하는 파우나(Fauna)의 에반 위버 최고 기술 책임자는 “잼스택 아키텍처(자바스크립트, API, 마크업)가 부상하면서 서버리스 앱 사용이 증가했고, 많은 개발자가 이를 구현하게 되었다. 그러나 이런 새로운 컴퓨팅 방식을 활성화한 다른 아키텍처도 많다. 마이크로서비스의 급증을 예로 들 수 있다. 현재 개발자는 구축이나 구현 방법을 결정할 때 그 어느 때보다 선택권이 많다”라고 설명했다.

클라이언트 서버리스 인프라와 도구는 개발자가 많은 긍정적인 기능과 특징을 갖고 있는 클라이언트 서버리스 클라우드 앱의 빌드를 돕고 있다. 이런 애플리케이션들은 통상 다음과 같은 특징을 지닌다.
 
  • 구성가능성(컴포저블): 클라이언트 서버리스 도구는 인터넷에 호환되는 API를 이용, SaaS 클라우드에서 마이크로서비스로 액세스되는 백엔드 기능을 소비할 수 있도록 해준다.
 
  • 유연성: 클라이언트 서버리스 추상화 계층은 모든 규모, 복잡성, 기능성의 분산형 클라우드 애플리케이션 개발을 지원할 수 있다. 개발자는 클라이언트 로직을 서버 애플리케이션, 워크플로우 엔진. 기타 인프라 구성요소에 대한 마이크로서비스로 배포할 수 있다.
 
  • 견고성: 클라이언트 서버리스 환경은 안전하고, 신뢰할 수 있고, 상태를 추적할 수 있고, 트랜젝션 측면에서 일관된 애플리케이션 개발에 도움을 준다. 애플리케이션은 서버리스 데이터 API를 매개체로 분산된 환경의 모든 장소에서 이용할 수 있는 안전한 데이터베이스를 이용한다.
 
  • 다이내믹 : 클라이언트 서버리스는 본질적으로 정적 프로비저닝, 리소스 낭비, 운영 오버헤드, 보안 문제 등의 도전과제를 갖고 있는 관리형 가상 머신 및 컨테이너 모델을 탈피해 발전하고 있는 클라우드 인프라 도입을 촉진하고 있다. 클라우드 인프라는 동적이고, 무한대로 확장 가능하며, 도처에 전개할 수 있고, 고객에게 운영 부담을 부과하지 않는 API 모델로 옮겨가고 있다. 스트라이프(Stripe) 지불이나 트윌리오(Twilio) 메시징 등 API에 액세스 가능한 비즈니스 기능이 운영 부담 없이 클라이언트 서버리스 환경에 점차 더 많이 도입될 전망이다.
 

성장 전망

클라이언트 서버리스 도구와 플랫폼은 2021년 이후에 IT와 애플리케이션 개발이라는 세계에 큰 영향을 가져올 전망이다. 이를 알려주는 징후들이 많다. 클라이언트 서버리스 플랫폼과 도구를 기반으로 클라우드 애플리케이션을 개발하는 기업은 점차 늘고 있다.

AWS와 람다(Lambda), 클라우드플레어(Cloudflare) 같은 더 발전된 서버리스 컴퓨트 백엔드, 서버리스 데이터 플랫폼, 스노우플레이크(Snowflake) 같은 서버리스 데이터 웨어하우징, Next.js와 RedwoodJS 같은 서버리스 개발 프레임워크로 옮겨 가기 시작한 기업도 많다.

잼스택과 GraphQL, 파우나 데이터베이스 같은 순수한 클라이언트 서버리스 기술은 기업과 개발 분야 종사자 사이에 아직 널리 보급되지 않은 상태다. 그렇지만 위치에 영향을 받지 않고, 물리적 인프라와 완전히 분리된 방식으로 자사 애플리케이션 인프라를 확장하기 위해 서버리스 백엔드를 활용하는 기업은 여전히 많다.

클라이언트 서버리스 혁신이 가속화되면 서버리스 컴퓨팅 환경은 컴퓨팅 기능에만 초점을 맞췄던 것을 넘어 클라이언트 측면에서 리치 모바일 및 엣지 애플리케이션에 더 중점을 두게 될 것이다. 클라이언트 서버리스 환경의 부상은 또 다른 우버나 트위터를 탄생시킬 수도 있다. 규모는 작지만 초점을 맞춘 개발 팀이 이 새로운 애플리케이션 패러다임의 혁신 잠재력을 활용하게 될 것이기 때문이다. editor@itworld.co.kr 

X