JavaScript 개발에서 자동빌드환경을 구축을 검토하신다면

Bamboo를 이용한 JavaScript 자동빌드(CI-Continuous Integration)




Jesse GibbsBamboo 에 대해 이야기 합니다. (2010년 1월)

최근 인터렉티브한 웹사이트와 웹 어플리케이션과 함께 빠른개발환경(RDE) 에서 JavaScript 이벤트 핸들링, 에니메이션, Ajax 인터렉션을 위한 JQuery 라이브러리의 사용이 매우 대중적이 되었습니다.
이러한 JQuery 기반의 어플리케이션에 대해서도 빡빡한 일정과 급격한 변동사항은 자동빌드(CI-continuous integration)에 대한 요구를 만들고 있습니다.

저는 최근 어떻게 JQuery기반의 웹 어플리케이션에서 QUnit으로 쓰여진 유닛 테스트(JQuery 라이브러리에 포함된 유닛 테스트 프레임워크) 를 수행하기 위해 자동빌드 환경(continuous integration) 을 구축하는 지를 다루면서 Bamboo를 이용하여 Javascript 에 대한 자동빌드환경(Continuous integration)을 구축 하는 내용에 대해 의견을 교환하는 토론 쓰레드를 발견하였습니다.

이 쓰레드에서 기술된 해결방법은 다음과 같습니다:






  • JQuery테스트와 다른 클라이언트 혹은 서버사이드 JavaScript를 위한 QUnit




  • JUnit 호환 XML로 출력을 변경해 주고 테스트를 구동시키기 위한 JSTestDriver



이것은 어떤 프로그래밍 언어로 쓰여진 어플리케이션이라도 CI 빌드를 수행할 수 있는 Bamboo의 활용에 대한 좋은 예입니다.
커맨드라인에서 빌드를 시작하고, 산업계 표준인 JUnit XML 포멧으로 테스트 결과를 출력하는 동안은, Bamboo를 사용하여 자동빌드환경(CI)을 쉽게 구축할 수 있는 것입니다.
어떤 언어의 커맨드라인 기반의 빌드 수행 뿐만 아니라, Bamboo는 Ant, Maven, Maven2, make, MSBuild 그리고 Devenv (Visual Studio) 그리고 Grails를 지원합니다.
JUnit, Selenium, PHPUnit, TestNG, NUnit, PyUnit, PMD를 포함하는 어떠한 xUnit 호환 테스팅 툴도 Bamboo 빌드와 같이 사용될 수 있습니다.

"자동빌 드 환경(CI-Continuous Integration Build)에서 JavaScript 유닛 테스트를 실행하기" 토론 내용을 지금 확인해 보십시요.


(골드피처 주)


Bamboo는 이 블로그와 같이 여러 환경에서 사용이 가능합니다. 하지만 내용에서도 나와 있는바와 같이 자동화된 빌드툴이던, 커맨드 라인 환경이든 중요한 것은 이러한 자동유닛테스트와 실시간 피드백을 가능하게하는 자동빌드환경에 대한 필요성을 느끼는 것입니다.

국내에서도 이러한 자동빌드환경(CI) 에 대해 이야기된 것은 꽤 되었지만, 아직도 실무에서 적용되는 사례는 그리 많지 않은 것 같습니다.

그것은 우선 인식의 부족이 첫 번째 이유이고, 두 번째 이유는 환경구성을 위한 개발환경의 변경의 어려움일 것입니다.

첫 번째 이유는 시간이 가면서 점차 나아지고 있다고 여겨지지만, 두 번째 이유는 국내의 개발여 개 상 쉽게 해결되지 못하고 있는 것 같습니다.

자동빌드환경 구성을 위해 하나의 큰 프로젝트를 분할하여 유닛테스트를 구성하거나 커맨드라인에서 하나의 배치파일로 모든 빌드과정이 수행되도록 기존 환경을 정리하는 일 등은 빡빡한 프로젝트 일정과 개발환경 변경을 서로 책임지기 꺼리는 업무분위기에서는 쉽지 않은 것이 현실입니다.

하지만 가고자 하는 방향이 분명이 맞다고 생각되면, 장애물이 있더라도 별도의 빌드팀을 구성하던, 혹은 프로젝트 일정을 재조정하더라도, 수단과 방법을 총동원하여 빨리 가는 것이 최선이 것입니다.

방향이 틀린 것이 아닌가 의심스럽다면, 소프트웨어 개발에 있어서 선구자적인 역할을 하고 있는 해외의 여러 오픈소스 단체나 회사를 둘러보십시요. 답이 나오실 것입니다.

댓글

이 블로그의 인기 게시물

Confluence 내의 스프레드 시트 기능이 필요하시다면 애드온을 활용해 보십시요

시스템에 숨어있는 "윤초" 버그에 대해 준비하십시요

Confluence 페이지의 분류와 관련된 잘 몰랐던 기능 3가지를 확인해 보십시요