애플리케이션 / 오픈소스

BOSSIE 2023 | 올해 최고의 오픈소스 소프트웨어 25선

Martin Heller 외 | InfoWorld 2023.10.31
낙엽이 지고 하늘이 흐려지고 추위가 시작되고 모두가 햇살을 그리워할 때가 되면 인포월드 베스트 오픈소스 소프트웨어 어워드(BOSSIE)의 시간이다. 올해로 17년째를 맞는 이 어워드는 그 해의 가장 혁신적인 최고의 오픈소스 소프트웨어를 선정한다. 지금까지 그랬듯 2023년에 선정된 소프트웨어에도 놀라울 만큼 다방면에 걸친 기술이 포함돼 있다. 선정된 25개 소프트웨어 중에는 프로그래밍 언어, 런타임, 앱 프레임워크, 데이터베이스, 분석 엔진, 머신러닝 라이브러리, 대규모 언어 모델(LLM), LLM 배포를 위한 툴과 함께 말로는 설명하기 어려운 프로젝트도 한두 개 있다. 
 
ⓒ IDG

소프트웨어 분야에서 해결해야 할 중요한 문제가 있다면 거의 틀림없이 그 문제를 해결하기 위한 오픈소스 프로젝트가 등장한다. 2023년 수상작을 하나씩 살펴보자. 
 

아파치 후디

많은 업계에서 개방형 데이터 레이크 또는 데이터 레이크하우스를 구축할 때 발전 가능성과 변경 가능성이 더 높은 플랫폼을 요구한다. 예를 들어 발행사, 광고주, 미디어 구매자를 위한 광고 플랫폼이 대표적인데, 빠른 분석으로는 충분하지 않다. 이때 필요한 것이 아파치 후디(Apache Hudi)다. 빠른 데이터 형식, 테이블, SQL을 제공할 뿐만 아니라 저지연 실시간 분석을 지원한다. 아파치 스파크(Spark), 아파치 플링크(Flink), 그리고 프레스토(Presto), 스타록스(StarRocks), 아마존 아테나(Athena)와 같은 툴과도 통합할 수 있는 장점이 있다. 간단히 말해 데이터 레이크에서 실시간 분석을 하려면 후디는 정말 좋은 선택이다. 
 

아파치 아이스버그

결과가 나오는 데 너무 오래 걸린다면 “잘 확장된다”는 것이 무슨 소용이 있겠는가? 실제로 HDFS와 하이브(Hive)는 너무 느렸고, 그 대안으로 나온 것이 아파치 아이스버그(Apache Iceberg)다. 아이스버그는 하이브에서 작동하지만 아파치 스파크, 아파치 플링크, 그리고 클릭하우스(ClickHouse), 드레미오(Dremio), 스타록스와 같은 다른 시스템에서도 바로 작동한다. 아이스버그는 이런 모든 시스템에 고성능 테이블 형식을 제공하는 동시에, 전체 스키마 진화, 데이터 압축, 버전 롤백을 가능하게 해준다. 아이스버그는 많은 최신 개방형 데이터 레이크의 핵심 구성요소다. 
 

아파치 슈퍼셋

아파치 슈퍼셋(Apache Superset)은 오랜 기간 데이터 시각화의 강자였다. 슈퍼셋은 셀프 서비스 형태의 고객 대면 또는 사용자 대면 분석을 대규모로 배포할 때 현실적으로 유일한 선택지다. 파이 차트부터 복잡한 지리공간 차트에 이르기까지 거의 모든 분석 시나리오에 맞는 시각화를 제공한다. 대부분 SQL 데이터베이스와 호환되며 드래그 앤 드롭 빌더와 SQL IDE를 지원한다. 데이터를 시각화하려는 경우 고려해야 할 1순위다. 
 

