ݺߣ

ݺߣShare a Scribd company logo
9월 
기술사항 
! 
이진혁! 
2014년 9월 7일! 
eces@mstock.org
기술역량 및 개발환경 
상용 소프트웨어로서 자동화된 품질 관리와 생산성 향상을 목표로한다. 
䡬 Node.js 생태계 
개발팀 역량 제품 요소기술 
2009년부터 자라와 국내외에 많은 인력풀이 있고, 수 많은 오픈소스 프로젝트 
가 참여하여 업계 표준을 완성하고 있다. 
䡬 Github 소스 저장소 
모든 변경에 대한 버전을 남긴다. 새로운 패치가 테스트를 통과하고 코드리뷰에 
합격해야 릴리즈 버전에 통합된다. 
䡬 단위 테스트 자동화 
14개의 데이터 모델에 대한 CRUD를 109개 단위로 테스트를 진행한다. 여러 
명이 만드는 소프트웨어 품질을 높히는 핵심 부분이다. 
䡬 데이터베이스 마이그레이션 
Production에 있는 데이터베이스에게 안전하게 evolution을 실행한다. 
䡬 Grunt 빌드 시스템 
매일 반복하는 작은 일들을 하나씩 자동화하여, 개발시간 단축과 버그 예방을 가 
능하게 했고, 팀 효율성이 상승했다. 현재 8개의 빌드 라인이 있다. 
䡬 Continuous Integration 
TravisCI를 통해 모든 소스코드 변경에 대해 테스트를 진행하고 결과를 모두에 
게 통보한다. 
䡬 클라우드 서버 관리 
Forever를 통해 HTTP 서버 데몬을 안전하게 재시작한다. Papertailer을 통 
해 로그를 실시간으로 분석 및 감시하며, Nodetime을 통해 성능을 모니터링한 
다. Parallel deployment를 진행하여 신규 업데이트로 인한 장애를 사전에 예 
방한다. 
䡬 수평적으로 확장 가능한 서버 구조(client-side session) 
Client-side session을 이용하여 언제든지 서버를 증축할 수 있다. 멀티 
코어에 대한 지원을 준비중이다. 
䡬 Bower를 통해 resolve external dependencies 
䡬 i18n(다국어), i10(지역화) 지원 
2014년 9월 기준으로 한국어, 영어를 지원하며 시간화폐 단위는 한국, 홍 
콩, 중국, 대만, 일본, 미국, 영국을 지원한다. 
䡬 하드웨어 가속을 이용하는 차트 렌더링 
2개월 차트에 2000ms 걸리는 경쟁사와 달리, Zari는 평상시700ms이 
내, 1년치 차트를 2500ms 이내에 렌더링한다. 
䡬 외부 예약업체 서버 연동을 위한 XML-RPC 모듈 
예약 변경사항을 실시간으로 전세계에 업데이트한다. 여러 대의 서버를 별 
도로 나누지 않고 부분별(UI, 채널업데이트) 부하에 따라 역할을 분배한다. 
䡬 Windows, Linux, MacOS 지원 
구글크롬 브라우저 엔진(Chromium)을 이용한 H Labs 전용 브라우저를 
배포하는 방식으로 여러 플랫폼에 대한 품질관리 프로세스를 하나로 통일한 
다. 웹서비스이지만 USB, 영수증프린터, 바코드, POS와 연동 가능하다.
아키텍처 다이어그램 
일반적인 웹 서비스 구조와 비슷하나, 실시간 예약 생성과 외부 서버 연동, 판매가능한 API 서비스를 하는 차이점이 있다. 
User 
Native 
Application 
http://zari.me 
Node.js Server 
! 
! 
! 
! 
! 
API version 1.0 
Internal 
Software 
Logic 
Background 
jobs 
w/ 
event 
queue 
(libev) 
Realtime 
Reservation 
Module 
(5~10 
transactions, 
rollback) 
MariaDB H/A Cluster 
Node.js Server 
Node.js Server 
Job 
Queue 
(xml-­‐rpc, 
screen 
scrapping) 
Administration 
(account 
setting, 
billing, 
sign 
in 
behalf) 
Static/Dynamic Web Pages 
Callbacks/alerts 
from 
other 
agencies 
Load Balancer 
Push Notification 
24/365 
Reservation 
from 
other 
staff 
300ms 
External 
Infrastructure 
Backend 
on 
Naver 
NCloud 
User 
Interface

