깃허브, 루비 언어용 리팩토링 도구 출시

가 +
가 -

깃허브가 리팩토링 결과를 테스트할 수 있는 오픈소스 기술을 2월3일 공개했다.사이언티스트‘라는 루비 라이브러리다.

리팩토링이란 기능상에 큰 변화를 주지 않으나 내부 구조를 보기 좋게 변경하는 것을 말한다. 예를 들어, 중복코드를 없애거나 퍼블릭 메소드를 프라이빗 메소드로 변경하거나, 상속 범위를 수정하는 것이다. 리팩토링 과정으로 코드의 품질은 높아지고 유지보수 및 확장을 하기 더 쉬어진다.

깃허브는 “일반적으로 리팩토링은 추상화 계층을 넣어 새로운 코드를 테스트한다”라며 “하지만 실제 시스템에 적용해봤을때 어떤 변화가 생길지 알기 쉽지 않다”라고 설명했다. 사이언티스트는 기존 추상화 계층보다 가벼운 추상화 계층을 사용한다. 이때 새로운 코드와 기존 코드는 해당 추상화 계층에서 동시에 실행되고 사이언티스트는 성능값을 비교해준다.

scientist-flow-diagram

▲사이언티스트 구조(사진: 깃허브 엔지니어링 페이지)

깃허브는 사이언티스트 결과값을 ‘블루벡‘이라는 오픈소스 기술을 이용해 시각화했다. 블루벡도 깃허브가 만든 통계값 표시 도구다.

pullable-by-graph-total-mismatches

▲사이언티스트로 얻은 데이터값을 시각화한 결과(사진:깃허브 엔지니어링 페이지)

깃허브는 내부 인프라를 관리할 때 직접 사이언티스트를 썼다고 전했다. 이번에 1.0버전으로 공개했으며 라이선스는 MIT 라이선스로 배포됐다.

네티즌의견(총 0개)