<< AngularJS 사용하면서 정리한 것들 | Home | Javascript에서 함수형 프로그래밍 맛보기 >>

빌드시스템 Pants에 대해

Foursquare/Twitter/Square에서 사용중인 증분 빌드 시스템인 Pants(오픈소스)에 대해서 정리했습니다. 참고 사이트는 트위터 블로그에 쓰여진 "Hello Pants build"를 참고하였습니다.

큰 프로젝트의 경우 codebases가 커짐으로인해 그에 수반되는 개발 작업의 어려움도 증가하게 된다. 빌드도 느려지고, 또한 현재 존재하는 툴들은 그리 스케일하지도 않다.

그래서 하나의 해결책으로 내놓은 것이 코드를 분리해 여러 저장소에 나누어 관리를 하는 것이다. 그러나 이렇게함으로써 codebases가 수백개로 겉잡을 수 없게 되 종속성 관리도 어렵게 되어버린다. 그래서 결국 개발자의 개발 생산성에 악영향을 준다는 것이다.

다른 해결책의 하나로 Python으로 개발된 Pants를 사용하는 것인데, 이는 커진 코드베이스를 하나의 저장소로 정리해 종속성도 효율적으로 관리되다보니 개발 생산성도 올라간다는 것.

Pants는 Google의 내부 빌드시스템을 참고로 작성되었으며, Foursquare/Twitter/Square에서도 사용중이며, 실제 필요한부분, 즉, 변경된 부분만 컴파일하는 증분 빌드 기법을 적용하고 있다.

주요 강점은 아래와 같다.
  • 현재는 Java/Scala/Python을 지원.
  • 다른 언어를 추가해도 문제가 없음.
  • 코드 생성을 지원 : thrift, protocol buffers, 커스터마이징 가능한 코드 생성기도 지원.
  • 외부 JVM/Python 종속성을 지원함.
  • 테스트 수행함.
  • 배포 가능한 패키지를 만들 수 있음.
  • 스케일 지원.
  • 증분빌드 지원.
  • 스칼라 언어의 빌드는 다른 도구들보다 빠름.
  • 독립형 Python의 executable(PEX 파일)를 빌드함.
  • 로컬/분산 캐시를 지원.
  • Linux와 Mac OSX에서 돌아감.



Add a comment Send a TrackBack