본문 바로가기

[기획기사] APM 시각화 기술에 유용한 오픈소스 JUI

support 게시글 작성 시각 2023-05-25 15:20:23 게시글 조회수 1239

 

APM 시각화 기술에 유용한 오픈소스 JUI

 

- 이지현 IT전문기자(j.lee.reporter@gmail.com) -

 

애플리케이션 성능 모니터링(APM, Application Performance Management)은 말 그대로 애플리케이션의 성능을 각종 소프트웨어 및 실시간 데이터 분석 도구로 모니터링하는 전체 작업을 말한다. 애플리케이션에 특정 문제가 발생할 조짐이 있거나 혹은 문제가 발생한 후에도 원인을 파악할 수 있다는 점에서 APM은 인프라 관리 과정에서 중요한 역할을 한다. 


APM의 이점
출처 : 제니퍼소프트

 

가트너는 2014년의 APM 시장 규모를 26억 달러로 추산하며 2013년 대비 15.8% 증가했다고 보고했다. 웹 서비스가 사내 시스템뿐 아니라 기업 비즈니스의 거의 모든 분야에 활용되면서 APM의 중요성이 함께 높아져 ‘꼭 있어야 하는 제품’으로 여겨지게 되었다. 이에 따라 APM 시장의 성장세는 심지어 앞으로도 계속 이어질 것이라는 전망이지만, APM의 UI/UX가 복잡하여 가시성 확보가 어렵거나 사용하기 어렵다면 중요한 정보를 즉각적으로 파악할 수 없어 APM에 들어가는 비용과 관리 인력을 낭비할 수 있다. 이는 무료로 사용 가능한 오픈소스 프로젝트를 이용하면 해결 가능하다. 

 

유료로 판매되는 상용 APM 솔루션도 꾸준히 수요가 있지만, 오픈소스 APM 솔루션 및 프로젝트도 국내외로 인기를 끌고 있다. 특히 국내 유명 APM 솔루션 기업 제니퍼소프트는 이해가 어려운 제품을 사용자들이 좀 더 쉽게 이용할 수 있도록 APM 솔루션 ‘제니퍼(JENNIFER)’를 개발하였으며, 더 나아가 APM 기술 개발 과정에서 탄생한 오픈소스 프로젝트 JUI(JENNIFER UI)를 공개했다. 오픈소스 프로젝트 JUI에 대해 자세히 소개한다.

 

제니퍼소프트에서 출발한 오픈소스 프로젝트

 

제니퍼소프트는 국내 APM 시장에서 10년 넘게 시장 점유율 1위를 차지하고 있으며, 2015년에 오픈소스 프로젝트로 JUI를 공개했다. JUI는 웹 페이지를 구성하는 모든 종류의 컴포넌트(자주 쓰는 디자인과 기능을 모아둔 소스코드)를 제공하는 HTML5 기반의 데스크탑 UI 프레임워크로, 데이터를 불러와 대시보드 화면을 만들 때 활용할 수 있다. 

 

JUI 홈페이지
출처 : JUI

 

APM 기술의 화면 기능을 개발하고 있던 제니퍼소프트의 홍재석 개발자는 당시 자사 APM 솔루션인 ‘제니퍼5’ 화면에 사용되는 UI 컴포넌트를 개발하며, 관련 기술을 JUI라는 이름의 오픈소스 프로젝트로 공개하기로 결정했다. JUI가 공개된 2015년만 해도 한국 기업이 오픈소스 프로젝트를 만드는 사례는 흔치 않았다. 

 

홍재석 개발자는 당시 언론 인터뷰를 통해 “그때만 해도 쓸만한 UI 컴포넌트는 대부분 유료였다”라며 “컴포넌트는 개발자들이 직접 구축하기는 귀찮은 부분이라 JUI라는 형태로 오픈소스로 공개하면 유용할 것이라고 생각했다”라고 오픈소스 프로젝트 개발 동기를 밝혔다.

 

