본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

'보시 어워드 2021' 올해 최고의 오픈소스 소프트웨어 29선

support 게시글 작성 시각 2021-10-27 09:32:53 게시글 조회수 4298

2021.10.26.
ⓒITWorld / James R. Borck, Martin Heller | InfoWorld

돈이 나무에서 자라지는 않지만 깃허브(GitHub) 저장소에서는 자란다. 오픈소스 프로젝트는 지구상에서 가장 귀중하고 정교한 소프트웨어를 개발하며, 무료이기 때문에 모든 기업의 IT 비용을 크게 낮춰준다. 최신 소프트웨어를 원한다면 오픈소스 프로젝트를 살펴봐야 하는 이유다.

InfoWorld는 올해도 최고의 오픈소스 소프트웨어를 선별해 2021년 보시 어워드(Bossie Award, Best of Open Source Software Awards)을 발표한다. 수상작은 소프트웨어 개발, 데브옵스(DevOps), 클라우드 네이티브 컴퓨팅, 머신러닝 등의 측면에서 가장 혁신적인 오픈소스 소프트웨어다.
 
스벨트와 스벨트키트
혁신적인 오픈소스 프런트 엔드(Front End) 자바스크립트(JavaScript) 프레임워크 분야에서는 스벨트(Svelte)와 그 풀스택(Full-stack) 제품은 스벨트키트(SvelteKit)가 가장 야심 차고 선진적이다. 스벨트는 컴파일 시간 전략을 도입해 관련 분야를 완전히 바꾸어 놓았고 뛰어난 성능, 지속적인 혁신, 훌륭한 개발자 경험을 통해 발전하고 있다. 스벨트키트는 현재 퍼블릭 베타를 진행 중이다. 스벨트의 전통을 이어 가장 최신 툴을 지원하고 서버리스 환경에 내장 기능을 배치하며 혁신을 주도하고 있다.


미니큐브
도커 데스크톱(Docker Desktop)이 새로운 가격 정책과 라이선스 제공 요건 때문에 사용하기 부담스럽다면 미니큐브(Minikube)를 고려해보자. 이름에서 알 수 있듯이 미니큐브는 데스크톱에서 구동하는 미니어처 쿠버네티스(Kubernetes) 클러스터다. 가상 머신은 필요 없다.

미니큐브는 네이티브 컨테이너 또는 베어 메탈에서 사용할 수 있다. 맥OS나 윈도우에서 리눅스 배포판을 사용할 필요도 없다. 미니큐브는 크로스 플랫폼 방식으로 작동한다. 또한 도커(Docker), CRI-O, 컨테이너드(Containered) 등 다양한 컨테이너 런타임을 지원한다. CI(continuous integration) 플랫폼 호스트 전체가 미니큐브와 네이티브로 호환된다. 쿠버네티스이기 때문에 필요할 때 쿠버네티스 자체의 도구와 구성요소를 사용할 수 있다는 점이 최대 장점이다.
 
픽시
픽시(Pixie)는 쿠버네티스 애플리케이션을 위한 모니터링 툴이다. 서비스 지도, 클러스터 리소스, 애플리케이션 트래픽 등 클러스터의 고수준 상태를 확인하고 팟(Pod) 상태, 플레임(Flame) 그래프, 개별적인 풀바디(Full-body) 애플리케이션 요청 등 더 자세한 정보를 확인할 수 있다.

픽시는 eBPF를 사용해 원격 측정 데이터를 자동으로 수집하고 모든 원격 측정 데이터를 클러스터에 로컬 상태로 저장 및 쿼리 처리하면서도 클러스터 CPU를 5% 미만으로 사용한다. 픽시의 대표적인 활용 사례로는 클러스터 안에서의 네트워크 모니터링, 인프라 건전성, 서비스 성능, 데이터베이스 쿼리 프로파일링 등이 있다.
 
패스트API
장고(Django)와 플라스크(Flask)가 몇 년 동안 파이썬(Python) 웹 프레임워크를 선도했다면, 이제 패스트API(FastAPI)가 그 뒤를 잇고 있다. 패스트API는 다른 웹 프레임워크와 단순히 개발 및 실행 속도 측면에서 경쟁하는 것이 아니다. 패스트API는 처음부터 기본적으로 타입 힌팅(Type Hinting), 비동기화, 고속 구성요소를 사용하도록 작성된 진정한 최신 파이썬 웹 프레임워크이다.

