본문 바로가기
  • 폴라리스 오피스 기술 블로그
Polaris Office Story/Our Services

[Atlassian Solution 도입 성공 사례] 인프라웨어 (Bamboo, Fisheye&Crucible, SonarQube)

by 인프라웨어 2018. 8. 1.

 

 

Atlassian Solution을 통해 성장한 

 

- 도전을 통해 성장하는 글로벌 소프트웨어 기업
 
 
  • 모바일 앱 조사기관 App annie에 따르면, Polaris Office는 앱 스토어와 안드로이드 마켓 통합 productive category에서 다운로드 기준 Top 1위
  • Polaris Office 서비스 런칭 19개월 만에 글로벌 가입자 3000만명 돌파!
  • 글로벌 경쟁 서비스 에버노트(Evernote)가 런칭 이후 동일 기간 동안 약 170만 명의 가입자를 확보한 것과 비교할 때 18배 수준의 초고속 성장세!! 
  • 현재는 북미 유럽 일본과 인도 및 신흥 시장으로 영향력을 확대해나가, 전세계 240개국에 Polaris Office 서비스를 제공 중으로 5300만 이상의 가입자를 확보하고 있는 어마어마한 제품
이렇게, 인프라웨어의 제품이 시장 트렌드에 맞추어 진화하며 성장 할 수 있었던 것은 Atlassian 제품과 함께 끊임 없이 연구하고 노력했기 때문입니다. 
 

 

인프라웨어 - 

 

 

 

제품 도입

 

이슈서비스 베타 오픈 후에 개인 사용자가 급증하게 되어, 다양한 환경 및 기능개선 요구를 받게 됨

  • 기존과 같이 기능 동작에 대한 외형적인 Blackbox test로는 찾을 수 없는 기능의 잠재적 Risk 급증
  • 외형적인 버그 수정 과정에서 side effect 발생 빈도가 급증하게 됨
  • 잦은 릴리즈를 대응하기 위한, 잦은 빌드 과정에서 빌드 오류가 빈번하게 발생

위와 같은 일련의 상황에 대하여 소스 코드 구조화 (리팩토링) 와 코드 품질 개선으로 코드의 risk를 줄여야 한다는 목표가 형성됨

 

해결 : Bamboo, Fisheye&Crucible 제품 도입 

  • Bamboo를 기반으로 한 지속적 통합(CI)을 구현, 빌드 오류 관리 및 자동화와 품질 측정 (중복 코드, LOC등) 자동화까지 확장함
  • 품질 측정 이후 코드 품질 개선 활동의 일환으로 Crucible기반 Code Review를 수행하게 됨
  • Fisheye를 활용하여 형상 관리 정보를 Crucible, Jira와 연동
 

도입 효과

  • Bamboo 기반의 지속적인 통합 빌드 관리 및 Crucible을 이용한 코드 리뷰 문화 정착
    • 자동 반복적인 빌드 처리에 따른 빌드 작업 및 오류 발견 즉시 담당자에게 공지되어 빠른 처리가 가능해짐 
    • Daily 단위로 제품 패키징이 가능한 리비전의 빌드가 생성되어, 배포 과정에서의 오류 및 Risk 감소
    • 품질 측정과 코드 리뷰에 따른 리팩토링으로 LOC 30%감소 / 버그 발생 빈도 30% 개선
 
Bamboo, Fisheye&Crucible 제품 도입에 따른 
        개발팀의 개발 효율성과 품질 개선 효과 요약 비교 
 
 

 

  1. PO 프로젝트 LOC: 약 500만 라인 --> 약 350만 라인으로 30% 코드 리팩토링 
  2. PO 빌드오류 발생시 평균 수정 시간: 기존 수작업 빌드 소요 및 대응 지연으로 3시간 소요 
    1. 자동 빌드 진행 후 문제 실시간 안내로 인해 30분 정도 소요
  3. PO 엔진부분 평균 데일리 이슈: 코드 품질 개선으로 인하여 하루 평균 50개 정도 발생하던 엔진이슈가 35개로 30% 감소