More Related Content

9월 기술사항

  • 1. 9월 기술사항 ! 이진혁! 2014년 9월 7일! eces@mstock.org
  • 2. 기술역량 및 개발환경 상용 소프트웨어로서 자동화된 품질 관리와 생산성 향상을 목표로한다. 䡬 Node.js 생태계 개발팀 역량 제품 요소기술 2009년부터 자라와 국내외에 많은 인력풀이 있고, 수 많은 오픈소스 프로젝트 가 참여하여 업계 표준을 완성하고 있다. 䡬 Github 소스 저장소 모든 변경에 대한 버전을 남긴다. 새로운 패치가 테스트를 통과하고 코드리뷰에 합격해야 릴리즈 버전에 통합된다. 䡬 단위 테스트 자동화 14개의 데이터 모델에 대한 CRUD를 109개 단위로 테스트를 진행한다. 여러 명이 만드는 소프트웨어 품질을 높히는 핵심 부분이다. 䡬 데이터베이스 마이그레이션 Production에 있는 데이터베이스에게 안전하게 evolution을 실행한다. 䡬 Grunt 빌드 시스템 매일 반복하는 작은 일들을 하나씩 자동화하여, 개발시간 단축과 버그 예방을 가 능하게 했고, 팀 효율성이 상승했다. 현재 8개의 빌드 라인이 있다. 䡬 Continuous Integration TravisCI를 통해 모든 소스코드 변경에 대해 테스트를 진행하고 결과를 모두에 게 통보한다. 䡬 클라우드 서버 관리 Forever를 통해 HTTP 서버 데몬을 안전하게 재시작한다. Papertailer을 통 해 로그를 실시간으로 분석 및 감시하며, Nodetime을 통해 성능을 모니터링한 다. Parallel deployment를 진행하여 신규 업데이트로 인한 장애를 사전에 예 방한다. 䡬 수평적으로 확장 가능한 서버 구조(client-side session) Client-side session을 이용하여 언제든지 서버를 증축할 수 있다. 멀티 코어에 대한 지원을 준비중이다. 䡬 Bower를 통해 resolve external dependencies 䡬 i18n(다국어), i10(지역화) 지원 2014년 9월 기준으로 한국어, 영어를 지원하며 시간화폐 단위는 한국, 홍 콩, 중국, 대만, 일본, 미국, 영국을 지원한다. 䡬 하드웨어 가속을 이용하는 차트 렌더링 2개월 차트에 2000ms 걸리는 경쟁사와 달리, Zari는 평상시700ms이 내, 1년치 차트를 2500ms 이내에 렌더링한다. 䡬 외부 예약업체 서버 연동을 위한 XML-RPC 모듈 예약 변경사항을 실시간으로 전세계에 업데이트한다. 여러 대의 서버를 별 도로 나누지 않고 부분별(UI, 채널업데이트) 부하에 따라 역할을 분배한다. 䡬 Windows, Linux, MacOS 지원 구글크롬 브라우저 엔진(Chromium)을 이용한 H Labs 전용 브라우저를 배포하는 방식으로 여러 플랫폼에 대한 품질관리 프로세스를 하나로 통일한 다. 웹서비스이지만 USB, 영수증프린터, 바코드, POS와 연동 가능하다.
  • 3. 아키텍처 다이어그램 일반적인 웹 서비스 구조와 비슷하나, 실시간 예약 생성과 외부 서버 연동, 판매가능한 API 서비스를 하는 차이점이 있다. User Native Application http://zari.me Node.js Server ! ! ! ! ! API version 1.0 Internal Software Logic Background jobs w/ event queue (libev) Realtime Reservation Module (5~10 transactions, rollback) MariaDB H/A Cluster Node.js Server Node.js Server Job Queue (xml-­‐rpc, screen scrapping) Administration (account setting, billing, sign in behalf) Static/Dynamic Web Pages Callbacks/alerts from other agencies Load Balancer Push Notification 24/365 Reservation from other staff 300ms External Infrastructure Backend on Naver NCloud User Interface