본문 바로가기

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

공개SW 소식

2016 오픈소스 프로젝트 기대주 14선

OSS 게시글 작성 시각 2016-06-08 11:24:30 게시글 조회수 3463

2016년 3월 28일 (월)

ⓒ ITWorld, Black Duck Software | InfoWorld


블랙 덕 소프트웨어(Black Duck Software)은 오픈소스 세계를 리뷰하고 지난 해에 시작된 최고의 신규 프로젝트를 시상하며, 2014년 이후로 그 결과를 인포월드(InfoWorld)를 통해 공개하고 있다. 올 해 루키 중 상위 프로젝트 대부분은 영리 기업들이 후원 및 기여하고 있다. 어떤 프로젝트는 후원사의 핵심 제품의 부속물이나 내부 개발 프로젝트의 파생물이며, 어떤 것들은 핵심 제품 자체의 발전을 도모한다. 선정된 프로젝트는 3가지 큰 흐름으로 보여주는데, 도커 컨테이너의 항해, 개방형 협업의 부상, 인공 지능의 부흥이 그것이다.


로켓챗(Rocket.Chat)
로켓챗은 자체 채팅 서비스를 관리하고 싶어하는 커뮤니티와 기업을 위해 개발된 오픈소스 웹 채팅 플랫폼이다. 로켓챗팀은 모듈식 "패키지" 접근방식을 취해 로켓챗이 단순한 메시지와 이모지(Emoji) 지원부터 면대면 화상회의, 다중 사용자 전화 회의, 화면 공유 등까지 실시간 커뮤니케이션을 위한 인상적인 기능을 제공할 수 있도록 했다. 로켓챗은 iOS와 안드로이드를 위한 모바일 앱과 OS X, 윈도우, 리눅스용 네이티브 데스크톱 애플리케이션을 제공한다. 심지어 데스크톱과 모바일을 위한 네이티브 파이어폭스 OS 애플리케이션도 있다. 그리고 로켓챗은 오픈소스이기 때문에 자체 채팅 플랫폼을 구축하고 발전시키려는 개발자들에게 좋은 옵션이다.

매터모스트(Mattermost)
슬랙의 또 다른 오픈소스 대안인 매터모스트는 원래 HTML5 게임을 개발했던 개발사에서 시작한다. 처음에 페이스북 외에서도 게이머들에게 연락을 취할 수 있도록 개발된 게임 포탈 및 메시지 앱인 매터모스트는 제공자가 "대가를 요구한" 기록을 찾기 위한 이유만으로 내부 메시지 서비스를 변경하면서 협업 솔루션으로 재구성되었다. 그 결과, 고(Go)와 리액트(React)로 작성된 오픈소스 자체 설치형 슬랙 대체재가 탄생했다.
매터모스트는 어느 곳에서든 검색 및 접근이 가능한 직관적인 인터페이스를 통해 모든 팀 의사소통을 한 곳으로 통합했다. 사용자는 전화와 PC에서 메시지와 파일을 공유하여 안전한 자체 IT 인프라 내에서 필수적인 커뮤니케이션을 유지한다. 인터페이스는 슬랙과 호환되며 슬랙을 위해 개발된 서드파티 소프트웨어에도 액세스할 수 있다. 1-50명으로 구성된 팀과 수백 또는 수천 명의 사용자가 있는 조직을 위한 2가지 버전을 제공하고 있다.

허블인(Hubl.in)
웹엑스(WebEx)와 고투미팅 같은 화상회의 솔루션은 여러 사무 환경에서 표준 툴이 되었다. 이런 솔루션은 역사적으로 유료 데스크톱 애플리케이션에 의존했지만 새로운 웹 브라우저 기능으로 상황이 바뀌고 있다.
무료 오픈소스 화상회의 솔루션 허블인은 오픈패스(OpenPaaS) 협업 플랫폼을 개발한 오픈소스 소프트웨어 업체 리나고라(Linagora)가 개발했다. 허블인은 플러그인 없이 무료 브라우저 기반 화상회의를 가능하게 함으로써 실시간 커뮤니케이션을 한 차원 발전시켰다. 오픈패스팀은 "이 페이지를 읽을 수 있다면 지금 바로 허블인을 사용할 수 있다"고 말한다. 허블인은 브라우저 간의 분산 커뮤니케이션을 가능하게 하는 WebRTC를 기반으로 한다. 즉, 사용자의 화상회의가 어떤 식으로든 허블인으로 스트리밍되지 않기 때문에 보안이 향상되고 추가적인 프라이버시 보호 계층을 제공한다.

