사이버 물리 시스템의 자원 제어 프로그래밍 모델과 프로그램 환경
클라우드 컴퓨팅이 사이버 물리 시스템의 자원 관리를 위한 운영체제의 역할을 하려면, 이런 운영체제의 자원 관리 기능을 활용할 수 있도록 서비스를 요청하고 제어하는 프로그래밍 인터페이스가 있어야 할 것이다. 지난 서른여덟 번째 글에서 이런 프로그래밍 인터페이스가 오픈스택과 같은 오픈소스 클라우드 컴퓨팅의 발전과, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체에 의해 산업 표준으로 정의되어 가고, 다양한 클라우드 서비스 제공자와 소프트웨어 간 호환성을 위한 상호운용성 문제가 중요해질 것으로 언급하였다.
클라우드 컴퓨팅의 특성상 네트워크를 통해 원격지에 있는 자원에 접근할 수 있도록 하는 RESTful API와 같은 원격 프로그래밍 인터페이스로 제공될 수밖에 없다. 오픈소스 클라우드 컴퓨팅 소프트웨어인 오픈스택도 모든 API는 RESTful API로 정의되며, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체의 API도 RESTful API로 정의되어 제공된다.
오픈스택이나 아마존웹서비스의 “아웃포스트(Outposts)”, 마이크로소프트의 “애저스택(Azure Stack)”등을 통해 구축되는 사설 클라우드(private cloud)와 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 공용 클라우드(public cloud) 서비스에서 사용가능한 프로그래밍 인터페이스가 현재 클라우드 컴퓨팅의 프로그래밍 모델을 제공하고 있다.
오픈스택이 클라우드 컴퓨팅 분야에서 가장 크게 공헌한 것이 바로 이런 클라우드 컴퓨팅 프로그래밍 모델과 인터페이스에 대해 구체적인 산업계의 합의를 이룰 수 있는 기반이 되었다는 점이다. 오픈스택에서 정의한 프로그래밍 모델과 인터페이스가 실제 기술로서 구현되기 위해 클라우드 컴퓨팅 시스템 내부에서 어떤 방식으로 프로그램되어야 하는지 다양한 실험을 구체적으로 시도하고, 이런 실험과 시행착오의 결과가 오픈스택이라는 하나의 구체적인 소프트웨어로 응집될 수 있도록 하여 클라우드 컴퓨팅이 단순한 용어가 아닌 하나의 구체적인 기술로서 자리를 잡는 데 큰 역할을 한 것이다.
이렇게 오픈스택을 통해 자리를 잡고 구체적으로 모양을 갖추게 된 클라우드 컴퓨팅 기술은 클라우드 컴퓨팅 기술을 이용한 다른 응용 기술을 상상하고 만들 수 있게 해주었다. 제일 대표적인 예가 차세대 이동통신 분야에서 최근 핵심 기술로 부상하고 있는 “네트워크 기능 가상화(Network Function Virtualization; NFV)”이다.
차세대 이동 통신 분야에서 “네트워크 기능 가상화”를 실제 상용 수준의 기술로 만들려고 하는 프로젝트 중의 하나인 가입자망(subscription network) 및 국사(Central Office; CO) 통신 인프라 가상화 기술 개발 프로젝트인 “CORD(Central Office Re-architected as a Datacenter; CORD)”와 같은 프로젝트[8]도 오픈스택을 통해 응집된 클라우드 컴퓨팅 기술이 없었다면 결코 상상하고 실험해볼 수 없는 기술이다. 실제 미국의 이동통신 사업자인 AT&T는 이 CORD 프로젝트를 제안하고 실행하여 미국 내 기가인터넷망의 구조를 오픈스택(OpenStack)과 소프트웨어 정의 네트워크(SDN), 네트워크 기능 가상화(NFV) 기술을 통해 비용을 낮추는 실험을 여전히 진행하고 있다. ONOS라는 오픈소스 네트워크 운영체제로 유명한 ONF에서는 참조(reference) 오픈소스 CORD 구현체인 OpenCORD를 ONOS와 오픈스택을 이용해 개발하는 프로젝트도 진행하고 있다[8].
오픈스택을 기반으로 한 공용 클라우드 서비스를 제공하는 랙스페이스와 같은 회사가 아마존웹서비스와 같은 규모의 비즈니스를 하지 못한다고 해서 실패했거나 영향력이 없는 것이 아니다. 오픈스택으로 산업 표준화된 클라우드 컴퓨팅 API와 프로그래밍 모델이 이를 기반으로 클라우드 컴퓨팅 외의 이동통신과 다른 산업에 필요한 IT 기술의 혁신에 영향을 미치고 있기 때문에 앞으로 비즈니스에의 파급력은 더 커지게 될 것이고, 이러한 영향을 사이버 물리 시스템 기술과 서비스가 받게 될 것이다.
사이버 물리 시스템을 위한 클라우드 컴퓨팅 기술 발전에서 또 하나 필요한 중요한 요소는, 모바일 네트워크와 고성능 유선 네트워크로 연결된 대규모 사이버 물리 시스템을 신속하게 개발할 수 있으면서 안전성과 신뢰성을 손쉽게 확보할 수 있게 해주는 프로그래밍 환경과 런타임 환경이다.
오픈스택이 파이썬(Python) 프로그래밍 환경을 이용해 개발된 것 때문에 파이썬 프로그래밍 언어가 클라우드 컴퓨팅 기술 개발의 표준 개발 환경처럼 부각된 것은 안전성, 신뢰성이 보장된 클라우드 컴퓨팅 기술과 이를 통합하는 사이버 물리 시스템 개발에도 보다 발전된 프로그래밍 언어와 런타임 환경이 필요하다는 것을 간접적으로 암시한다.
파이썬(Python)언어가 오픈스택 개발의 기본 환경으로 사용된 이유는 오픈스택의 전신인 NASA의 네뷸라(Nebula)가 파이썬(Python)으로 개발되었기 때문이다. 이후 랙스페이스(Rackspace)와 같이 공동으로 오픈소스화 하면서 핵심 프로젝트인 노바(Nova)와 스위프트(Swift)를 중심으로 파이썬(Python)이 오픈스택의 공식적인 개발 환경이 되었다. 파이썬 언어가 오픈스택 개발에 사용된 것은 네뷸라 개발팀의 개발 환경 선호도의 영향도 있었던 것 같지만, 파이썬 언어의 특성이 오픈스택 개발의 속도를 유지하고 완성도를 높이는 데 크게 기여한 측면도 있다.
파이썬 언어는 동적 언어여서 저수준의 하드웨어 세부 사항에 신경을 쓰지 않고 프로그램 작성시 개발하려는 알고리즘과 비즈니스 로직에 집중할 수 있게 해주며, 통상적인 의미의 인터프리터 언어이기 때문에(사실은 파이썬 인터프리터가 가상 머신에서 실행하는 바이트코드를 코드 라인 입력 후 즉시 생성하는 컴파일 과정(Just-In-Tim(JIT) compile)이 있기는 해서 완전히 컴파일을 하지 않는다고 보기는 어렵다), 코드를 작성하고 배치함과 동시에 실행시킬 수 있어 개발 시간이 단축되는 장점이 있다.
이와 함께 C와 C++로 작성된 저수준 소프트웨어 모듈들을 통합하여 대형 소프트웨어를 만들 수 있도록 하는 접착 언어(glue language)로서 초반부터 개발된 것도 파이썬이 오픈스택 개발 환경으로 채택되는데 공헌한 주요 특성인 것으로 보인다. 리눅스 환경에서 기존에 C와 C++ 언어로 개발된 저수준 시스템 라이브러리와 모듈들을 C/C++ API를 이용해 파이썬 런타임 환경 안에 통합하는 것도 용이했기 때문에 기존의 하드웨어 자원과 리눅스 운영체제 자원을 클라우드 컴퓨팅 로직으로 효과적으로 통합하기에도 용이했다.
오픈스택 개발에 파이썬을 채용한 것은 초반에는 다소 우연이었을 수 있지만, 결론적으로는 파이썬 언어의 특성 때문에 오픈스택이 대대적으로 성공할 수 있었다. 파이썬 언어를 사용하지 않았다면, 광범위한 영역의 하드웨어와 운영체제 자원을 사용하는 오픈스택 주요 핵심 프로젝트 개발에 훨씬 더 많은 개발 시간이 걸렸을 가능성이 높고, 클라우드 컴퓨팅에 본질적인 로직이 아닌 다른 세부 사항을 해결하느라 6개월마다 새로운 릴리즈의 오픈스택 버전을 발표하는 것은 거의 불가능했을 것이다.
광범위한 지역에 걸친 클라우드 컴퓨팅 자원과 자율 에이전트와 같은 물리적 요소가 통합된 대규모 사이버 물리 시스템을 개발하기 위해, 사이버 물리 시스템이 목적으로 하는 서비스와 비즈니스 로직에 집중하여 손쉽게 클라우드 컴퓨팅 자원과 사이버 물리 시스템 컴포넌트를 개발, 통합하고, 저수준의 시스템 자원 관리와 작업들에 대해서는 사이버 물리 시스템을 개발하는 엔지니어들이 되도록 신경을 쓰지 않게 해주는 개발 및 런타임 환경이 필요하게 된다.
현재까지는 신뢰성과 안전성을 중요하게 생각하는 사이버 물리 시스템의 특성 때문에 미션 크리티컬 시스템을 개발하는데 많이 쓰인 C/C++, 그리고 에이다(Ada)와 같이 실시간 환경 개발을 목적으로 개발된 프로그래밍 언어들이 사이버 물리 시스템의 개발, 통합에 많이 사용되었다. 앞으로 5G 및 차세대 이동통신을 기반으로 한 대규모 사이버 물리 시스템의 개발, 클라우드 컴퓨팅 환경을 다루는데 적합한 프로그래밍 언어와 개발 환경이 사이버 물리 시스템 개발에 새롭게 들어오게 될 것으로 보인다.
파이썬이 좋은 언어이기는 하지만, 엄밀한 소스 코드 정적 분석 및 검증이나 컴파일 타임 메모리 오류 검출과 같은 소프트웨어 신뢰성을 근본적으로 개선, 보장해주는 기능을 지원하기 어려운 측면이 있다. 현재까지는 오픈스택과 같은 클라우드 컴퓨팅 소프트웨어나 클라우드 컴퓨팅 서비스를 다루는 서버리스 컴퓨팅이나 클라우드 네이티브 프로그래밍에 파이썬이 많이 쓰이기는 했지만, 좀더 근본적으로 신뢰성과 안전성을 보장해줄 수 있는 사이버 물리 시스템 소프트웨어 개발 환경이 등장할 것으로 보인다. 이와 함께, 파이썬 환경 자체가 미션 크리티컬 클라우드 컴퓨팅을 위한 요구 사항을 수용해서 새로운 모습으로 진화할 가능성이 있지만, 필자 개인적으로는 파이썬 언어가 개발될 때의 목적이 미션 크리티컬 시스템 개발을 지원하는 것이 아니었기 때문에 이런 변화는 제한적일 것으로 전망한다.
현재 나와 있는 기술중에서 사이버 물리 시스템 개발의 생산성과 안전성에 기여할 수 있을 것으로 보이는 개발 환경은 사용하기 쉽고 클라우드 네이티브 프로그래밍에서 강점을 가지고 있는 “고(go)” 언어, 최근 안드로이드 앱 개발과 마이크로서비스 기반의 분산 컴퓨팅 시스템 개발에 많이 활용되기 시작한 “코틀린(Kotlin)” 언어, 메모리 관리의 안전성을 크게 높이고 간결하고 단순한 구문으로 시스템 프로그래밍과 서버 사이드 프로그래밍에서 각광 받고 있는 “러스트(Rust)” 언어와 같은 특징을 가진 프로그래밍 언어가 사이버 물리 시스템 개발에 많이 활용될 수 있을 것으로 보이는 새로운 프로그래밍 언어이다.
앞으로의 사이버 물리 시스템 개발에는 다양한 계층의 이종(heterogeneous) 자원을 통합해야 하는 이유로 기본적으로 폴리글랏(polyglot) 프로그래밍이 활용될 것으로 보인다. 이 폴리글랏 프로그래밍은 요즘 복잡해지고 있는 인터넷 서비스 개발에서도 빠르게 확산되고 있는 프로그래밍 트렌드이기도 하다. 광범위한 지역에 걸쳐 있는 자율 에이전트와 하부 사이버 물리 시스템 요소들과 클라우드 컴퓨팅 자원이 통합되어 하나의 서비스로서 신뢰성과 안전성을 보장하기 위해 각 계층과 하부 사이버 물리 시스템 요소들의 특성과 요구사항에 맞는 프로그래밍 언어와 런타임 환경이 사용되고, 이들을 통합된 서비스로 엮어내는 점착 프로그래밍 언어와 런타임 환경이 계층을 이루어 서비스를 통합하는 방식으로 개발되어야 하기 때문에 폴리글랏 프로그래밍은 피할 수 없는 트렌드이기도 하다.
Surfshark
VPN (가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인 정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.