Search

오픈소스 프로젝트(Open Source Project)

오픈 소스 시대

미국의 정보기술 연구 및 자문 회사인 ‘Gartner’에 의하면, ‘2025년까지 기업의 70% 이상이 현재 IT 지출과 비교하여 OSS(Open-Source Project Software)에 대한 IT 지출을 늘릴 것’ 이라고 합니다.
오픈소스는 암이다'라고 주장했던 마이크로소프트는 이제 오픈소스의 가장 큰 기여자가 됐다. “
클라우드, 빅데이터, 머신러닝, 프로그래밍 언어 등이 대부분 오픈소스 기반으로 발전하고 있다는데, 오픈소스란 무엇인지, 그리고 어떠한 활용 장점들이 있는지 살펴보고자 합니다.

오픈 소스(Open Source)란 무엇인가?

오픈소스 소프트웨어는 공개적으로 액세스할 수 있게 설계되어 누구나 자유롭게 확인, 수정, 배포할 수 있는 코드입니다. 또한, 오픈소스 프로젝트를 공개하고 운영하는 것은 단순히 소스 코드만을 공개하는 것에 그치지 않고, 같은 문제로 고민하고 있는 외부 개발자들과 소통하고 더 나은 소프트웨어를 만들기 위해 노력하는 모든 활동을 의미합니다.
+ 위키백과의 설명을 살펴보면, 오픈 소스는 소프트웨어뿐만 아니라 하드웨어에도 적용이 된다는 사실 또한 확인할 수 있습니다.

 개발자들이 오픈 소스 활용하면 얻을 수 있는 장점은 무엇이 있을까?

오픈소스 도입 이유 (출처: IBM “오픈소스, 기업 IT에 안착하다)
1. 초기 비용 절감
무료로 다운받아 이용 및 수정이 가능하기 때문에 불필요한 개발 비용을 줄여줄 수 있다.
2. 커뮤니티
다양한 이용자들에게서 최신 기술 정보와 문제점의 해결책을 공유하여 운영되기 때문에 기술의 발전 속도가 빨라질 수 있다.
3. 높은 품질
수많은 개발자들과 업계 전문가들이 개발에 참여하기 때문에 폐쇄적인 단독 개발에 비해 안정적으로 작동하는 편이다.
4. 호환성
오픈소스는 주로 오픈포맷 또는 오픈프로토콜(개방형 표준)을 사용하기 때문에 서로 다른 소프트웨어간의 연동이 쉽다. 여러 기기들이 네트워크를 통해 하나로 연결되는 유비쿼터스 시대에 아주 적합한 장점이 될 수 있다.

 그렇다면, 굳이 기업들이 오픈소스로 프로젝트를 공개하는 이유는 무엇일까?

