Subnavigation

Qt의 모듈화 프로젝트

이 글은 Qt Labs Blogs 의 " Qt is going modular "을 번역한 것입니다.

최근  "Qt Modularization" 프로젝트가 시작되었습니다. 이 프로젝트는 Qt를 모든 레벨에서 모듈화하는 것을 목적으로하고 있습니다. 아시다시피, Qt는 이미 라이브러리 단위로 모듈화되어 각 라이브러리는 각각 다른 파일 (DLL) 로되어 있습니다. 하지만 Qt 프로젝트 자체는 하나의 프로젝트입니다. 모든 코드는 하나의 저장소(repository)로 공개되며, 모듈의 빌드는 그것이 의존하는 모듈을 동시에 빌드하지 않고는 할 수 없습니다. 이 프로젝트는 그 상황을 바꾸려고합니다. 각 모듈은 다른 저장소에서 관리고, 각각 별도의 관리자가 존재하고, 또한 모듈마다 다른 릴리스 일정이 있습니다.

이 프로젝트는 다양한 요인에서 시작되었습니다. 그 중 하나는 특정 모듈을 다른 모듈보다 더 자주 릴리스해야할 경우가 있기  때문입니다. 그것은 QtWebKit과 QtDeclarative처럼 개발이 활발한 프로젝트에 중요합니다. 다른 이유는 Qt의 모든 코드를 하나의 저장소(repository)에서 관리 하는 것은 Qt의 기술적인 관점뿐만 아니라 관리적인 관점에서도 적당치 않습니다. 완전히 분리된 모듈화를 통하여 각 모듈의 팀은 독립적으로 작업할 수 있으며, 공개 코드에 대한 기여도 독립적으로 진행될 수 있습니다. 또한, 테스터와 개발자는 안정적인 의존 모듈을 이용해서 대상 모듈에만 초점을 맞춘 테스트와 빌드를 할 수있게됩니다.

Qt는 아래의 그림과 같이 분할 될 것입니다. 첫번째 그림은 현재 Qt의 구조 다이어그램이고, 다음 그림이 검토중인 모듈안 보여줍니다. 진행 일정은 아직 확정되지는 않지만, 이 프로젝트는 매우 높은 우선순위로 진행 될 것 입니다. Qt 커널 모듈은 향후 더 세분되어 나눠 질 수 있음에 유의하십시오. 하지만, 현재 이 모듈은 서로 매우 강한 의존성을 가지고 있기 때문에 현재는하나의 커널 모듈로 정리해 둘 예정입니다.

이 그림은 현재의 계획이며, 변경될 수 있습니다.

현재 구조 :

現在のモジュール構造

변경안 :

変更予定案

말할 필요도 없이, 이것은 Qt의 개발 방법에 큰 영향을 미칠 것 입니다. Gitorious는 여러 저장소(repository)를 호스팅하게 되고, Qt 저장소를 복제(clone)하고있는 모든 사람에게 영향을 줍니다. 그러나 초기 혼란이 지나고 나며, Qt의 이용과 개발, 공헌을 쉽게 할 수있게 될 것으로 기대합니다.

개별 모듈 자체에는 관심이 없지만 Qt의 전체 패키지가 필요한 사람을 위해, 모든 모듈을 가진 마스터 저장소(repository)를 만드는 것을 검토하고 있습니다. 현재는 git submodule과 Android’s repo를 추천 검토하고 있지만 다른 제안이 있으면 그것도 좋습니다. 모든 Qt의 모듈이 포함된 (현재와 같은) 릴리즈도 계속 해나갈 예정입니다.


Blog Topics:

Comments