MXNet
딥 러닝 기술의 목적은 인간 두뇌의 신경망을 모델화하는 복수의 처리 계층을 이용하고 네트워크에 학습할 대량의 데이터를 공급함으로써 컴퓨터가 스스로 학습할 수 있도록 하는 것이 목적이다.
MXNet은 CXXNet, 미네르바(Minerva), 퓨린2(Purine2)를 개발한 DMLC가 개발한 가벼운 딥 러닝 라이브러리이다. DMLC는 이들 프로젝트에서 얻은 교훈을 복합적인 상징 및 명령 프로그램에 적용했다. 기본적으로 MXNet은 상황에 따라 상징 및 명령 연산을 자동으로 병렬화하는 동적 의존성 스케줄러(Scheduler)를 사용한다. 그 위에 구성된 그래프 최적화 계층으로 MXNet은 빠르고 메모리 효율이 높다. 라이브러리는 이식성이 뛰어나고 가벼우며 여러 GPU 및 머신으로 즉시 확장할 수 있다. 심지어 스마트폰에서 이미지 인식 등의 작업을 수행할 수도 있다. DMLC 그룹은 대형 오픈소스 기계 학습을 보급하는 것이 목표이다. 이를 위해 MXNet은 딥 러닝 시스템을 개발하기 위한 일련의 청사진과 지침을 포함하고 있다.

바젤(Bazel)
기업은 규모에 상관 없이 경쟁력을 유지하기 위해 신속하고 효율적으로 소프트웨어를 개발해야 한다는 사실을 알고 있다. 구글은 이런 방면에서 매우 뛰어나며, 자사의 지식을 퍼트리기 위해 내부 소프트웨어 개발 시스템의 하위 집합인 바젤을 공개했다.
바젤의 목적은 소스로부터 모든 소프트웨어를 개발하는 공유 코드 저장소를 통해 개발 과정을 가속화하고 신뢰성을 높이는 것이다. 처리 속도를 높이는 병렬화와 캐싱을 통해 테스트와 릴리즈를 자동화하며, 특히 대규모 코드베이스, 복수의 언어, 복수의 플랫폼, 광범위한 테스트가 수반되는 프로젝트에 적합하다. 바젤의 핵심 기능은 구글의 까다로운 업무 환경에서 엄격한 시험을 거쳤다. 현 버전은 리눅스와 OS X만 지원하며, 윈도우는 지원하지 않는다.

리액트 네이티브(React Native)
모바일 앱 개발자들이 어려운 결정을 내려야 할 때이다. 안드로이드, iOS 등을 위한 네이티브 툴을 이용해 개발해야 할까? 아니면 크로스 플랫폼 솔루션을 선택해야 할까? 한편으로는 네이티브 앱이 더 빠르고 더 나은 사용자 경험을 제공한다. 하지만 네이티브 앱을 개발하려면 같은 앱을 차이가 큰 언어와 프레임워크로 최소 두 번은 작성해야 한다. 일반적으로 자바스크립트 코드 작성자들을 위한 크로스 플랫폼 툴은 앱을 한 번만 작성하면 되지만, 성능이 떨어지고 기준에 미치지 못하는 사용자 인터페이스를 제공하는 경우가 많다. 
리액트 네이티브는 페이스북이 후원하는 오픈소스 프로젝트로 두 가지 장점을 모두 누릴 수 있다. 리액트 자바스크립트 라이브러리를 이용해 네이티브 애플리케이션을 구축하는 프레임워크인 리액트 네이티브를 통해 애플리케이션 로직은 자바스크립트로 동작하면서도 iOS와 안드로이드 모두에서 사용자 인터페이스를 완전한 네이티브 상태로 유지한다. 리액트 네이티브는 개발자들에게 모바일 앱 개발에 접근하는 방식에 있어서 패러다임의 변화를 의미한다. "한 번 배우고 어디서든 쓴다."

콘테나(Kontena)
도커 컨테이너는 데브옵스팀들이 애플리케이션을 패키지화하고 배치하는 방식을 혁신하고 있지만 많은 조직들이 여전히 컨테이너를 조율하는데 애를 먹고 있다.
"개발자의 행복을 극대화하기 위해 개발된" 오픈소스 컨테이너 관리 솔루션 콘테나가 있다. 콘테나는 컨테이너 개발을 가속화하고 성공적인 배치의 장애물을 깨뜨리기 위한 멀티호스트 멀티AZ 컨테이너 오케스트레이션, 위브(Weave) 오버레이 네트워크 기술, 백엔드 컨테이너 VPN 접근, 직관적인 애플리케이션 배치 워크플로우 등의 입증된 기술과 기능을 갖고 있다. 콘테나는 기업이 컨테이너화된 시스템을 개발, 배치, 모니터링하는 데 필요한 모든 것을 제공한다. 아무 클라우드 인프라에나 설치할 수 있고 완전한 오픈소스이며 곧 확장을 통해 도커 외에 윈도우 컨테이너, CoreOS rkt, 기타 컨테이너 기술을 지원할 예정이다.

