본문 바로가기
APM, 아티클

[제니퍼소프트] 공개SW 활용한 솔루션 개발부터 UI 컴포넌트 공개까지

by 제니퍼소프트 2015. 3. 10.

원문: http://www.oss.kr/oss_repository10/608485
기사소스:http://www.itdaily.kr/news/articleView.html?idxno=60458


공개SW 활용한 솔루션 개발부터 UI 컴포넌트 공개까지

개방, 참여, 공유로 이어지는 공개SW는 현재 IT 업계를 관통하는 큰 흐름이다. 지식의 교류는 집단지성의 물결을 이뤄 빅데이터, IoT(사물인터넷) 등 새로운 조류의 근간이 되고 있다. 특히 공개SW 컨트리뷰션은 이러한 흐름을 더욱 가속화 시키는 원동력으로 작용한다. 때문에 전 세계 유수 기업들이 앞다퉈 공개SW 프로젝트에 기여하는 이유인 것이다. 국내도 사례를 찾을 수 있다. 세심한 복지와 쾌적한 근무환경으로 세간에 ‘꿈의 직장’이라고 알려진 제니퍼소프트가 공개SW의 도입과 활용을 넘어 배포에 나서 주목받고 있다. 매년 성장 중인 APM 시장에서 이를 선도하는 강소기업으로 자리매김한 회사는 직원들의 창의성과 잠재력을 근간으로 공개SW로 더욱 의미 있는 발전방향을 찾은 것이다.


- 기 관 : 제니퍼소프트
- 수행년도 : 2014년
- 도입배경 : ‘제니퍼5’의 HTML5 기반 대시보드 구현
- 솔 루 션 : Jetty(제티), WebSocket(웹소켓), ArrayBuffer(어레이버퍼), SVG, Canvas(캔버스), Moment.js(모멘트JS), NotificaionAPIWYSIWYG
- 도입효과 : ‘제니퍼5’의 N스크린 모니터링 환경 지원, 비용 절감 및 벤더종속성 탈피


지난 2005년 설립한 제니퍼소프트는 애플리케이션 성능 관리(APM) 소프트웨어(SW) 전문 개발사다. 회사가 개발한 APM 솔루션 ‘제니퍼(JENNIFER)’는 출시 이후 10년간 국내 시장에서 점유율 65% 이상을 유지하면서 선두를 고수해온 국산 SW제품이다. 현재 국방부, 문화체육관광부, 경찰청, 관세청 등 공공을 비롯해, 금융, 의료, 제조, IT 등 다양한 산업군에서 900여 누적 고객사를 보유하고 있다. 또 글로벌 시장에서도 미국, 유럽, 일본, 중국, 동남아 등에서 100여 고객사를 확보한 상태다.

제니퍼소프트는 이 같은 선전의 비결로 기술력을 꼽았다. 전문적인 노하우를 바탕으로 지난해 새롭게 선보인 ‘제니퍼5’는 시스템에 추가적인 부담을 주지 않도록 경량화됐으며, 실시간 및 개별 트랜잭션에 대한 모니터링을 지원한다. 특히, 개발단계에서부터 개발자와 디자이너가 함께 논의해 사용성과 디자인을 겸비한 UX·UI를 제공하는데 주안점을 뒀다. 제품 자체의 경쟁력으로 승부하는 제니퍼소프트의 철학을 엿볼 수 있는 부분이다.


‘제니퍼’의 N스크린 모니터링 지원을 위해

제니퍼소프트가 공개SW를 보다 적극적으로 도입하게 된 것은 자사 APM 솔루션의 모바일 환경 지원을 강화하기 위해서였다. 기존의 ‘제니퍼4’는 자바 애플릿(Java Applet) 기반의 대시보드를 제공했는데, 모바일 버전을 따로 개발해야 되는 문제에 봉착했던 것. 벤더 종속성 탈피와 커스터마이징 가능성 등을 고려해 때마침 새롭게 부상한 HTML5로 눈을 돌려, N스크린 모니터링 환경 지원을 위한 ‘제니퍼5’의 뷰 서버(View Server) 개발에 착수했다.

이에 따라 회사는 HTML5 기반 대시보드 구현을 위해 ▲웹 애플리케이션 서버(WAS)로 제티(Jetty) ▲브라우저와 WAS의 통신을 위한 웹소켓(WebSocket) ▲바이너리 통신을 지원하는 어레이버퍼(ArrayBuffer) ▲2차원 벡터 그래픽 표현을 위한 XML파일 형식의 마크업 언어 SVG ▲애니메이션 효과를 위해 HTML5의 멀티미디어 기능인 캔버스(Canvas) ▲시차를 조정해 서버 시간과 동기화시켜주는 자바스크립트 라이브러리 모멘트JS(Moment.js) ▲OS레벨의 데스크톱 알림을 표시해주는 노티피케이션(Notificaion) API ▲보고서 기능 강화를 위해 편집기 영역을 자체적으로 수정한 위지윅(WYSIWYG) 등을 도입 및 활용했다.

특히, 제티 엔진을 임베드(embed)해 뷰 서버를 구현함으로써 제품의 경량화는 물론, 다양한 환경에서 별도의 설치나 설정 없이도 바로 사용 가능한 편의성도 갖추게 됐다. 또 웹소켓을 활용해 네트워크 오버헤드를 감소시켰고, 어레이버퍼의 바이너리 통신으로 패킷량을 줄여 X뷰(X-View) 기능을 통한 실시간 대용량 트랜잭션 모니터링을 가능케 했다.