물론 기업 내부에서 사용하는 기술을 오픈소스 형태로 개방하는 것은 쉬운 일이 아니다. 홍재석 개발자는 “상용 제품을 오픈소스 기술로 개발하니, 시간이 2~3배 많이 들었다”라며 “주변에서 걱정하기도 했지만 동시에 오픈소스 기술의 취지를 이해해 줬다”라고 말했다. “나도 오픈소스에 혜택을 많이 받았고 신제품 제니퍼5도 마찬가지다. 조금이나마 우리가 받은 것을 보답해야 한다는 개인적인 생각이 있었고 회사도 같은 뜻이었다”고 UI 컴포넌트 공개 배경을 덧붙였다. 또한, 소스코드를 공개하면 다양한 개발자들에게 피드백을 받을 수 있고 이를 다시 제니퍼5에 적용하면 함께 윈윈하는 효과도 있다고 설명했다. 현재는 제니퍼소프트에서 총 3명의 직원이 JUI를 관리하고 있으며, 개인부터 기업까지 누구나 무료로 사용할 수 있게 개방했다.

 

JUI 개발진이 JUI를 만들 때 가장 신경 썼던 부분은 '성능'이다. 가령 100만 건 이상의 데이터를 테이블 형태로 보여줘야 할 때, 마크업 언어 특성상 여러 제약이 있을 수 있는데, 홍재석 개발자는 마크업을 부분적으로 렌더링하는 조회용 테이블을 컴포넌트로 개발하면서 성능 관련 문제를 해결했다고 한다. 

 

JUI는 개발 단계부터 오픈소스로 공개하는 것을 염두에 두고 제니퍼5에만 쓰이는 라이브러리가 아니라 보편적인 웹서비스환경을 고려해 제작되었다. 또한, JUI는 차후 태블릿까지 지원이 가능하도록 업데이트 될 예정이다. 

 

JUI의 핵심 특징

 

JUI는 기본적으로 CSS와 자바스트립트 코드를 묶은 라이브러리다. 다른 컴포넌트보다 사용하기 쉽게 만들고 SVG 기반으로 호환성을 높인 게 특징이다. 여기에 다양한 브러쉬를 지원해 개발자가 자신만의 차트나 멀티 패널 차트를 만들 수 있게 열어두었다. 

JUI 차트
출처 : 제니퍼소프트

 

기술적으로 구체적으로 살펴보면 일단 JUI의 스크립트는 jQuery 기반으로 개발되었으며, 스타일은 코드의 재사용과 확장성을 위해 LESS를 사용했다. 여기에 독립적으로 사용할 수 있는 28종의 스타일 컴포넌트와 다양한 기능을 제공하는 20종의 스크립트 컴포넌트를 지원한다. 추후 슬라이더, 스위치 등 보다 다양한 UI 컴포넌트도 추가될 예정이다. 

 

JUI 개발진에 따르면, JUI의 스타일 컴포넌트는 기본 기능 외의 다양한 옵션 클래스를 제공하며 이를 조합하면 보다 다양한 스타일을 구현할 수 있다. 스타일만이 아닌 스크립트 컴포넌트와의 조합도 가능하며, 개발자는 이러한 특징을 잘 활용하여 좀 더 다양한 UI 컴포넌트를 개발할 수도 있다. 이때 수백만 건의 로우(열)를 처리하고 트리 형태의 로우를 표현할 수 있는 테이블 컴포넌트도 지원한다. 또한 트리 구조의 테이블로 깊이(depth)에 제한 없이 계층(hierarchy)를 만들 수 있고, 테이블이 기본 마크업 기반으로 제작돼 내부적으로 마크업을 건드리지 않아서 스크립트만 따로 가져다 쓰는 것도 가능하다. 

 

차트의 배경이 되는 그리드는 16가지가 존재하며, 데이터를 표현하는 브러쉬는 77가지, 인터랙션을 담당하는 위젯은 19종이다. 또한 다양한 스타일의 웹 페이지에 적용할 수 있는 테마를 지원한다. JUI를 활용한 기술 예시는 공식 홈페이지 내 ‘갤러리’ 탭에서 확인할 수 있다. 

 