이와 같이 품질 개선은 코드 단위에서도 진행하여, 기본이 튼튼한 제품을 만들 수 있게 되었습니다. 

 

 
 
제품  활용법
 
Bamboo Jira 연동하여 활용

 

  • Bamboo에서 Build 실패시 JIRA 이슈로 자동 생성하여, 신속하게 처리 하고 관리 
  • 빌드 실패 JIRA 이슈에는 어떤 빌드에서 문제가 생겼는지 링크로 관리 되어 쉽게 오류 수정이 가능

 

 
SonarQube를 이용한 품질 측정
 
PO개발 과정에 있어 기능 테스트 이외의 비기능 테스트(성능,보안 등)의 역할을 하고, 또한 code 품질을 다양한 각도로 측정 및 시각화 
  • 대시보드를 통해 소위 품질의 7가지 축(seven axes of quality)이라고 하는 ‘잠재적인 버그’, ‘코딩 규칙’, ‘테스트’, ‘중복’, ‘주석’, ‘아키텍처 및 설계’, ‘복잡도’를 측정하고 시각화 하여, 품질 개선이 필요한 부분을 찾을 수 있게 하였습니다.
  • 처음에는 개발자들이 부담스러워 하였지만, 지속적으로 개선되는 코드 품질로 인하여 장기적으로는 개발자들에게 도움을 줄 수 있었습니다. 

 

Smart Commit 활용
 

개발자는 코드 소스를 SCM에 Commit 할때 반드시 관련된 JIRA 이슈키를 입력하여, 커밋된 리비전이 JIRA 이슈에 연결되도록 규칙을 지정. 초기에는 개발자들이 번거로워 하였으나 규칙이 정착된 후에는 작업한 코드 내역이 어떤 bug 또는 요구사항에 대한 것인지 명확하게 관리되어 개발 생산성이 개선

 

  • SCM: Source Code Management

소스코드의 버전(형상)관리를 의미하며, 팀 단위로 개발 중인 소스코드나 문서등을 관리하는데 사용된다. 소스, 문서의 변경 사항들에 버전 및 작업 내역을 기록하여 이력 관리 및 추적이 가능하게 해줌. SVN, GIT이 대표적인 솔루션

  • Commit: SCM에 소스나 문서의 변경 내역을 업로드 하고 버전 등록하는 활동

 


 
 
 
참고사항
  • 지속적 통합(CI):

지속적 통합(continuous integration, CI)은 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것이다. - 작은 단위의 작업, 빈번한 적용. 지속적인 통합은 모든 개발을 완료한 뒤에 퀄리티 컨트롤을 적용하는 고전적인 방법을 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 초점이 맞춤

  • Blackbox Test:

소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법을 이르는 말이다. 주로 올바른 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필요로 하지 않는다.

  • LOC:

Line Of Code, 프로젝트 소스 내에 유효한 코드의 라인수를 의미. 동일한 기능을 구현하더라도 중복되는 코드 부분을 모듈화 하면 그만큼 LOC 값이 Compact 해지고, 중복코드를 줄이면 그만큼 유지보수가 용이해짐

 

 

 

제품 상세 정보 : http://www.infrawaretech.com/atlassian/#product

 

 

Contact us


Address
서울특별시 금천구 가산디지털1로 19 
대륭테크노타운 18차 19층


Phone
02-6190-7513


E-mail
partner@infrawareglobal.com


Homepage
http://www.infrawaretech.com/atlassian/

사업자 정보 표시
인프라웨어테크놀러지 | 엄태철 | 서울특별시 금천구 가산디지털1로 19 대륭테크노타운 18차 19층 | 사업자 등록번호 : 109-86-08147 | TEL : 02-6190-7513 | Mail : partner@infrawaretech.com | 통신판매신고번호 : 110111-3676404호 | 사이버몰의 이용약관 바로가기

댓글