자바스크립트가 예측 가능한 루틴으로 자리를 잡았다고 생각할 때 번(Bun)이 등장했다. 이름은 장난스럽지만 목표는 진지하다. 서버 측 자바스크립트에 필요한 모든 것, 즉 런타임, 번들러, 패키지 관리자 등을 하나의 툴에 넣는 것이다. Node.js와 NPM을 대체할 수 있으며 속도는 훨씬 더 빠르다. 이 간단한 명제 덕분에 번은 노드가 애플카트(applecart)를 뒤집은 이후 자바스크립트에서 가장 파괴적인 기술이 됐다. package makes Bun a compelling alternative to Node and Deno. 번의 빠른 속도는 지그(Zig)에 일부 기인하지만 나머지는 번을 만든 재러드 서머의 성능에 대한 집착의 결과다. 명령줄에서 바로 차이를 느낄 수 있다. 성능 외에 모든 툴이 하나의 패키지로 통합돼 있다는 점으로도 노드와 데노(Deno)의 매력적인 대안이다. 
 

클로드 2 

앤트로픽(Anthropic)의 클로드 2(Claude 2)는 하나의 프롬프트에서 최대 10만 개의 토큰(약 7만 단어)을 받고, 최대 수천 토큰까지 스토리를 생성한다. 클로드는 구조적 데이터를 편집, 재작성, 요약, 분류, 추출하고, 콘텐츠를 기반으로 Q&A를 수행한다. 대부분의 학습은 영어로 받았지만 다양한 다른 언어도 잘 처리한다. 또한 클로드는 일반적인 프로그래밍 언어에 대한 폭넓은 지식을 보유했다. 클로드는 원래부터 도움, 정직, 무해(HHH)에 중점을 두고 학습되며, 공격적이거나 위험한 출력을 생산하도록 유도하기가 더 어렵게 광범위한 레드팀 훈련을 받는다. 사용자의 데이터로 학습하거나 인터넷에서 답을 찾지도 않는다. 클로드는 현재 미국, 영국에서 무료 베타로 제공되며 재스퍼(Jasper), 소스그래프(Sourcegraph), AWS와 같은 상용 파트너가 있다.
 

코크로치DB

코크로치DB(CockroachDB)는 강하게 일관적인 ACID 트랜잭션을 구현하는 분산 SQL 데이터베이스다. 데이터베이스 읽기 및 쓰기에 대한 수평 확장을 지원해 트랜잭션 양이 많은 고성능 애플리케이션에서 확장성 문제를 해결한다. 또한 코크로치DB는 지연을 낮추고 데이터 규정을 준수하기 위해 다중 지역 및 다중 클라우드 배포를 지원한다. 실제로 넷플릭스 데이터 플랫폼이 미디어 애플리케이션과 기기 관리를 지원하는 100개 이상의 프로덕션용 코크로치DB 클러스터로 구성됐다. 넷플릭스 외에도 하드 록 스포츠북(Hard Rock Sportsbook), JP모건 체이스(JPMorgan Chase), 산탄데르(Santander), 도어대시(DoorDash) 등이 이 소프트웨어를 사용한다.
 

C파이썬

머신러닝, 데이터 과학, 작업 자동화, 웹 개발…. 파이썬 프로그래밍 언어를 좋아할 수밖에 없는 이유는 무수히 많다. 딱 하나, 런타임 성능은 아니다. 하지만 이 문제도 서서히 해결되고 있다. 최근 두 릴리스인 파이썬 3.11과 파이썬 3.12에서 코어 파이썬 개발팀은 파이썬 인터프리터의 참조 구현인 C파이썬(CPython)에 대한 혁신적이고 방대한 업그레이드를 공개했다. C파이썬은 새로운 라이브러리 또는 최신 구문을 사용하는 극소수 사용자뿐 아니라 모두에게 더 빠른 속도를 제공하는 파이썬 런타임이자, 앞으로가 더 기대되는 애플리케이션이다. 파이썬에서 진정한 멀티스레드 병렬 처리를 가로막아 온 오랜 장벽인 전역 인터프리터 잠금이 조만간 제거될 것이기 때문이다.
 

덕DB