JUI의 장점은 문서화가 잘되어 있다는 것이다. 설치 방법부터 인터페이스 소개, 컴포넌트 체험 페이지, API까지 잘 지원된다. 또한, 블로그를 통해서도 각 컴포넌트에 대해 자세한 소개 글을 볼 수 있다. 현재 JUI 깃허브 페이지를 보면 뷰JS(Vue.JS) 지원이 강화되는 등 코드가 꾸준히 업데이트되고 있다. 

 

JUI는 꾸준한 업데이트부터 쉬운 사용법뿐만 아니라, IT 담당자부터 고객 응대 콜 센터까지 다양한 사용자가 확인 및 분석이 쉬워 많은 이들이 사용하는 오픈소스 프로젝트이다. 제니퍼5가 JUI를 통해 개선되고, 다시 제니퍼5를 통해 JUI가 개선되는 것처럼 JUI의 활발한 활용 및 연구로 인한 오픈소스 프로젝트의 선순환을 JUI가 선도하고 있다.

 

 


※ 참고자료


1) http://jui.io/
2) 제니퍼소프트 "한국 넘어 아시아 최고 APM 기업 될 것", 2022년3월, https://zdnet.co.kr/view/?no=20220317101448
3) https://jennifersoft.com/ko/blog/tech/2017-08-23/

4) [개발인] 홍재석 “글쓰기도 개발도, 본질은 공유”, 2015년 2월, https://www.bloter.net/news/articleView.html?idxno=20577

5) 제니퍼소프트, 차트 추가한 JUI 컴포넌트 오픈소스로 공개, 2015년 1월,https://www.bloter.net/news/articleView.html?idxno=20454

6) https://lesscss.org/

7) https://medium.com/@alvin.h

8) https://jennifersoft.com/ko/news/report/2014-04-02/

9) https://jennifersoft.com/ko/news/report/2015-02-04/

10) https://www.oss.kr/news/show/209e8395-ec6e-46e9-94b9-789a61d8f1bd

11) https://jennifersoft.tistory.com/44

12) https://jennifersoft.tistory.com/45

13) https://www.oss.kr/oss_case/show/63a70def-4096-4226-934b-2dd6fe743ebf

14) https://jennifersoft.com/ko/blog/tech/%EC%A0%9C%EB%8B%88%ED%8D%BC%EC%86%8C%ED%94%84%ED%8A%B8%EA%B0%80-%EB%A7%90%ED%95%98%EB%8A%94-apm%EC%9D%98-%EC%A7%84%EC%A7%9C-%EA%B0%80%EC%B9%981/

.
.
2023
공개SW 가이드/보고서 - 번호, 제목, 작성자, 조회수, 작성
번호 제목 작성자 조회수 작성
공지 [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file support 3576 2024-01-03
공지 [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file support 2982 2024-01-03
공지 [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file support 2930 2024-01-03
공지 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file support 15388 2022-07-28
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 15281 2018-04-26
458 [기획기사] 생성형 AI 시대, 새로운 전략 도구 오픈소스 support 4589 2023-06-26
457 [기고] 생성형AI 개발도구 Copilot의 오픈소스 라이선스 위반과 저작권 분쟁 support 3024 2023-06-26
456 [기획기사] APM 시각화 기술에 유용한 오픈소스 JUI support 1239 2023-05-25
455 [기획] 오픈소스 APM 핀포인트 도입을 활용한 사례 소개 support 2249 2023-05-25
454 [5월 월간브리핑] 서비스 운영관리에 필수적인 성능관리 오픈소스 솔루션 support 1435 2023-05-25
453 [기획] 암호화폐와는 다른 오픈소스 NFT의 잠재력과 가능성 support 5143 2023-04-24
452 [기획기사] NFT 업계의 오픈소스 활용 support 1794 2023-04-24
451 [4월 월간브리핑] 오픈소스 NFT 최근 산업 동향 support 5521 2023-04-24
450 [기획] 3D 프린팅을 위한 오픈소스 소프트웨어 support 3121 2023-03-27
449 [기획기사] 3D 프린터의 보안 위협과 오픈소스 해결책 support 1217 2023-03-27
맨 위로
맨 위로