2019년 4월에 공개된 레드햇의 기업 오픈소스 실태 조사에 따르면 IT 리더 중 99%가 오픈소스 소프트웨어가 최소한 자신의 기업 IT 전략에서 "상당히 중요"하게 여기는 것으로 나타났다고 합니다.
개인이나 기업이 프로젝트를 오픈소스로 공개하고 운영하는 데는 조직마다 다양한 이유가 있겠지만, 그중 다섯가지 정도만 살펴보도록 하겠습니다.
1. 협업 문화 조성
상업적인 경쟁자들은 결과에 집중할 수 있지만 오픈소스 개발자들은 주로 업무에 대한 자부심과 동료들의 의견으로부터 동기를 부여받기 때문에 제품의 품질에 더욱 집중하는 경향이 있다. 또한 그들은 서로를 지원하는 이점이 있는 커뮤니티의 일원이다. 무엇보다, 세계 최고 개발자의 지식을 이용할 기회가 있다.
2. 코드 안정성
코드는 보는 눈이 많아질수록 버그를 찾을 기회가 많아지기 때문에, 많은 Contributor에 의한 코드는 더욱더 안전해질 수 밖에 없습니다. 뿐만아니라, 오픈소스 프로젝트에서는 릴리즈 이전에 보안 취약점 관리 도구등을 사용하여 발견한 잠재적 보안 취약점을 비공개로하여 사전에 수정할 수 있습니다.
3. 인재 유치
조직이 오픈소스에 기여한다는 건 커뮤니티와 협력한다는 의지를 보여주는 구체적인 방법이기에, 업계 최고의 개발자들로 하여금 오픈소스에 활발이 기여하도록 하여 해당 조직의 매력도를 향상시킬 수 있습니다.
4. 혁신성
상용제품에 비해 개발자가 직접 쉽게 경험 및 실험을 할 수 있기 때문에, 보다 신속하게 해당 기술에 대한 혁신여부를 판단할 수 있어, 좀 더 창의적이고 혁신적인 프로덕트로 변경하는데 시간을 단축시킬 수 있다.
5. 커스터마이징 범위
내부 기술이 부족한 경우, 프로젝트의 개발자 또는 오픈소스 커뮤니티, 일자리를 원하는 상업적 전문가로 부터 지원을 받을 수 있어, 매우 제한적인 상황에서도 세부적인 커스터마이징을 가능하게 한다.
이와 같이 많은 전세계 기업들이 ‘더 나은 소프트웨어로 성장하기 위해', ‘사회 공헌을 위해', ‘인재유치를 위해'등의 다양한 이유로 오픈소스 프로젝트 발전에 힘쓰고 있는데요,

오픈소스를 활용하는 개발자들의 경우, 조심해야 할 부분도 있습니다.

무료 ≠ 자유

‘무료=자유’라고 생각하기 쉽지만, 무료로 제공되는 오픈 소스는 몇 가지 원칙을 지켜야 하는 라이선스 입니다. 이런 원칙에 대한 표준을 Open Source Initiative에서 제시를 하고 있습니다.
특히, 지적재산권에 대해 주의깊게 살펴볼 필요가 있습니다.
일반적으로 오픈소스를 수정한 소프트웨어는 사용료 없이 non-commercial로 배포할 것을 요구하고 있기 때문에, 기업이 보유한 특허를 해당 소스코드에 포함시켜 재배포 하려는 경우, 반드시 명확한 입장을 밝히고 오픈소스 저작권자의 정책을 고려해야 하는 점 필히 참고 바랍니다.

 2021 최고의 오픈소스 소프트웨어

( 출처: InfoWorld - Bossie Award, Best of Open Source Software Awards )
Infowarld로 부터 선별된 수상작은 소프트웨어 개발, 데브옵스(DevOps), 클라우드 네이티브 컴퓨팅, 머신러닝 등의 측면에서 가장 혁신적인 오픈소스 소프트웨어라고 합니다.
29선중 5가지 정도만 확인해 보겠습니다.
스벨트와 스벨트키트
스벨트는 컴파일 시간 전략을 도입해 관련 분야를 완전히 바꾸어 놓았고 뛰어난 성능, 지속적인 혁신, 훌륭한 개발자 경험을 통해 발전하고 있다. 스벨트키트는 현재 퍼블릭 베타를 진행 중이다. 스벨트의 전통을 이어 가장 최신 툴을 지원하고 서버리스 환경에 내장 기능을 배치하며 혁신을 주도하고 있다.
미니큐브
도커 데스크톱(Docker Desktop)이 새로운 가격 정책과 라이선스 제공 요건 때문에 사용하기 부담스럽다면
미니큐브(Minikube)를 고려해보자. 이름에서 알 수 있듯이 미니큐브는 데스크톱에서 구동하는 미니어처 쿠버네티스(Kubernetes) 클러스터다. 가상 머신은 필요 없다.
픽시
픽시(Pixie)는 쿠버네티스 애플리케이션을 위한 모니터링 툴이다. 서비스 지도, 클러스터 리소스, 애플리케이션 트래픽 등 클러스터의 고수준 상태를 확인하고 팟(Pod) 상태, 플레임(Flame) 그래프, 개별적인 풀바디(Full-body) 애플리케이션 요청 등 더 자세한 정보를 확인할 수 있다.
패스트 API
장고(Django)와 플라스크(Flask)가 몇 년 동안 파이썬(Python) 웹 프레임워크를 선도했다면, 이제
패스트API(FastAPI)가 그 뒤를 잇고 있다.
크리스털
C의 속도와 루비(Ruby)의 표현력을 가진 프로그래밍 언어를 제공하는 프로젝트인 크리스털(Crystal)은 지금까지 수년 동안 개발에 사용됐다. 올해 초, 크리스털 1.0이 출시되면서 이 언어는 일반 작업에 사용할 만큼 안정화됐다.
수상작들 외에도 Linux Foundation에 등록된 오픈소스 프로젝트는 이 곳에서 확인할 수 있습니다.