이름에서 알 수 있듯이 패스트API의 보편적인 사용 사례 중 하나는 표준을 준수하는 강력한 웹 API를 신속하게 구축하는 것이다. 하지만 더욱 일반적인 웹 사이트 구축에도 적합하다.
 
크리스털
C의 속도와 루비(Ruby)의 표현력을 가진 프로그래밍 언어를 제공하는 프로젝트인 크리스털(Crystal)은 지금까지 수년 동안 개발에 사용됐다. 올해 초, 크리스털 1.0이 출시되면서 이 언어는 일반 작업에 사용할 만큼 안정화됐다.

크리스털은 정적 타이핑과 LLVM  컴파일러를 사용해 높은 속도를 달성하고 런타임 시의 Null 참조 등의 보편적인 문제를 방지한다. 크리스털은 추가적인 속도 및 편의성을 위해 기존 C 코드와 연동할 수 있으며 컴파일-시간 매크로를 사용해 기본 언어 구문을 확장할 수도 있다.


윈도우 터미널
마이크로소프트 윈도우에 업데이트가 필요한 경우 텍스트 창 안에서 명령줄 애플리케이션을 표시하는 구성요소로 느리고 유연하지 못한 구식 콘솔 호스트를 사용해야 한다. 윈도우 사용자의 이런 불편함을 해소하고 맥과 리눅스 사용자가 오랫동안 누려온 편리한 명령줄 경험을 제공하기 위해 고안된 오픈소스 터미널 애플리케이션이 바로 윈도우 터미널((Windows Terminal)이다.

윈도우 터미널은 장점이 많다. GPU 가속 렌더링은 구형 콘솔 호스트 대비 상당한 성능 향상을 제공하며 구성 옵션을 통해 터미널 외관과 동작을 이전에는 절대로 불가능했던 방식으로 사용자 정의할 수 있다. 아직은 윈도우에서 구현 콘솔 호스트를 대체하지 못했지만 앞으로가 기대되는 오픈소스다.
 
OBS 스튜디오
팬데믹 기간 동안 비디오 캡처 및 라이브 스트리밍이 중요해졌고 이는 현재도 마찬가지다. OBS 스튜디오(OBS Studio)는 상업용 디스플레이 캡처 및 카메라 녹화 제품보다 더 뛰어나다. 사용자는 여러 개의 캡처 소스 정의(실시간 카메라, 데스크톱 전체, 특정 창)를 생성하거나, 캡처를 디스크에 파일로 저장하거나 제공자에게 실시간으로 스트리밍할 수 있다. 단축키를 통해 보기 화면 사이를 원활하게 전환할 수 있어 여러 개의 스트림을 캡처해 함께 편집할 필요가 없다. PIP(Picture in Picture) 효과와 실시간 자막(아직은 테스트 단계) 기능도 지원한다.


숏컷
숏컷(Shotcut)은 다빈치 리졸브(DaVinci Resolve)와 치열한 경쟁을 펼치는 비디오 편집용 교차 플랫폼 툴이다. 이를 이용하면 오디오 및 비디오 트랙의 모든 표준 수정 작업을 처리하고 효과와 레이어링을 적용할 수 있다. 숏컷은 매우 활발한 커뮤니티가 있으며 초보 및 고급 비디오그래퍼를 위한 다양한 교육 비디오와 지침을 제공한다. 맥, 리눅스, BSD, 윈도우에서 구동하며, 크로스 플랫폼인데도 인터페이스가 직관적이고 비슷한 툴과 비교해 상대적으로 사용법이 단순하다.


위브 깃옵스 코어
위브 깃옵스 코어(Weave GitOps Core)는 깃옵스(GitOps)를 활용 툴이다. 깃옵스를 통해 깃(Git)에서 구성을 선언하고 에이전트에 의해 쿠버네티스 클러스터에 적용되도록 할 수 있다. 핵심은 데브옵스 워크플로를 간소화하고 구성 드리프트(Drift)를 방지해 구성의 안정화와 보안을 개선하는 것이다. 특히 보안 관련해서, 위브 깃옵스 코어는 깃 선언 상태의 변경사항을 감지하고 구성 변경사항을 런타임 환경에 마이그레이션하는 ‘중재 엔진’ 역할을 한다. 위브 깃옵스는 CNCF(Cloud Native Computing 깃옵스 레퍼런스 구현인 플럭스(Flux)를 기반으로 한다.
 
아파치 솔라
아파치 솔라(Apache Solr)는 아파치 루센스(Apache Lucene)에 기초한 장수 검색 플랫폼이다. 아파치 루센스는 엘라스틱서치(Elasticsearch) 등의 검색 엔진을 포함해 거의 대부분 소프트웨어의 검색 기능을 지원하는 검색 기술이다. 오픈소스 라이선스를 포기한 엘라스틱서치와는 달리 솔라는 여전히 무료다. 솔라는 클러스터 구성이 가능하고 클라우드에 배치할 수 있으며 클라우드 등급 검색 서비스를 구축할 만큼 강력하다. 심지어 결과를 자동으로 조정하고 가중치를 줄 수 있도록 LTR(Learning To Rank) 알고리즘이 포함돼 있다.


ML플로
특정 기술이 인기를 얻고 충분히 고도화되면서 많은 사람이 참여하면 결국 복잡한 운영 또는 ‘옵스’ 부분을 갖게 되기 마련이다. 머신러닝도 다르지 않은데, 그 대안으로 등장한 것이 ‘ML옵스(MLOps)’이고, 데이터브릭스(Databricks)가 개발하고 리눅스 재단이 호스팅하는 ML옵스 툴이 바로 ML플로(MLflow)다.

ML플로는 다양한 머신러닝을 모델링, 실험, 배치 추적, 관리, 유지하는 ML옵스 플랫폼이다. 코드, 데이터, 구성, 결과 등 실험을 기록 및 쿼리 처리하고 데이터 사이언스 코드를 프로젝트에 패키지화하며 프로젝트를 워크플로에 연결할 수 있는 툴을 제공한다. 머신 러닝을 위한 데브옵스 및 라이프사이클 관리라고 봐도 무방하다.
 
오렌지
오렌지(Orange)는 ‘생산적이고 재미있는’ 데이터 마이닝을 약속한다. 개발 역사가 벌써 1/4세기가 넘어가지만 지금도 여전히 활발하게 개선되고 있다. 오렌지를 이용하면 데이터 분석 워크플로를 생성하고 모든 종류의 머신러닝 및 분석 기능뿐만 아니라 시각화를 수행할 수 있다. R 스튜디오(R Studio), 주피터(Jupyter) 등 프로그래밍 또는 텍스트 기반 도구와는 달리 오렌지는 매우 시각적이다. 위젯을 캔버스 위로 끌어다 놓아 파일을 로딩하고 모델로 데이터를 분석하며 결과를 시각화한다. 파이썬 스크립트 위젯을 사용해 데이터를 프로그래밍 방식으로 조작하는 것도 가능하다.
 
플러터
플러터(Flutter)는 단일 코드베이스에서 모바일, 웹, 데스크톱, 임베디드 기기를 위한 네이티브 컴파일 애플리케이션을 개발하기 위한 구글의 UI 툴킷이다. 다트(Dart) 언어와 완전한 사용자 정의가 가능한 풍부한 머터리얼 디자인(Material Design), 쿠퍼티노(Cupertino) 스타일 위젯에 기초해 네이티브 인터페이스를 만들 수 있다. 플러터의 위젯에는 스크롤링, 탐색, 아이콘, 글꼴 등 iOS와 안드로이드에서 완전한 네이티브 성능을 제공하기 위한 모든 중요한 요소가 통합돼 있다.
 
아파치 슈퍼세트
아파치 슈퍼세트(Apache Superset)는 최신 기업용 비즈니스 인텔리전스 웹 애플리케이션이다. 빠르고 가벼우며 사용하기 쉽기 때문에 초보 개발자부터 전문가까지 사용자가 단순한 원 그래프부터 매우 자세한 deck.gl 지역 관련 차트까지 데이터를 연구하고 시각화 할 수 있다.

슈퍼세트는 데이터 세트를 시각화하고 양방향 대시보드를 개발하는 직관적인 인터페이스, 광범위한 데이터 시각화, 코드가 없는 시각화 빌더, 데이터 시각화를 준비하기 위한 SQL IDE를 제공한다. 또한, 백엔드에서는 대부분의 SQL 사용 데이터베이스를 지원하고 인메모리(In-memory) 비동기 캐싱 및 쿼리도 사용할 수 있다. 확장에 장점이 있는 클라우드 네이티브 아키텍처를 지원한다.


프레스토
프레스토(Presto)는 클러스터에서 구동하는 온라인 분석 처리를 위한 오픈소스 분산형 SQL 엔진이다. 파일부터 데이터베이스까지 다양한 데이터 소스를 쿼리 처리할 수 있으며 여러 BI 및 분석 환경으로 결과를 반환한다.

프레스토는 하이브(Hive), 카산드라(Cassandra), 관계형 데이터베이스, 상용 데이터 스토어 등에서 데이터 쿼리가 가능하며, 하나의 프레스토 쿼리는 여러 소스의 데이터를 결합할 수 있다. 실제로 페이스북은 300PB 데이터 웨어하우스를 포함해 여러 개의 내부 데이터 스토어에 대한 양방향 쿼리에 프레스토를 사용한다.

프레스토 재단(Presto Foundation)은 프레스토 오픈소스 프로젝트 개발을 감독한다. 페이스북, 우버, 트위터, 알리바바가 프레스토 재단을 설립했다. 이외에도 알룩시오(Alluxio), 아하나(Ahana), 업솔버(Upsolver), 인텔(Intel) 등이 회원사로 등록돼 있다.
 
아파치 애로우
아파치 애로우(Apache Arrow)는 최신 CPU와 GPU에서 효율적으로 분석 연산을 처리하기 위해 정리된 데이터와 계층 데이터를 위한 언어 독립적인 칼럼식 메모리 형식을 정의한다. 애로우 메모리 형식은 직렬화 오버헤드 없이 빠른 데이터 액세스를 위한 제로카피(Zero-copy) 읽기를 지원한다. 연속 칼럼식 레이아웃을 통해 최신 프로세서에 포함된 최신 SIMD(Single Instruction, Multiple Data) 연산 기술을 사용해 벡터화를 지원한다.

애로우의 라이브러리는 이 형식을 구현하고 고성능 분석을 포함해 일련의 활용 사례를 위한 요소를 제공한다. 여러 인기 프로젝트가 애로우를 사용해 칼럼식 데이터를 효율적으로 제공하거나 분석 엔진의 기반으로 사용한다. 애로우 라이브러리는 C, C++, C#, 고(Go), 자바, 자바스크립트, 줄리아(Julia), 매트랩, 파이썬, R, 루비, 러스트(Rust) 용으로 제공된다.

 

인터프리트ML
인간이 이해할 수 있는 방식으로 의사결정 과정을 설명할 수 있는 머신러닝 및 딥러닝 방식을 IML(Interpretable Machine Learning) 또는 XAI(Explainable AI)라고 한다. 인터프리트ML(InterpretML)은 여러 개의 최신 머신러닝 해석 기법이 통합된 오픈소스 XAI 패키지다.

이를 이용해 해석 가능한 모델을 학습시키고 기존 AI의 블랙박스 시스템을 설명할 수 있다. 인터프리트ML은 모델의 전체적인 동작과 각 예측의 근거를 이해하는 데도 도움이 된다. EGM(Explainable Boosting Machine) 마이크로소프트 리서치의 ‘글래스 박스’ 모델이 유명한데, 블랙박스 모델의 근사치에 의한 사후 설명을 위해 라임(Lime)을 지원한다.
(후략)

 

[원문 기사 : https://www.itworld.co.kr/news/212054 ]

 

※ 본 내용은 한국아이디지(주) (https://www.idg.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒ 2020 International Data Group. 무단전재 및 재배포 금지. 

맨 위로
맨 위로