아울러, 차트의 표현에는 SVG와 캔버스를 혼용했다. SVG는 정적인 데이터를 표현하거나 데이터 분석 부분에 사용했고, 캔버스는 많은 양의 실시간 데이터를 표현하거나 화려한 애니메이션 효과를 주는데 쓰인 동시에 다양한 정보를 제공하는 토폴로지 뷰(Topology View)를 자체 개발하는데도 활용됐다. 향후에는 웹GL(WebGL)을 활용해 3D 그래픽으로 구현할 계획도 갖고 있는 등, HTML5 표준기술로도 고품질 서비스가 가능하다는 것이 김학진 제니퍼소프트 과장의 설명이다.


함께 발전하기 위한 ‘JUI’ 오픈소스화

제니퍼소프트는 공개SW의 도입뿐 아니라, 공개SW의 배포까지 실천했다. ‘제니퍼’의 HTML5 기반 UI 컴포넌트 ‘JUI’를 오픈소스화 한 것. ‘JUI’는 다양한 자바스크립트와 CSS 컴포넌트를 제공하는 조합용 데스크톱 UI다. 독립적으로 사용할 수 있는 20종의 스타일 컴포넌트와 다양한 기능을 지원하는 17종의 스크립트 컴포넌트를 제공한다. 개발단계에서부터 오픈소스로 공개하는 것을 염두에 두고 보편적인 웹 서비스 환경을 고려해 제작됐다.

‘JUI’를 개발한 홍재석 제니퍼소프트 과장은 입사할 때부터 자아실현의 일환으로 공개SW 활동에 대한 뜻을 밝혔고, 회사도 힘을 보태 함께 발전한다는 취지에서 공개SW 프로젝트를 지지한 것이다. 특히 UI 컴포넌트를 찾아 헤매는 불편을 해소하고자 고품질의 국산 무료 UI 컴포넌트 개발에 뜻을 뒀다. 이를 본격적으로 시작하게 된 계기는 ‘제니퍼’의 기존 UI 컴포넌트를 이해하고 필요할 때마다 제작하는 것보다 새롭게 개발해 다양하게 만들어놓는 것이 여러모로 수월하리란 생각에서였다. 개발한 것 중에는 지난해 열린 ‘제8회 공개SW 개발자대회’에 출품해 은상을 거머쥐기도 했다.


▲ JUI 홈페이지(http://seogi1004.github.io/jui/ko/index.html)

‘JUI’의 가장 큰 특징으로는 최대 500만 건에 이르는 대용량의 트랜잭션 데이터도 마크업 기반의 테이블에 수용할 수 있는 성능을 꼽을 수 있다. 또 트리 구조의 테이블로 깊이(depth)에 제한 없이 계층(hierarchy)를 만들 수 있고, 테이블이 기본 마크업 기반으로 제작돼 내부적으로 마크업을 건드리지 않아서 스크립트만 따로 가져다 쓰는 것도 가능하다. ‘JUI’를 통해 스타일 컨벤션이 이뤄져 타사와의 합작 시에도 UI·UX의 통일성을 꾀할 수 있는 장점도 있다.

홍재석 과장은 향후 ‘JUI’에 시각화 기능을 강화할 예정이다. 스타일에 종속되지 않고 어디서든 테이블과 차트를 함께 편하게 쓸 수 있게 한다는 계획으로, 데이터를 표현하는 방법을 보다 쉽고 다양하게 만들고 싶다고 포부를 밝혔다.


[인터뷰] “국내 공개SW 생태계 활성화 필요”
제니퍼소프트 R&D팀 김학진 과장, 홍재석 과장


공개SW 활용은 어떤 장점이 있나?
‘제니퍼’는 고객에게 우수한 성능을 제공하는 것은 물론, UX·UI의 사용성과 디자인을 통해 감성도 전달하고자 한다. 이러한 방향을 추구하다보면 특히 디자인 측면에서 커스터마이징 요소가 생길 수밖에 없으므로, 이를 위해 공개SW를 도입해 활용하거나 자체적으로 개발하는 경우가 많다. 벤더종속성에서 벗어나 보다 자유롭게 커스터마이징 가능하고, 문제가 생겼을 시에도 직접 신속하게 처리할 수 있기 때문이다.

공개SW는 교과서이자 참고서로 느껴진다. 소스코드를 직접 보면서 배울 수 있는 부분이 많고, 책에서 설명을 보는 것보다 이해하기도 빠르다. 소스코드를 이해해야 공개SW를 제대로 쓸 수 있고, 이를 위해서는 어느 정도 공부도 필요하다. 이렇게 직접 해결해보는 과정에서 개발자로서의 실력도 늘릴 수 있고, 자연스럽게 교류하면서 새로운 것들도 익힐 수 있게 된다.


JUI를 컨트리뷰션한 소감이 궁금하다?

개발자로서 공개SW의 혜택을 많이 받아왔고, 이를 조금이나마 보답하고자 ‘JUI’를 제작하게 됐다. 국내의 경우 이 같은 컨트리뷰션에 매우 인색한 편이다. 기여한 개발자 본인에게 당장 가시적으로 득 될 것은 별로 없을 수 있으나, 공유를 통해 피드백을 주고받음으로써 함께 발전해나갈 수 있는 것 아닌가. 국내 개발자들의 공개SW 기여활동이 보다 활성화돼야 하고, 공개SW 생태계에 참여해 교류하는 문화가 정착됐으면 좋겠다.

또 국내 개발자들은 국산 공개SW를 잘 쓰지 않는 경향이 있다. 국내의 유명 컨트리뷰터들을 살펴보면 국내에서 주목받지 못하다가 글로벌에서 성공한 후에야 뒤늦게 국내에도 알려지고 선호되는 경우가 종종 벌어진다. 국산 공개SW에 대한 편견을 버리고, 내수를 활성화시키듯 보다 적극적으로 활동하고 교류할 필요가 있다.