2017년 최고의 오픈소스 소프트웨어 : 소프트웨어 개발 툴
OSS
게시글 작성 시각 2017-10-12 07:07:22
2017년 10월 11일 (수)
ⓒ ITWorld, Jonathan Freeman, Andrew C. Oliver, Serdar Yegulalp, | InfoWorld
올해 오픈소스 소프트웨어 개발 툴 중에는 JVM을 수용한 개발자, IoT 개발자, 웹 개발자, 네이티브 개발자, 더 나아가 블록체인을 갈망하는 개발자들을 위한 도구들이 주목을 받았다. 2017년 개발자를 만족시킨 플랫폼, 프레임워크, 프로그래밍 언어, 기타 도구들을 소개한다.
![](http://files.idg.co.kr/itworld/bos17-ethereum-100736839-orig.jpg)
이더리움
이더리움(Ethereum)은 스위스 비영리 재단이 운영하는 블록체인을 위한 플랫폼으로, 프로젝트를 시작한 사람들이 관리도 맡고 있다. 그렇다고 기업들이 이더리움을 지원 또느 후원하지 않는다는 의미는 아니다. 그러나 극히 기업 친화적인 경쟁기술인 하이퍼레저(Hyperledger)와는 달리 이더리움은 오픈소스 프로젝트처럼 문제를 해결하고, 개발자를 지원한다. 블록체인은 현실이고, 이더리움은 블록체인 활용의 출발점이 될 수 있는 툴이다. 스크립트를 지원하는 분산형 컴퓨팅 플랫폼, 분산형 가상머신, 암호 통화, 기타 도구와 기술 등을 제공한다.
이더리움(Ethereum)은 스위스 비영리 재단이 운영하는 블록체인을 위한 플랫폼으로, 프로젝트를 시작한 사람들이 관리도 맡고 있다. 그렇다고 기업들이 이더리움을 지원 또느 후원하지 않는다는 의미는 아니다. 그러나 극히 기업 친화적인 경쟁기술인 하이퍼레저(Hyperledger)와는 달리 이더리움은 오픈소스 프로젝트처럼 문제를 해결하고, 개발자를 지원한다. 블록체인은 현실이고, 이더리움은 블록체인 활용의 출발점이 될 수 있는 툴이다. 스크립트를 지원하는 분산형 컴퓨팅 플랫폼, 분산형 가상머신, 암호 통화, 기타 도구와 기술 등을 제공한다.
![](http://files.idg.co.kr/itworld/bos17-apollo-server-100736840-orig.jpg)
아폴로 서버
아폴로 서버(Apollo Server)는 대부분의 Node.js HTTP 서버 프레임워크를 지원하는 GraphQL 서버이다. 2016년 4월에 처음 개발되었으며, 2017년 6월 출시된 1.0 릴리스에서 가용성과 지원 측면에서 큰 발전을 일궈냈다. GraphQL을 이용하면, 애플리케이션의 데이터 소스를 단일 API 엔드포인트에서 단일 JSON 객체로 통합할 수 있다. 여러 엔드포인트에서 응답을 통합해야 하는 REST보다 훨씬 효율적인 방식이다. 티켓마스터(Ticketmaster)와 오픈테이블(OpenTable) 등이 아폴로 서버를 사용하고 있다.
아폴로 서버(Apollo Server)는 대부분의 Node.js HTTP 서버 프레임워크를 지원하는 GraphQL 서버이다. 2016년 4월에 처음 개발되었으며, 2017년 6월 출시된 1.0 릴리스에서 가용성과 지원 측면에서 큰 발전을 일궈냈다. GraphQL을 이용하면, 애플리케이션의 데이터 소스를 단일 API 엔드포인트에서 단일 JSON 객체로 통합할 수 있다. 여러 엔드포인트에서 응답을 통합해야 하는 REST보다 훨씬 효율적인 방식이다. 티켓마스터(Ticketmaster)와 오픈테이블(OpenTable) 등이 아폴로 서버를 사용하고 있다.
![](http://files.idg.co.kr/itworld/bos17-lottie-100736843-orig.jpg)
로티
모바일 앱이 부상하고, 정교한 애니메이션이 사용자 경험을 한 단계 위로 끌어 올렸다. 로티(Lottie)는 애프터 이펙트(After Effects)에서 고품질 애니메이션을 가져와, 쉽게 iOS 및 안드로이드, 리액트 네이티브(React Native) 애플리케이션으로 통합하는 에어비엔비(Airbnb)의 라이브러리이다. 애니메이션 데이터를 내보내는 애프터 이펙트 플러그인을 설치, 플랫폼을 위한 라이브러리를 추가할 수 있다.
모바일 앱이 부상하고, 정교한 애니메이션이 사용자 경험을 한 단계 위로 끌어 올렸다. 로티(Lottie)는 애프터 이펙트(After Effects)에서 고품질 애니메이션을 가져와, 쉽게 iOS 및 안드로이드, 리액트 네이티브(React Native) 애플리케이션으로 통합하는 에어비엔비(Airbnb)의 라이브러리이다. 애니메이션 데이터를 내보내는 애프터 이펙트 플러그인을 설치, 플랫폼을 위한 라이브러리를 추가할 수 있다.
![](http://files.idg.co.kr/itworld/bos17-react-native-100736847-orig.jpg)
리액트 네이티브
자바스크립트로 iOS 및 안드로이드 앱을 구현할 수 있는 툴은 많다. 그러나 리액트 네이티브(React Native)는 다르다. 첫째, NPM 스타일 모듈을 지원한다. 둘째, 확장성이 있고, 네이티브 구성 요소가 포함되어 있다. 셋째, 모바일 앱을 잘 아는 페이스북이 개발했다. 마지막으로 가장 유용한 자바스크립트 프레임워크로 평가 받고 있는 리액트(React)에 기반을 두고 있다. 리액트와 리액트 네이티브 사이에 차이점이 있지만, 걱정할 필요 없다. 모바일 프로젝트에 두 코드 기반을 모두 쓰고 싶지 않다면, 리액트 네이티브를 사용하는 것이 좋다.
자바스크립트로 iOS 및 안드로이드 앱을 구현할 수 있는 툴은 많다. 그러나 리액트 네이티브(React Native)는 다르다. 첫째, NPM 스타일 모듈을 지원한다. 둘째, 확장성이 있고, 네이티브 구성 요소가 포함되어 있다. 셋째, 모바일 앱을 잘 아는 페이스북이 개발했다. 마지막으로 가장 유용한 자바스크립트 프레임워크로 평가 받고 있는 리액트(React)에 기반을 두고 있다. 리액트와 리액트 네이티브 사이에 차이점이 있지만, 걱정할 필요 없다. 모바일 프로젝트에 두 코드 기반을 모두 쓰고 싶지 않다면, 리액트 네이티브를 사용하는 것이 좋다.
![](http://files.idg.co.kr/itworld/bos17-enzyme-100736841-orig.jpg)
엔자임
에어비엔비의 테스팅 라이브러리인 엔자임(Enzyme)으로 리액트 구성 요소를 쉽고 빠르게 테스트할 수 있다. 엔자임은 브라우저나 DOM 에뮬레이션 없이 리액트 구성 요소를 렌더링할 수 있는 자바스크립트 API를 제공한다. 엔자임은 사용하는 테스트 실행 프로그램이나 검증문(Assertion) 라이브러리를 걱정할 필요가 없다.
에어비엔비의 테스팅 라이브러리인 엔자임(Enzyme)으로 리액트 구성 요소를 쉽고 빠르게 테스트할 수 있다. 엔자임은 브라우저나 DOM 에뮬레이션 없이 리액트 구성 요소를 렌더링할 수 있는 자바스크립트 API를 제공한다. 엔자임은 사용하는 테스트 실행 프로그램이나 검증문(Assertion) 라이브러리를 걱정할 필요가 없다.
![](http://files.idg.co.kr/itworld/bos17-webassembly-100736852-orig.jpg)
웹어셈블리
브라우저용 바이너리 편집 타깃인 웹어셈블리(WebAssembly)가 올해부터 크롬과 파이어폭스의 ‘기본값’이 됐다. 또한 사파리 13에도 도입될 예정이다(현재 프리뷰에서 사용 가능). 마이크로소프트 엣지에서는 ‘실험’ 기능으로 활성화 시킬 수 있다. 웹어셈블리를 이용하면 무슨 언어로든 코드를 작성, 브라우저가 자바스크립트 파싱보다 더 빠르게 디코딩할 수 있는 바이너리로 편집할 수 있다. 웹 애플리케이션이 ‘네이티브’ 속도로 실행되는 것이다.
브라우저용 바이너리 편집 타깃인 웹어셈블리(WebAssembly)가 올해부터 크롬과 파이어폭스의 ‘기본값’이 됐다. 또한 사파리 13에도 도입될 예정이다(현재 프리뷰에서 사용 가능). 마이크로소프트 엣지에서는 ‘실험’ 기능으로 활성화 시킬 수 있다. 웹어셈블리를 이용하면 무슨 언어로든 코드를 작성, 브라우저가 자바스크립트 파싱보다 더 빠르게 디코딩할 수 있는 바이너리로 편집할 수 있다. 웹 애플리케이션이 ‘네이티브’ 속도로 실행되는 것이다.
![](http://files.idg.co.kr/itworld/bos17-kotlin-100736842-orig.jpg)
코틀린
코틀린(Kotlin)이 자바와 안드로이드 환경을 지배하기 시작했다. 현대적인 언어 기능이 포함되어 있고, 자바 6를 지원하기 때문이다. 코틀린은 이미 안드로이드 애플리케이션 개발에 사용되고 있다. 여기에 더해, 구글은 지난 5월 앞으로 안드로이드 개발과 관련된 지원에서 코틀린을 우선시 할 계획이라고 발표했다. 기존 자바 버전을 요구하는 환경을 대상으로 한 개발에 발목이 붙잡힌 개발자라면 코틀린으로 ‘현대적인 환경’에 합류하는 것이 좋다.
코틀린(Kotlin)이 자바와 안드로이드 환경을 지배하기 시작했다. 현대적인 언어 기능이 포함되어 있고, 자바 6를 지원하기 때문이다. 코틀린은 이미 안드로이드 애플리케이션 개발에 사용되고 있다. 여기에 더해, 구글은 지난 5월 앞으로 안드로이드 개발과 관련된 지원에서 코틀린을 우선시 할 계획이라고 발표했다. 기존 자바 버전을 요구하는 환경을 대상으로 한 개발에 발목이 붙잡힌 개발자라면 코틀린으로 ‘현대적인 환경’에 합류하는 것이 좋다.
![](http://files.idg.co.kr/itworld/bos17-scala-kotlin-native-100736849-orig.jpg)
스칼라 네이티브와 코틀린 네이티브
지난 몇 년 간, JVM 기반 언어인 스칼라와 코틀린에서 JVM을 없애려는 시도가 급증했다. 스칼라 네이티브(Scala Native)와 코틀린 네이티브(Kotlin Native)는 가상머신과 이로 인한 부담이 없는 가벼운 바이너리를 제공하는 데 목적이 있다. 관련 커뮤니티의 규모가 작고, 코드는 아직 ‘프로덕션’ 단계에 도달하지 못했다. 그러나 기대는 점점 높아지고 있다.
지난 몇 년 간, JVM 기반 언어인 스칼라와 코틀린에서 JVM을 없애려는 시도가 급증했다. 스칼라 네이티브(Scala Native)와 코틀린 네이티브(Kotlin Native)는 가상머신과 이로 인한 부담이 없는 가벼운 바이너리를 제공하는 데 목적이 있다. 관련 커뮤니티의 규모가 작고, 코드는 아직 ‘프로덕션’ 단계에 도달하지 못했다. 그러나 기대는 점점 높아지고 있다.
![](http://files.idg.co.kr/itworld/bos17-go-100736844-orig_0.jpg)
고(Go)
구글의 고(Go)는 직관적이고, 신뢰도가 높고, 효율적이며, 이동 가능하고, 그래서 지루하기까지 하지만, 몇 년 후, 더 나아가 몇십 년 후에도 쉽게 이해할 수 있는 소프트웨어를 개발하는 데 목적을 둔 언어이다. 이는 제네릭(Generics) 같은 특정 기능과 특징을 거부해야 한다는 의미이다. 그러나 이런 이유로 중요한 구식 인프라를 대체하고, 새로운 인프라(예, 도커나 쿠버네티스)를 구축하는 데 사용할 수 있다. 고의 디자인은 보수적이지만, 빠른 속도로 발전을 했다. 풍부한 서드파티 툴과 IDE 지원이 고의 인기를 증명한다.
구글의 고(Go)는 직관적이고, 신뢰도가 높고, 효율적이며, 이동 가능하고, 그래서 지루하기까지 하지만, 몇 년 후, 더 나아가 몇십 년 후에도 쉽게 이해할 수 있는 소프트웨어를 개발하는 데 목적을 둔 언어이다. 이는 제네릭(Generics) 같은 특정 기능과 특징을 거부해야 한다는 의미이다. 그러나 이런 이유로 중요한 구식 인프라를 대체하고, 새로운 인프라(예, 도커나 쿠버네티스)를 구축하는 데 사용할 수 있다. 고의 디자인은 보수적이지만, 빠른 속도로 발전을 했다. 풍부한 서드파티 툴과 IDE 지원이 고의 인기를 증명한다.
![](http://files.idg.co.kr/itworld/bos17-rust-100736848-orig.jpg)
러스트
개발자는 러스트(Rust)를 사용, C/C++처럼 CTM(Close-to-the-Metal)에 가깝게 실행되는 소프트웨어를 개발할 수 있다. 그러나 안전하며, 최신 컴퓨팅 언어에 적합한 도구와 라이브러리를 사용한다. 2017년에는 안드로이드 빌드 지원이 추가되었다. 업그레이드된 빌드 시스템, 더 빠른 편집, 컴파일러와 Racer 코드 구현 유틸리티, 마이크로소프트가 개발한 프로토콜로 편집자와 IDE에 러스트 프로그램에 대한 정보를 제공하는 러스트 랭귀지 서버(Rust Language Server) 또한 특징이다. 프로젝트는 계속 러스트를 를 더 쉽게 학습하고, 사용할 수 있는 도구로 만든다는 목표를 달성해 나가고 있다.
개발자는 러스트(Rust)를 사용, C/C++처럼 CTM(Close-to-the-Metal)에 가깝게 실행되는 소프트웨어를 개발할 수 있다. 그러나 안전하며, 최신 컴퓨팅 언어에 적합한 도구와 라이브러리를 사용한다. 2017년에는 안드로이드 빌드 지원이 추가되었다. 업그레이드된 빌드 시스템, 더 빠른 편집, 컴파일러와 Racer 코드 구현 유틸리티, 마이크로소프트가 개발한 프로토콜로 편집자와 IDE에 러스트 프로그램에 대한 정보를 제공하는 러스트 랭귀지 서버(Rust Language Server) 또한 특징이다. 프로젝트는 계속 러스트를 를 더 쉽게 학습하고, 사용할 수 있는 도구로 만든다는 목표를 달성해 나가고 있다.
![](http://files.idg.co.kr/itworld/bos17-clojure-100736838-orig.jpg)
클로저
고급 병렬 및 병행 프로그램 프로토타이핑에 적합한 도구가 클로저(Clojure)이다. 또한 정교한 매크로 시스템, 멀티메소드, 함수형 프로그래밍 패러다임, REPL(Read-Eval-Print Loop) 등을 지원하며, JVM에서 실행된다. 월마트와 넷플릭스 같은 대기업들이 이미 사용하고 있는 도구이다. 활기 넘치는 커뮤니티, 성숙한 생태계, 우수한 도큐멘테이션을 자랑하는 클로저는 모든 빅 데이터 프로그래머가 선호하는 도구가 될 것이다.
고급 병렬 및 병행 프로그램 프로토타이핑에 적합한 도구가 클로저(Clojure)이다. 또한 정교한 매크로 시스템, 멀티메소드, 함수형 프로그래밍 패러다임, REPL(Read-Eval-Print Loop) 등을 지원하며, JVM에서 실행된다. 월마트와 넷플릭스 같은 대기업들이 이미 사용하고 있는 도구이다. 활기 넘치는 커뮤니티, 성숙한 생태계, 우수한 도큐멘테이션을 자랑하는 클로저는 모든 빅 데이터 프로그래머가 선호하는 도구가 될 것이다.
![](http://files.idg.co.kr/itworld/bos17-typescript-100736850-orig.jpg)
타입스크립트
타입스크립트(TypeScript)는 깔끔한 자바스크립트로 컴파일되는 대규모 애플리케이션 개발용 자바스크립트 ‘슈퍼세트’이다. 자바스크립트에 옵션인 타입, 클래스, 모듈이 추가되어 있는 것이 TypeScript이다. 또한 모든 브라우저와 호스트, OS를 지원하는 대규모 자바스크립트 애플리케이션 지원 도구가 포함되어 있다. 성공 사례도 많은데, 인기 높은 앵귤러(Angular) 프레임워크가 타입스크립트에서 업그레이드됐다.
타입스크립트(TypeScript)는 깔끔한 자바스크립트로 컴파일되는 대규모 애플리케이션 개발용 자바스크립트 ‘슈퍼세트’이다. 자바스크립트에 옵션인 타입, 클래스, 모듈이 추가되어 있는 것이 TypeScript이다. 또한 모든 브라우저와 호스트, OS를 지원하는 대규모 자바스크립트 애플리케이션 지원 도구가 포함되어 있다. 성공 사례도 많은데, 인기 높은 앵귤러(Angular) 프레임워크가 타입스크립트에서 업그레이드됐다.
![](http://files.idg.co.kr/itworld/bos17-microsoft-net-core-100737030-orig.jpg)
마이크로소프트 닷넷 코어
마이크로소프트의 닷넷 코어(.Net Core)는 급물살을 타고 있는 마이크로소프트 오픈소스 이니셔티브를 상징하는 개발 플랫폼이다. 윈도우와 맥OS, 리눅스 상에서 CLI, 서버 측, 콘테이너 앱을 구현하기 위한 빠르고 최소화된 플랫폼으로, 닷넷 프레임워크 기능의 일부로 구현됐다. 최근에는 여러 플랫폼을 망라하는 데스크톱 앱을 개발할 수 있도록, 유니버설 윈도우 플랫폼(Universal Winodws Platform, UWP)과 사마린 폼즈(Xamarin Forms)를 지원하기 시작했다. 올해 초 출시된 2.0 버전은 신속하게 애플리케이션을 개발하고, 닷넷 코어 앱을 로컬화하고, 프로필을 바탕으로 한 최적화로 성능을 높일 수 있는 더 나은 툴을 제공한다.
마이크로소프트의 닷넷 코어(.Net Core)는 급물살을 타고 있는 마이크로소프트 오픈소스 이니셔티브를 상징하는 개발 플랫폼이다. 윈도우와 맥OS, 리눅스 상에서 CLI, 서버 측, 콘테이너 앱을 구현하기 위한 빠르고 최소화된 플랫폼으로, 닷넷 프레임워크 기능의 일부로 구현됐다. 최근에는 여러 플랫폼을 망라하는 데스크톱 앱을 개발할 수 있도록, 유니버설 윈도우 플랫폼(Universal Winodws Platform, UWP)과 사마린 폼즈(Xamarin Forms)를 지원하기 시작했다. 올해 초 출시된 2.0 버전은 신속하게 애플리케이션을 개발하고, 닷넷 코어 앱을 로컬화하고, 프로필을 바탕으로 한 최적화로 성능을 높일 수 있는 더 나은 툴을 제공한다.
![](http://files.idg.co.kr/itworld/bos17-visual-studio-code-100736851-orig.jpg)
비주얼 스튜디오 코드
비주얼 스튜디오 코드(Visual Studio Code)는 가볍고 이동할 수 있는 마이크로소프트의 IDE이다. 대부분 타입스크립트에서 개발되며, 일렉트론(Electron) 셸을 기반으로 구현된다. 비주얼 스튜디오 코드는 종합적인 편집 및 디버깅 지원, 확장성 모델, 깃(Git) 지원, 쉽게 기존 도구와 통합할 수 있는 것이 특징이다. 관련 커뮤니티와 마이크로소프트가 비주얼 스튜디오 코드에 유용한 여러 확장 프로그램을 지원하고 있다. 최근 업데이트에서는 대용량 파일, Markdown 프리뷰를 지원하기 시작했다. 또 멀티 루트 워크스페이스가 추가됐다.
비주얼 스튜디오 코드(Visual Studio Code)는 가볍고 이동할 수 있는 마이크로소프트의 IDE이다. 대부분 타입스크립트에서 개발되며, 일렉트론(Electron) 셸을 기반으로 구현된다. 비주얼 스튜디오 코드는 종합적인 편집 및 디버깅 지원, 확장성 모델, 깃(Git) 지원, 쉽게 기존 도구와 통합할 수 있는 것이 특징이다. 관련 커뮤니티와 마이크로소프트가 비주얼 스튜디오 코드에 유용한 여러 확장 프로그램을 지원하고 있다. 최근 업데이트에서는 대용량 파일, Markdown 프리뷰를 지원하기 시작했다. 또 멀티 루트 워크스페이스가 추가됐다.
※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지
번호 | 제목 | 조회수 | 작성 |
---|---|---|---|
공지 | [Open UP 활용가이드] 공개SW 활용 및 개발, 창업, 교육 "Open UP을 활용하세요" | 316105 | 2020-10-27 |
공지 | [Open UP 소개] 공개SW 개발·공유·활용 원스톱 지원 Open UP이 함께합니다 | 305708 | 2020-10-27 |
7401 | '머신러닝 활용을 더 쉽게' 오픈소스 툴 11선 | 5636 | 2017-10-12 |
7400 | 깃랩, 227억원 규모 투자 유치 | 4950 | 2017-10-12 |
7399 | NDS, 일본 파나소닉과 오픈소스 보안솔루션 사용 계약 체결 | 5094 | 2017-10-12 |
7398 | 삼성전자 IoT 비전, 오픈 생태계 중요 | 5259 | 2017-10-12 |
7397 | 2017년 분야별 최고의 오픈소스 소프트웨어 | 5267 | 2017-10-12 |
7396 | 2017년 최고의 오픈소스 소프트웨어 : 네트워킹 및 보안 소프트웨어 | 5546 | 2017-10-12 |
7395 | 2017년 최고의 오픈소스 소프트웨어 : 데이터베이스와 분석 툴 | 5790 | 2017-10-12 |
7394 | 2017년 최고의 오픈소스 소프트웨어 : 클라우드 컴퓨팅 소프트웨어 | 5618 | 2017-10-12 |
7393 | 2017년 최고의 오픈소스 소프트웨어 : 소프트웨어 개발 툴 | 6111 | 2017-10-12 |
7392 | 2017년 최고의 오픈소스 소프트웨어 : 머신러닝 | 5913 | 2017-10-12 |
0개 댓글