OLAP 데이터베이스는 원래 무겁다. IBM 코그노스(Cognos), 오라클 OLAP, SAP 비즈니스 웨어하우스(Business Warehouse) 또는 클릭하우스를 “가볍다”고 묘사할 사람은 없을 것이다. 하지만 적당한 수준의 OLAP, 외부 종속성 없이 임베디드 형태로 프로세스 내에서 실행되는 분석 데이터베이스 정도만 필요할 때는 어떻게 해야 할까? 덕DB(DuckDB)가 있다. SQL라이트(SQLite)와 같은 작지만 강력한 프로젝트 정신을 기반으로 만든 분석 데이터베이스다. 덕DB는 SQL 쿼리, ACID 트랜잭션, 보조 인덱스 등 RDBMS의 익숙한 기능을 모두 제공하면서 대규모 데이터 집합에 대한 조인, 집계와 같은 분석 기능을 추가로 지원한다. 또한 파케이(Parquet)와 같은 일반적인 빅데이터 형식을 이용해 직접 쿼리할 수 있다. 
 

HTMX와 하이퍼스크립트 

보통 HTML이 변할 일은 없다는 생각한다. HTMX는 많은 사람이 알고 좋아하는 최신 웹 애플리케이션을 더 쉽게 작성할 수 있게 해주는 향상된 기능으로 HTML을 확장한다. HTMX는 웹 프론트 엔드를 백엔드에 연결하는 데 사용되는 상용구 자바스크립트의 대부분을 없앤다. 대신 직관적인 HTML 속성을 사용해 AJAX 요청을 실행하고 데이터로 요소를 채우는 등의 작업을 수행한다. 자매 프로젝트인 하이퍼스크립트는 하이퍼카드와 비슷한 구문을 도입해 비동기 연산, DOM 조작을 포함한 많은 자바스크립트 작업을 간소화한다. HTMX와 하이퍼스크립트, 이 둘은 반응형 프레임워크의 현재 추세에 대한 과감한 대안을 제시한다. 
 

이스티오

이스티오(Istio)는 컨테이너 기반 마이크로서비스의 네트워킹과 통신을 간소화하고, 트래픽 라우팅, 모니터링, 로깅 및 관찰 가능성을 제공하는 동시에 암호화, 인증, 권한 부여 기능으로 보안을 강화하는 서비스 메시다. 또한, 이스티오는 애플리케이션 및 인프라에서 통신과 보안 기능을 분리해 더 안전하고 일관적인 구성을 가능하게 한다. 이 아키텍처는 쿠버네티스 클러스터에 배포된 제어 평면과 통신 정책을 제어하기 위한 데이터 평면으로 구성된다. 이스티오는 구글, IBM, 레드햇, Solo.io를 비롯한 여러 기업으로부터 지원과 기여를 받는 등 클라우드 네이티브 커뮤니티에서 탄탄한 입지를 다지면서 2023년에 CNCF 인큐베이션을 졸업했다. 
 

카타 컨테이너

컨테이너의 속도와 가상 머신의 격리를 결합한 카타 컨테이너(Kata Containers)는 인텔 클리어 컨테이너(Clear Containers)와 하이퍼바이저 기반 런타임인 Hyper.sh runV를 사용하는 안전한 컨테이너 런타임이다. 쿠버네티스 및 도커와 호환되며 x86_64, AMD64, Arm, IBM p 시리즈, IBM z 시리즈를 포함한 여러 하드웨어 아키텍처를 지원한다. 구글 클라우드, 마이크로소프트, AWS, 알리바바 클라우드를 인프라 스폰서로 두고 있다. 그 외에 카타 컨테이너를 지원하는 기업으로는 시스코, 델, 인텔, 레드햇, 수세, 우분투 등이 있다. 최근 릴리스에서는 GPU 기기의 기밀 컨테이너와 디바이스 관리 추상화가 추가됐다.
 

랭체인

랭체인(LangChain)은 모듈형 프레임워크로, 언어 모델로 구동되는 애플리케이션 개발 작업을 용이하게 한다. 랭체인을 사용하면 언어 모델을 데이터 소스에 연결해 해당 데이터 소스 환경과 상호작용할 수 있다. 랭체인 구성요소는 모듈형 추상화와 이 추상화 구현의 컬렉션이다. 랭체인의 규격화된(off-the-shelf) 체인은 특정 상위 수준 작업을 수행하기 위한 구성요소의 구조적 어셈블리다. 구성요소를 사용해 기존 체인을 사용자 정의하고 새로운 체인을 구축할 수 있다. 현재 랭체인 버전은 3가지로, 파이썬, 타입스크립트/자바스크립트, 그리고 버전이다. 2023년 10월 현재 약 160개의 랭체인 통합이 있다. 
 

