컴테이너
프로젝트 개요
기술개발 과제
국문 : trythisonbrowser: 컨테이너 기반 오픈소스 시연 플랫폼
영문 : trythisonbrowser: Container-based open source software demo platform
과제 팀명
컴테이너
지도교수
이동희 교수님
개발기간
2022년 3월 ~ 2022년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부 2017920064 강**(팀장)
서울시립대학교 컴퓨터과학부 2018920069 김**
서울시립대학교 컴퓨터과학부 2016920025 염**
서울시립대학교 수학과 2017540010 김**
서론
개발 과제의 개요
개발 과제 요약
trythisonbrowser는 브라우저를 통해 다양한 오픈소스들을 시연해볼 수 있는 플랫폼이다. 최근 오픈소스 생태계는 날이 갈수록 성장하고 있다. google, amazon, naver, kakao와 같은 기업들이 주도한 오픈소스 프로젝트부터, 취업 준비생들의 포트폴리오를 위한 오픈소스 프로젝트까지 개발 주체와 규모 또한 다양해지고 있다. 다만, 규모를 막론한 공통적인 문제가 있다면 절대다수의 오픈소스들은 사용을 위해 반드시 설치가 필요하다는 점이다. 이는 오픈소스를 시험 삼아 사용해보고자 하는 사용자, 혹은 로컬에 설치가 어려운 사용자들에게 불편함과 문제를 야기한다. 이에, 다양한 오픈소스들을 컨테이너 상에 설치하고, 브라우저를 통해 해당 컨테이너와 상호작용함으로써 설치 없이 다양한 오픈소스들을 테스트해볼 수 있는 플랫폼을 구상하게 되었는데, 이것이 본 trythisonbrower 프로젝트이다.
개발 과제의 배경
◇ 오픈소스 소프트웨어 시장 규모는 성장세에 있다.
마켓엔마켓의 『2026년까지의 오픈 소스 시장 전망 보고서』 (Open Source Services Market - Global Forecast to 2026)에 따르면, 현재까지의 오픈소스의 시장 규모와 가치는 꾸준히 성장해 왔으며, 2021년 217억 달러로 추정한 시장 규모는 2026년 500억 달러로 성장할 것으로 추정했다. 또한 오픈소스를 위한 대표적인 원격 저장소 호스팅 플랫폼인 깃허브(Github)는 오픈소스 저장소의 개수가 2013년에는 1000만개, 2018년에는 1억개를 넘어섰다고 발표했다. 위와 같은 수치는 명백히 오픈소스 소프트웨어 시장 규모는 성장세에 있고, 앞으로도 그러할 예정이라는 점을 시사하고 있다.
◇ 시연과 홍보를 원하지 않는 오픈소스 개발자는 없다.
상술했듯 오픈소스 시장 규모는 꾸준한 성장세에 있지만, 소스 코드를 무료로 공개하고 배포할 수 있는 오픈소스 생태계 특성상, 오픈소스 개발자들은 많은 경우 수익성보다는 공익성과 자기계발을 위해 오픈소스 프로젝트를 제작/관리한다. 광고 등의 홍보 수단을 이용하기 어렵기에, 오픈소스 개발자들은 언제나 홍보 및 사용자 피드백에 목말라하는 경우가 많다.
◇ 다양한 오픈소스를 사용해보고 싶다면 반드시 설치해야 한다. 현재까지 사용자 입장에서 오픈소스의 실사용 사례를 보기 위해서는 크게 아래 네 가지 방식이 있다.
A. 개발자가 작성한 안내서(README) 열람
README 문서 등의 오픈소스 안내 페이지에 오픈소스의 사용 예를 글로써 적는 방법이다. 다만, 이 방식은 사용자가 직접 오픈소스를 사용할 수 있는 방식이 아니며, 오픈소스의 동작 과정을 파악하기 어렵다는 한계가 있다.
B. 개발자가 녹화한 시연 영상 시청
위의 문제를 보완하기 위해 개발자들은 오픈소스 프로젝트에 해당 오픈소스를 사용하는 모습을 담은 시연 영상을 함께 업로드하기도 한다. 오픈소스를 사용하고자 하는 사용자들은 이 영상을 통해 오픈소스의 동작 모습을 확인해볼 수 있다. 다만 이 방식 또한 사용자가 직접 오픈소스를 사용하는 방법이 아니라는 점에서 완전한 대안이 되기는 어렵다. 더욱이, 오픈소스의 버전이 업데이트되어 사용 예시가 달라졌음에도 불구하고 시연 영상이 업데이트되지 않는 경우도 많다. 이 경우 사용자들은 시연 영상을 시청해도 완전한 사용 예를 파악하기 어렵다.
C. 오픈소스를 직접 본인의 컴퓨터 환경에 설치
사용자가 해당 오픈소스를 본인의 컴퓨터(로컬 환경)에 설치하는 방법이다. 이렇게 오픈소스를 설치하는 경우 사용자가 직접 해당 오픈소스를 사용할 수 있지만, 사용자 환경이 오픈소스를 설치할 수 있는 환경이 아닐 경우 문제가 발생할 수 있다. 가령 오픈소스를 설치하기 위해 반드시 함께 설치해야 하는 의존성 패키지가 있을 경우, 오픈소스를 설치하는 과정에서 해당 의존성 패키지의 버전이 함께 업데이트 될 수가 있다. 또한 오픈소스를 시험 삼아 이용해보고 싶은 사용자 입장에서는 오픈소스의 설치 방법을 익히고, 사용해보고, 삭제하는 과정이 번거롭게 느껴질 수 있다.
D. 컨테이너를 이용한 오픈소스 설치
이 경우 사용자 환경이 오픈소스 설치에 부적합한 경우에도 오픈소스를 이용할 수 있다는 장점이 있지만, 여전히 사용자 환경에 도커/LXC 등의 컨테이너를 설치해야 한다는 부담이 있다.
개발 과제의 목표 및 내용
◇ 컨테이너 기반의 개별 사용자별 샌드박스 구축 사용자들에게 오픈소스를 시연할 수 있는 컨테이너 기반의 샌드박스를 제공한다.
◇ 신규 컨테이너 이미지 생성 기능 웹 브라우저 환경에서 특정 오픈 소스 패키지를 설치한 이미지를 등록할 수 있는 기능을 제공한다.
◇ 컨테이너 이미지 보관 기능 오픈소스 이미지를 보관하는 저장소인 이미지 레지스트리를 구축하여 모니터링한다.
◇ 웹 터미널 기능 개별 사용자가 오픈소스를 시연할 수 있도록 할당된 컨테이너의 셸을 웹 브라우저에 노출하는 웹 터미널을 제공한다.
◇ 오픈소스 최대 이용 가능 횟수 제한 한 번에 하나의 오픈소스만을 사용하도록 제한한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
◇ Container (Docker)
컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지이다. 컨테이너는 운영체제를 가상화하여 어디서나 실행된다.
◇ REST API
REST API는 HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식이다. 문서 없이 REST API 메시지를 읽는 것만으로도 메시지가 의도하는 바를 명확하게 파악할 수 있다. 또한, HTTP 인프라를 그대로 사용하기 때문에, REST API 사용을 위한 별도의 인프라 구축이 필요하지 않다.
- 특허조사 및 특허 전략 분석
유사 특허 조사
◇ 오픈 소스 가상화 클라우드 환경 기반 네트워크 컴퓨팅 개발 테스트베드 시스템 A. 출원번호 / 일자: 1020160051718 (2016.04.27) B. 상태: 출원 C. 설명: 위 특허는 컴퓨터, 네트워크 분야의 엔지니어와 개발 관련자들을 대상으로한 오픈 소스 기술로써 자신이 구현한 제품 및 서비스를 클라우드 기반 가상화 환경에서 직접 테스트해보는 시스템을 제공한다. 개발자들은 자신의 여건에 따라 온라인을 통해 접근하여 자신의 프로젝트를 시험해보고, 개발하는데 이 기술을 활용할 수 있다. 위 기술은 도커엔진을 활용하여 클라우드를 가상화하여 유저에게 네트워크 환경을 제공하는 것이 특징이다. 국내 중소 기업, 1인 기업, 예비창업자 및 커뮤니티 등 중대규모 개발자 그룹에 가장 적합한 기술이다.
◇ 웹 가상화 시스템 및 서비스 방법 A. 출원번호 / 일자: 1020160147916 (2016.11.08) B. 상태: 출원 C. 설명: 위 특허는 가상화 클라이언트 프로그램의 설치 없이 웹브라우저 내에서 직접 로그인하여 가상환경의 웹서비스를 이용할 수 있는 웹 가상화 시스템을 제공하는 기술이다. 특정 브라우저의 종속성 없이 가상화 환경의 웹서비스를 사용할 수 있다는 것이 특징이며 웹을 통해 쉽게 가상화를 할 수 있다는 장점이 있다. 클라이언트와 웹브라우저 사이에는 리스너가 존재한다. 리스너는 웹소켓을 통해 클라이언트와 웹브라우저 사이에 양방향 통신을 할 수 있도록 하는 역할을 한다. 이 기술은 클라이언트에 가상환경을 제공하기 위한 게스트 OS를 담당하는 호스트 컴퓨터가 존재하는 것이 특징이다. 즉, 유저가 웹브라우저에서 로그인하여 가상환경의 웹서비스를 요청할 시 호스트컴퓨터는 클라이언트에게 가상환경에 대한 정보를 전달하게 된다. 이를 통해 유저는 별도의 프로그램 설치 없이 가상화 웹서비스를 이용할 수 있게 된다.
특허 전략
◇ 오픈소스를 이용하고자 하는 어떤 유저도 본 플랫폼을 손쉽게 사용할 수 있도록 진입장벽을 최소화한다.
위 특허는 클라우드 및 네트워크 기반으로하는 대규모 프로젝트에 해당한다. 주로 기업체에서 활용될 수 있는 기술이며 기업에서 출시한 제품 및 서비스를 테스트하는 용도로 활용된다. 즉, 소규모 개발자가 만든 프로그램 혹은 단순히 오픈소스를 써보는 용도로는 사용할 수 없다. 반면, 본 프로젝트의 플랫폼은 누구나 쉽게 github에 접근하여 웹사이트에 접속만 할 수 있으면 다양한 오픈소스를 테스트해볼 수 있다는 점에서 진입장벽이 매우 낮은 장점이 있다.
◇ 본 프로젝트의 플랫폼은 타 기술에 비해 가볍고, 간단하다.
위 특허는 클라우드를 활용했다는 점에서 상당히 큰 규모의 가상화 시스템이라 할 수 있다. 회사 단위의 네트워크 환경을 제공할 수 있고, 중대규모 개발자 그룹에서 만든 제품들을 시험해볼 수 있다는 점에서 상당히 유리하다. 하지만 그만큼 활용될 수 있는 폭이 기업단위로 제한적이며 일반적인 개발자들은 개인적으로 사용하기 어렵다. 또한 네트워크를 가상화하기 위한 부수적인 장치들이 필요하고, 그룹 단위로 사용할 수 있을 정도로 그 범위가 크기 때문에 기술이 무거운 편이다. 반면, 본 프로젝트는 컨테이너를 기반으로 적은 리소스를 사용하는 가상화 환경에서 오픈 소스를 테스트해볼 수 있다는 점에서 상당히 가볍고, 간단하다는 장점이 있다.
◇ 별도의 프로그램 설치 없이 가상화 웹서비스를 쉽게 사용할 수 있는 기술은 존재하지만, 오픈 소스를 테스트할 수 있는 가상화 플랫폼 서비스는 찾아볼 수 없다.
위에 제시된 두 번째 특허 기술은 간단한 로그인만으로 웹가상화 관련 서비스를 이용할 수 있다는 점에서 본 프로젝트와 유사하다. 즉, 별도의 프로그램 설치 없이 가상화된 웹사이트에 쉽게 접근할 수 있다는 점에서 공통점이 있다. 하지만, 위 기술은 웹서비스에 관련된 내용만 담고 있다는 점에서 본 프로젝트와 차이가 있다. 공식적으로 오픈 소스를 이용하기 위해서는 관련 패키지 및 컴파일러와 같은 프로그램을 설치하는 것이 필수이다. 이러한 점은 웹서비스만으로는 해결할 수 없는 영역이다. 이러한 점에서 본 프로젝트는 위 기술의 한계를 보완할 수 있는 하나의 차별점으로 작용할 수 있다.
- 기술 로드맵
시장상황에 대한 분석
- 경쟁제품 조사 비교
본 프로젝트와 유사한 프로젝트는 현재 없거나 찾기 어려울 정도로 적은 것으로 보인다. 다만 유사한 기술을 활용한 제품들은 다음과 같다.
◇ portainer
portainer는 도커 이미지를 브라우저로 업로드하고 실행할 수 있는 오픈소스 프로젝트이다. 브라우저로 다양한 컨테이너를 실행할 수 있다는 점은 본 프로젝트와 유사하지만, 다양한 오픈소스를 시연할 수 있는 플랫폼이 아닌, 단순히 이미지와 컨테이너를 쉽게 관리할 수 있는 툴이라는 차이가 있다.
◇ play-with-docker
브라우저로 도커 혹은 쿠버네티스를 활용해볼 수 있는 플랫폼이다. 브라우저로 특정 오픈소스를 시연해볼 수 있다는 점에서 본 프로젝트와 유사하지만, 다양한 오픈소스를 시연할 수 없다는 한계가 있다.
- 마케팅 전략 제시
◇ SWOT 분석
trythisonbrowser의 마케팅 전략을 수립하기 위해 다음과 같이 SWOT 분석을 수행한다.
◇ Weakness 보완 방안 – 특정 라이선스를 따르는 오픈소스 프로젝트 선 등록 후 홍보
촉 오픈소스들의 등록이 필요하다는 문제를 보완하기 위한 방안으로, 수정과 배포가 자유로운 특정 라이선스(가령 MIT/Apache 라이선스)를 따르는 오픈소스를 본 프로젝트에 선 등록하는 방법이 있다. 이러한 라이선스를 따르는 오픈소스 프로젝트들에는 Node.js, jQuery, 비주얼 스튜디오 코드, HTTP Server, Hadoop, Maven, Spark, Tomcat 등 매우 다양하다. 이 프로젝트들을 trythisonbrowser에 선 등록 후, 이들을 브라우저로 실습해볼 수 있다는 점을 여러 오픈소스 개발자들과 사용자들에게 어필하는 것만으로도 좋은 홍보방안이 될 수 있을 것이라 기대한다.
◇ Threat 보완 방안 – trythisonbrowser 깃허브 뱃지 제작
현대 대부분의 오프소스 프로젝트들은 깃허브(Github)라는 원격 저장소 호스팅 플랫폼에 저장된다. 개발자들은 아래 그림 속 박스와 같이 프로젝트에 뱃지를 달아 프로젝트의 상태를 나타내거나, 사용자들로 하여금 외부 링크로 안내하기도 한다.
이에, 다음과 같이 trythisonbrowser 뱃지를 만들어 오픈소스 개발자들에게 배포, 프로젝트에 이 뱃지를 달도록 유도한다면 본 뱃지를 본 타 개발자들도 trythisonbrowser에 유입되게 할 수 있다.
개발과제의 기대효과
기술적 기대효과
trythisonbrowser 프로젝트는 일종의 오픈소스 시식코너 역할을 수행한다. 이는 사용자 입장에서, 그리고 개발자 입장에서 아래와 같은 기술적 효과를 제공한다.
사용자
◇ 설치 없이 다양한 오픈소스를 접할 수 있다. ◇ 오픈소스들을 직접 사용하며 자신의 상황에 적합한 오픈소스를 정확하게 판단할 수 있다.
개발자
◇ 더 많은 사용자들이 본인의 오픈소스를 접하게 할 수 있어 홍보 효과를 누릴 수 있다. ◇ 실사용 사례를 토대로 한 피드백을 통해 보다 많은 버그 리포트, 기능 요청을 받을 수 있어 높은 품질의 오픈소스를 개발할 수 있다. ◇ 사용 양상이 달라질 때마다 이미지를 재빌드 후 trythisonbrowser에 업로드하면 되므로, 문서를 수정하거나 시연 영상을 재촬영할 필요가 없어진다.
경제적, 사회적 기대 및 파급효과
◇ 오픈소스 생태계 활성화
모든 소프트웨어는 사용되기 위해 존재한다. 오픈소스 소프트웨어도 마찬가지이다. 사용되지 않는 소프트웨어는 제품으로서의 가치가 떨어진다. 하지만 반대로 오픈소스 소프트웨어가 제품으로서의 높은 가치를 지니기 위해서는 많은 사용자들의 사용 사례가 필요하다. 본 프로젝트는 설치 과정의 장벽을 없앰으로써 많은 사용자들이 쉽게 많은 오픈소스를 사용할 수 있게 하고, 결과적으로 오픈소스 소프트웨어들이 높은 가치를 지닐 수 있게 한다. 이는 질높은 오픈소스 소프트웨어의 양산에 기여하고, 나아가 오픈소스 개발 생태계를 더욱 활성화시킬 수 있을 것이라 기대한다.
기술개발 일정 및 추진체계
개발 일정
내용
구성원 및 추진체계
내용
설계
설계사양
제품의 요구사항
내용
설계 사양
내용
개념설계안
내용
이론적 계산 및 시뮬레이션
내용
상세설계 내용
내용
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
내용
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용