오픈소스에 대한 내용을 끝으로..

저희 CloudONE팀에서는 ‘클라우드포레(Cloudforet)’라는 오픈소스 프로젝트를 운영하고 있습니다.
위에서 언급된거와 같은 여러 오픈소스 프로젝트 중 클라우드관리 플랫폼 관련하여 찾는분들이 계실수 있을꺼 같은데요, 관련해서는 아래 간단하게 나마 소개 드리도록 하겠습니다.

클라우드포레(Cloudforet)는,

멀티 클라우드 환경을 위한 통합 관리하는 오픈소스 플랫폼입니다.

이에 CloudONE팀은 클라우드 관리에 필요한 최우선의 기능을 다음과 같이 제공하고 있으며, 다양한 CSP별 구축 및 운영 전문가들의 노하우를 적극 반영하여 끈임없는 개선에 노력을 기울이고 있습니다.
멀티 클라우드 자원 통합 관리
흩어져있는 여러 클라우드 자원들을 하나의 플랫폼에서 관리할 수 있습니다. 통합 대시보드로 간편하게 자원들을 모아 볼 수 있는 장점이 있습니다.
장애 알림 및 알림 자동화
실시간으로 장애 알림을 수신하여 신속하게 장애에 대응할 수 있습니다. 또한, 장애 관리 이력을 분석하여 사용자 경험을 개선하는데 활용될 수 있습니다.
비용 분석 및 자원 최적화
비용을 항목별로 관리해 상세 내역을 분석해 볼 수 있습니다. 예산 설정 기능과 다양한 데이터 시각화를 활용하면 비용관리가 훨씬 간편해 질 수 있습니다.
프로젝트 기반 운영 체계화
복잡한 클라우드 계정 관리를 프로젝트와 부서단위로 간단하게 정리할 수 있으며, 사용자별로 권한 설정을 세분화하여 보다 안전하게 클라우드 환경을 운영할 수 있습니다.

이외에도 클라우드포레의 오픈소스 구조는 아래와 같은 특장점을 가지고 있습니다.

클라우드 네이티브
클라우드포레는 K8S, gRPC, Helm, Prometheus, Istio 등 클라우드 네이티브 기술을 활용한 마이크로 서비스 아키텍처를 기반으로 설계되었습니다.
플러그인 아키텍처
클라우드포레는 플러그인 구조를 통해 지속적으로 기능을 확장할 수 있습니다. 플러그인을 직접 제작하여 다른 사용자와 공유해보세요.
오픈 API
오픈 API를 기반으로 외부 서비스와 연동해보세요. 클라우드포레는 손쉽게 커스터마이징이 가능하도록 자유로운 개발 환경을 제공합니다.

멀티 클라우드부터 온프레미스까지, 보다 나은 IT 인프라 운영을 위해

클라우드포레만의 생태계를 여러분들과 함께 만들고자 합니다.

Now, Become a Cloudforet Contributor !  

 Cloudforet 공식 홈페이지 (클릭)
 개발자 문서 바로가기(클릭)
설치부터 상세한 기능 가이드까지 개발자를 위한 기술 안내 문서를 확인할 수 있습니다.
 Discussion(클릭)
궁금한 점이 있으신가요? SpaceONE 개발자들과 이야기 해보세요
 Github(클릭)
전체 프로젝트를 확인할 수 있습니다.