언어 모델 평가 도구

새로운 대규모 언어 모델(LLM)이 출시되면 일반적으로 특정 벤치마크에서 챗GPT와 해당 모델을 비교한 일련의 평가 점수를 볼 수 있는데, 이는 모델을 개발한 회사가 lm-eval-harness를 사용해서 생성한 점수인 경우가 많다. 분산 인공 지능 연구소인 일루더AI(EleutherAI)가 만든 언어 모델 평가 도구 lm-eval-harness에는 200개 이상의 벤치마크가 포함되어 있으며 손쉽게 확장이 가능하다. 기존 벤치마크의 결함을 발견하는 데 사용됐을 뿐만 아니라 허깅 페이스(Hugging Face)의 오픈 LLM 리더보드를 구동하는 데도 사용됐다. xkcd 카툰에 나와 있듯이 세계를 지탱하는 작은 기둥 중 하나다. 
 

라마 2

라마 2(Llama 2)는 메타 AI의 차세대 대규모 언어 모델로, 라마 1보다 40% 더 많은 데이터(공개적으로 사용 가능한 소스의 토큰 2조 개)로 학습되었으며 컨텍스트 길이는 2배에 이른다(4096). 라마 2는 최적화된 트랜스포머 아키텍처를 사용하는 자동 회귀 언어 모델이다. 튜닝된 버전은 지도 미세 조정(SFT)과 인간 피드백을 통한 강화 학습(RLHF)을 사용해 유용성과 안전에 대한 인간의 선호도에 맞춰 조율된다. 코드 라마(Code Llama)는 코드별 데이터 집합으로 라마 2를 미세 조정하는 방식으로 학습되며, 코드 또는 자연어 프롬프트에서 코드 및 코드에 대한 자연어를 생성할 수 있다. 
 

올라마

올라마(Ollama)는 맥OS 및 리눅스에서 로컬로 라마 2, 코드 라마 및 기타 모델을 실행할 수 있는 명령줄 유틸리티다. 향후 윈도우도 지원할 예정이다. 현재 올라마는 20여 개의 언어 모델군을 지원하며 각 모델군에 대해 사용 가능한 '태그'도 많다. 태그는 모델의 변형으로, 다양한 미세 조정을 통해 다양한 크기에서 학습되고 로컬에서 잘 실행되도록 다양한 수준에서 양자화된다. 양자화 수준이 높을수록 모델의 정확도가 높아지지만 대신 실행 속도가 느려지고 필요한 메모리도 늘어난다. 올라마가 지원하는 모델에는 일부 비검열 변형이 포함된다. 이런 모델은 일반적인 보호 장치 없이 모델을 학습시키기 위해 에릭 하트포드가 고안한 절차에 따라 구축된다. 예를 들어 라마 2에 화약을 만드는 방법을 물어보면 폭발물 제조는 불법이며 위험하다고 경고하지만, 비검열 라마 2에 같은 질문을 하면 방법을 알려준다. 
 

폴라스

파이썬에는 판다스(Pandas)라는 강력한 라이브러리가 있는데 또 다른 데이터프레임 랭글링 라이브러리가 굳이 필요한지 의문을 제기할 수 있다. 그러나 깊이 살펴보면 지금까지 찾던 것이 바로 폴라스(Polars)였을 수도 있다. 폴라스는 판다스가 하는 모든 일을 할 수는 없지만, 할 수 있는 일은 빠르게(판다스보다 최대 10배), 메모리를 절반만 사용해 수행한다. 파이스파크(PySpark)에서 건너온 개발자라면 난해한 판다스 연산보다 폴라스 API가 더 친숙하게 느껴질 것이다. 대량의 데이터를 다루는 경우 폴라스를 사용하면 더 빠르게 작업할 수 있다. 
 

포스트그레SQL