눌리큘(Nulecule)
도커의 OCI(Open Container Initiative)가 애플리케이션 패키징을 간소화했지만 다중 컨테이너 애플리케이션의 모든 인스턴스를 통해 자산 의존성과 관계를 관리하는 것은 여전히 어렵다.
눌리큘은 복잡한 다중 컨테이너 애플리케이션을 패키지화하면서 모든 인스턴스에서 매끄러운 배치를 가능하게 하는 사양이다. 레드햇이 후원하는 눌리큘은 자산 관계의 설명과 트랜스포테이션(Transportation)을 관리하기 위한 전체론적 시스템을 제공한다. 대부분의 컨테이너 조율 시스템은 다중 컨테이너 애플리케이션을 대형 독립체가 아닌 개별적인 구성요소로 처리하는데, 이 때문에 애플리케이션 전체의 유연성과 휴대성이 제한된다. 반면에 눌리큘의 합성 컨테이너 기반 애플리케이션 사양은 다중 컨테이너 애플리케이션을 기술하고 패키지화하는 표준화된 방법을 만들면서도 각 컨테이너 이미지 내에 모든 의존성 참조와 조율 메타데이터를 포함한다.

인스펙(InSpec)
데브옵스 워크플로우는 개발을 둔화시키고 소프트웨어 엔지니어를 좌절시키는 까다롭고 복잡한 컴플라이언스 프로토콜이 넘쳐나는 경우가 많다. 인스펙은 개발 라이프사이클의 필수적인 부분인 컴플라이언스를 위한 컴플라이언스 테스트 프로세스를 자동화함으로써 릴리즈 과정을 용이하게 한다.
컴플라이언스, 보안, 정책 요건을 지정하는 오픈소스 프레임워크인 인스펙은 컴플라이언스 문제를 위한 테스트, 통제의 우선순위를 결정하는 메타데이터 태그, 테스트를 빠르고 효율적으로 운영하는 명령줄 인터페이스 등 일련의 정교한 기능을 제공한다. 사용자는 인스펙 전용 언어로 제어 명령을 작성한다. 그리고 나서 인스펙은 감지된 보안, 컴플라이언스, 정책 문제를 투입값에 따라 표시한다. 그리고 검사 프레임워크는 검사하는 노드에서만 국지적으로 운용되기 때문에 인스펙은 인프라 시스템에서 어느 노드나 검사할 수 있다.

히게이아(Hygieia)
대형 IT 업체만이 오픈소스에 투자하는 것은 아니다. 올 해, 캐피탈 원은 데브옵스 대시보드를 찾았지만 상용 및 오픈소스 솔루션이 없다는 사실을 발견했다. 그래서 자체적으로 개발했다. 히게이아는 지난 해 깃허브(Github)에서 오픈소스 프로젝트로 공개된 기업용 데브옵스 대시보드이다.
캐피탈 원은 소프트웨어 개발 중 히게이아를 이용해 팀 및 책임자들에게 데브옵스 과정 전체에 대한 단순하고 접근 가능한 스냅샷 보기를 제공한다. 히게이아는 대부분의 일반적인 대시보드처럼 개발 과정의 일부만을 전달하는 대신에 위젯(Widget) 보기와 파이프라인(Pipeline) 보기 등 2가지 보기 방식을 통해 포괄적인 개요를 제공한다. 위젯 보기는 현재 스프린트(Sprint), 코드, 기여 활동, 연속 통합 활동, 코드 분석, 보안 분석, 단위 및 기능 시험 결과, 배치 및 환경 상태 등 더욱 자세한 정보를 제공한다. 파이프라인 보기는 개발, 시험, 배치 단계를 통해 각 구성요소의 라이프사이클 진행을 보여준다.