포스트그레SQL(PostgreSQL)35년 이상 개발됐고 기여자는 700명 이상이며 관계형 데이터베이스 관리 시스템 중에서 약 16.4%의 시장 점유율을 차지하고 있다. 최근 설문조사에서 9만 명의 개발자 중 가장 많은 45%가 포스트그레SQL을 선택한 것을 보면 이 같은 인기는 갈수록 더 커지고 있다. 지난 9월에 출시된 포스트그레SQL 16은 aggregate 및 select distinct 성능이 강화됐고 쿼리 병렬 처리 성능이 높아졌으며 새로운 I/O 모니터링 기능이 도입됐다. 또한, 더 세분화된 보안 액세스 제어도 추가됐다. 2023년 들어 아마존 오로라(Aurora) 포스트그레SQL에 생성형 AI 임베딩을 지원하기 위한 pgvector가 추가됐고, 구글 클라우드도 알로이DB(AlloyDB) 포스트그레SQL용 비슷한 기능을 출시했다. 
 

Q로라

팀 데트머스의 팀은 모든 기기, 심지어 토스터에서도 대규모 언어 모델을 실행하는 것을 목표로 둔 듯하다. 2022년 이들이 내놓은 bitsandbytes 라이브러리는 일반 사용자용 하드웨어에 대용량 LLM의 추론 기능을 구현했다. 올해에는 학습으로 초점을 전환해서, 이미 인상적인 로라(LoRA) 기술을 더 축약해 양자화된 모델에서 실행되도록 했는데 이것이 Q로라(QLoRA)다. Q로라를 사용하면 300억 매개변수 이상의 초대형 모델을 데스크톱 컴퓨터에서 미세 조정할 수 있으며, 여러 GPU를 사용한 전체 튜닝과 비교해 정확도 손실도 거의 없다. 오히려 Q로라가 더 나은 경우도 종종 있다. 저비트 추론 및 학습은 더 많은 사람이 LLM에 액세스할 수 있음을 의미한다. 이것이 바로 오픈소스의 핵심이 아니고 무엇이겠는가? 
 

래피즈

래피즈(RAPIDS)는 일반적인 데이터 과학 및 분석 작업을 위한 GPU 가속 라이브러리 모음이다. 각 라이브러리는 데이터프레임 처리를 위한 cuDF, 그래프 분석을 위한 cuGraph, 머신러닝을 위한 cuML과 같이 특정 작업을 처리한다. 그 외에 이미지 처리, 신호 처리, 공간 분석을 처리하는 라이브러리가 있고, 통합을 통해 아파치 스파크, SQL 및 기타 워크로드에 래피즈가 제공된다. 적합한 기존 라이브러리가 없는 경우를 위해 래피즈에는 자체 솔루션을 구축하기 위한 GPU 가속 프리미티브 모음인 RAFT도 포함돼 있다. 또한 래피즈는 대스크(Dask)와 함께 작동해 여러 노드에 걸쳐 확장할 수 있으며, 슬럼(Slurm)과 함께 고성능 컴퓨팅 환경에서도 작동한다.
 

스파크 NLP

스파크 NLP(Spark NLP)는 아파치 스파크에서 실행되는 자연어 처리 라이브러리로 파이썬, 스칼라, 자바를 지원한다. 개발자와 데이터 과학자는 이 라이브러리를 통해 구글, 메타, 오픈AI의 트랜스포머 모델을 포함한 대규모 언어 모델을 테스트할 수 있다. 스파크 NLP 모델 허브에는 언어 번역, 명명된 개체 인식, 텍스트 분류, 질문 답변, 감정 분석 및 기타 사용 사례를 위해 다운로드할 수 있는 2만 개 이상의 모델과 파이프라인이 있다. 2023년에 스파크 NLP는 다수의 LLM 통합, 이미지 캡션용으로 설계된 새로운 이미지-텍스트 어노테이터, 모든 주요 퍼블릭 클라우드 스토리지 시스템에 대한 지원, ONNX(개방형 신경망 교환) 지원 등을 추가했다.
 

스타록스