글루코시오(Glucosio)
오픈소스 기여자 벤자민 케렌자는 2015년 5월 2형 당뇨 진단을 받은 후 자신과 같은 사람들이 혈당 수준이나 기타 지표를 추적하기 위한 오픈소스 툴이 없다는 사실을 깨달았다. 그 해 9월, 케렌자와 소규모 개발팀은 최초의 오픈소스 당뇨 모니터링 애플리케이션 글루코시오를 공개했다.
글루코시오 사용자들은 혈당 수준을 입력하고 추적하며 사용자에게 수분을 보충하거나 혈당을 확인하도록 알리는 앱 내 지원을 통해 유용한 정보를 얻는다. 사용자는 심지어 익명의 인구학 또는 개인적인 혈당 트렌드 정보를 제공해 당뇨 연구에 기여할 수 있다. 케렌자와 클루코시오팀은 당뇨 관리와 연구를 위한 사용자 중심적인 무료 앱을 제공하기 위해 노력하고 있다. 클루코시오는 현재 20개 언어로 제공되고 있으며 모든 대륙에서 다운로드되고 있다. 또한 케렌자는 연구원들이 프로그램 참여를 선택한 사용자들의 익명 당뇨 데이터에 접근할 수 있는 무료 API를 제공할 계획이다.

선외 가작 : 볼트(Vault)
해시콥(HashiCorp)은 가볍고 이식성이 좋은 개발 환경을 만들고 구성하기 위한 툴인 베이그런트(Vagrant)로 유명하다. 해시콥의 새 오픈소스 볼트 프로젝트는 API 키, 비밀번호, 인증서, 직원 크리덴셜, 기타 민감한 자원 등을 위한 "안전한 비밀 관리" 툴을 표방하고 있다.
볼트는 데이터를 저장하지 않고 암호화 및 복호화해 보안팀이 암호화 패러미터를 정의할 수 있으며 개발자는 자체 암호화 방법을 개발하지 않고도 암호화된 데이터를 저장할 수 있다. 심지어 볼트는 AWS나 SQL 데이터베이스용 주문형 기밀 정보를 생성한 후, 수명이 끝난 이런 유동적인 기밀 정보를 자동으로 철회할 수 있다. 통합된 접근 인터페이스, 엄격한 접근 제어, 세부적인 감사 로그 등을 통해 기밀 정보의 안전을 보장한다.

선외 가작: RancherOS
랜처 랩스(Rancher Labs)는 컨테이너 운영에 필요한 모든 것을 갖춘 운영체제를 축소한 매우 효율적인 컨테이너 운영 수단을 개발했다. RancherOS는 20MB 용량의 리눅스 배포판으로 도커 컨테이너를 관리하기 위한 가장 손쉬운 수단으로 개발되었다. 이 아이디어는 CoreOS와 유사하지만 약간의 차이가 있다. RancherOS 내의 모든 것은 도커 컨테이너로 동작하며 운영체제 자체도 마찬가지이다.
RancherOS는 리눅스 커널 상에서 직접 도커를 운영하며 모든 사용자 공간 리눅스 서비스를 도커 컨테이너로 배포하기 때문에 2개의 시스템 인스턴스가 생겨난다. 시스템 도커(System Docker) 인스턴스는 각각 컨테이너 내에서 구동하는 모든 시스템 서비스(udev, DHCP, 콘솔)를 시작한다. 사용자 도커(User Docker) 인스턴스는 더 큰 유저 도커 컨테이너 내에서 특수 사용자 컨테이너를 만든다. RancherOS는 컨테이너를 통해 업데이트와 기능을 제공하며 규모에 상관 없이 컨테이너 관리 플랫폼(랜처 랩스의 랜처 시스템 등)을 관리할 수 있다.

선외 가작: OWASP 보안 지식 프레임워크
OWASP(Open Web Application Security Project) 재단은 비영리 커뮤니티로 웹 애플리케이션 보안을 위한 자원과 툴을 제공한다. 여러 웹 개발자들이 스스로 직면한 보안 위험과 취약성을 인지하지 못하고 있다. 이를 위해 OWASP SKF(Security Knowledge Framework)는 개발자들에게 애플리케이션 보안에 관해 가르치기도 하는 무료 오픈소스 웹 앱 보안 시스템을 제공한다.
SKF는 제품 라이프사이클 내내 소프트웨어 개발자를 지원하여 개발 전 및 릴리즈 후 업데이트 중 보안을 확보한다. OWASP-SKF는 개발자들이 데이터를 편집하기 위해 사용하는 처리 기법을 분석한 후 이런 패턴을 알려진 보안 취약성과 일치시킨다. SKF는 연계된 취약성에 관한 설명을 제공하고 솔루션 이행 방법에 대한 피드백을 제공한 후 보안 수정이 올바르게 수행되었는지 검증한다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지



[원문출처 : http://www.itworld.co.kr/slideshow/98526]

맨 위로
맨 위로