분석 세계가 바뀌었다. 지금 기업은 수백만 명의 동시 사용자에게 실시간으로 복잡한 데이터를 제공하는 경우가 많다. 페타바이트급 쿼리도 몇 초 이내에 처리해야 한다. 이때 중요한 역할을 하는 것이 스타록스(StarRocks)다. 스타록스는 네이티브 코드(C++), 효율적인 비용 기반 옵티마이저, SIMD 명령어 집합을 사용한 벡터 처리, 캐싱, 그리고 구체화된 뷰를 결합해 대규모 조인을 효율적으로 처리하는 쿼리 엔진이다. 아파치 후디아파치 아이스버그를 포함한 데이터 레이크 및 데이터 레이크하우스에서 직접 쿼리하는 경우에도 네이티브에 근접한 성능을 제공한다. 실시간 분석, 고객 대면 분석, 데이터 이동 없는 데이터 레이크 쿼리 등 어떤 용도로든 스타록스는 한번 써볼 가치가 있다.
 

TensorFlow.js 

TensorFlow.js는 구글 텐서플로우 머신러닝 프레임워크의 강력한 기능을 자바스크립트 패키지로 만들어 자바스크립트 개발자에게 최소한의 학습으로 놀라운 기능을 제공한다. 브라우저, 웹GL 가속이 적용되는 순수 자바스크립트 스택, 또는 서버에서 tfjs-node 라이브러리를 대상으로 TensorFlow.js를 실행할 수 있다. 노드(Node) 라이브러리도 동일한 자바스크립트 API를 제공하지만 속도와 CPU/GPU 사용량을 극대화하기 위해 C 바이너리 위에서 실행된다. 머신러닝에 관심이 있는 JS 개발자라면 당연히 TensorFlow.js를 찾아야 한다. 광범위한 개발자 커뮤니티가 더 용이하게 AI를 사용할 수 있게 해주는, JS 생태계 관점에서 반가운 기술이다. 
 

vLLM 

대규모 언어 모델을 앞다퉈 프로덕션에 배포하는 상황이 펼쳐지면서, 추론 속도를 최대한 빠르게 해주는 데 중점을 둔 프레임워크가 쏟아져 나왔다. vLLM은 그중에서 가장 유력한 모델로, 허깅 페이스 모델 지원, 오픈AI 호환 API, 그리고 허깅 페이스 트랜스포머 라이브러리에 비해 최대 20배 더 높은 처리량을 제공하는 알고리즘인 페이지드어텐션(PagedAttention)을 지원한다. 현재 프로덕션 환경에서 LLM을 제공하기 위한 용도로 가장 유력한 선택지이며, 플래시어텐션(FlashAttention) 2 지원과 같은 새로운 기능도 빠르게 추가되고 있다. 
 

위비에이트

생성형 AI가 폭발적인 인기를 끌면서 방대한 양의 복잡한 비구조적 데이터를 지원하는 새로운 종류의 데이터베이스에 대한 필요성이 대두됐고 그래서 나온 것이 벡터 데이터베이스 위비에이트(Weaviate)다. 위비에이트는 배포 모델, 생태계 통합, 데이터 개인정보 보호 측면에서 개발자에게 많은 유연성을 제공한다. 멀티모달 데이터(텍스트, 이미지, 오디오, 비디오)의 빠르고 확장 가능한 발견을 위해 키워드 검색과 벡터 검색을 결합한다. 또한 검색 증강 생성(RAG)을 위한 즉시 사용 가능한 모듈도 지원한다. 이 모듈은 챗봇 및 기타 생성형 AI 앱에 도메인별 데이터를 제공해 유용성을 높여준다. 
 

지그

지그(Zig)는 현재 추진되고 있는 모든 오픈소스 프로젝트를 통틀어 가장 중대한 프로젝트라고 할 수 있다. 지그는 더 강력하고 오류가 덜 발생하는 구문을 제공하는 동시에 C보다 성능이 뛰어난 프로그램 수준 메모리 제어 기능을 갖춘 범용 프로그래밍 언어를 만드는 프로젝트다. 목표는 무려 프로그래밍 생태계의 기본 언어로서 C를 대체하는 것이다. C는 보편적인 언어다. 즉, 모든 곳의 시스템과 기기에서 가장 일반적인 구성 요소이므로, 지그의 성공은 곧 성능과 안정성의 광범위한 개선을 의미할 수 있다. 모든 개발자가 희망하는 것이기도 하다. 게다가 지그는 원대한 목표와 오픈소스 정신을 가진, 전통적인 풀뿌리 프로젝트다. 
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.