소개
Rubberduck는 VBA IDE(VBE)를 현대화하기 위한 오픈 소스 COM 추가 기능입니다. 2014년부터 Rubberduck 프로젝트 기여자들이 개발하고 유지 관리하며, Visual Basic for Applications 환경에 정적 코드 분석, 리팩터링, 단위 테스트, 향상된 탐색 기능을 제공합니다. 이 도구는 VBA 개발자가 더 깨끗하고 유지 관리하기 쉬운 코드를 작성하도록 돕는 것을 목적으로 합니다.
상세정보
향상된 탐색
Rubberduck의 명령 표시줄은 현재 멤버의 docstring을 표시하여 빠른 참조를 가능하게 합니다. Code Explorer는 프로젝트를 가상 폴더 계층 구조로 시각화하여 멤버 수준까지 드릴다운 검색을 지원하며, 프로젝트 내 모든 식별자에 대한 참조를 한 번의 클릭으로 찾을 수 있습니다.
정적 코드 분석 및 리팩터링
이 도구는 구성 가능한 방식으로 코드를 분석하여 초보자 실수를 방지하고 일관된 프로그래밍 스타일을 유지하며 잠재적인 버그를 찾아냅니다. 많은 검사는 Stack Overflow의 VBA 질문에서 영감을 얻었으며, 자동 빠른 수정이 제공되는 경우도 있습니다. 변수 이름 변경, 지역 변수를 매개변수로 승격, 인터페이스 및 메서드 추출, 필드를 속성으로 캡슐화, 매개변수 재정렬/삭제 등의 리팩터링 작업을 지원하며, 모든 호출자를 자동으로 업데이트합니다.
단위 테스트
Rubberduck은 MSTest에서 영감을 받은 API를 제공하여 테스트 절차를 통해 코드가 예상대로 작동함을 입증할 수 있게 합니다. 테스트 케이스의 조건을 설정하고 예상 결과를 검증하는 절차를 작성할 수 있으며, 실험적인 모킹 프레임워크(Moq 기반)를 통해 COM-visible 래퍼를 사용하여 VBA 인터페이스를 자동으로 구현하고 모ック 객체를 구성할 수도 있습니다.
스마트 인덴터
Office Automation Ltd.의 popolare 32비트 추가 기능을 포팅한 이 기능은 Stephen Bullen과 Rob Bovey가 GPLv3 하에 자유롭게 제공한 레거시 VB6 소스 코드를 기반으로 합니다. 첫 실행 시 감지되면 스마트 인덴터 설정을 가져오도록 프롬프트가 표시됩니다.
주석 처리 기능
@Folder 주석을 사용하여 프로젝트의 모듈을 폴더별로 구성할 수 있으며, @Description과 @PredeclaredId 주석을 통해 VB_Description과 VB_PredeclaredId 숨은 속성을 수동으로 모듈을 내보내지 않고도 동기화할 수 있습니다.
다운로드 및 설치 방법
공식 릴리스 페이지에서 실행 파일 설치 프로그램을 다운로드할 수 있습니다. 다운로드한 exe 파일을 실행하여 설치 마법사를 따르며, 설치 완료 후 Visual Basic Editor를 다시 시작하면 Rubberduck 추가 기능이 활성화됩니다. 자세한 설치 방법은 공식 위키의 Installing 페이지를 참조하십시오.
기본 사용법
설치 후 VBE에서 새로운 도구 모음과 메뉴가 나타납니다. 코드 탐색을 위해서는 Code Explorer 패널을 열고, 정적 분석을 실행하려면 검사 도구를 사용하며, 단위 테스트를 작성하려면 테스트 탐색기를 통해 테스트 절차를 생성하고 실행할 수 있습니다. 스마트 인덴터는 코드를 입력할 때 자동으로 작동하며, 주석 처리 기능은 @Folder 등의 특수 주석을 입력하면 자동으로 처리됩니다.
이런 경우에 유용합니다
VBA로 복잡한 프로젝트를 개발하는 개발자에게 유용합니다. 특히 코드 품질을 유지하고 리팩터링 작업을 안전하게 수행해야 하는 환경에서 도움이 됩니다. 단위 테스트를 도입하여 코드의 동작을 검증하고자 하는 팀이나, 대규모 VBA 프로젝트에서 탐색 및 유지 관리 효율을 높이려는 개인 개발자에게 적합합니다.
지원 환경·시스템 요구사항
이 소프트웨어는 Windows 운영 체제에서 실행되며, Microsoft Visual Basic for Applications가 설치된 환경이 필요합니다. 32비트 및 64비트 호스트 모두에서 작동하지만, 매우 큰 프로젝트를 다룰 때는 메모리 사용량이 많아 성능에 영향을 줄 수 있으므로 작은 테스트 프로젝트부터 시작하는 것이 권장됩니다.
최신 버전·업데이트
현재 버전은 2.5.91이며, 이는 2.5.2에서 점진적인 기능 개선과 버그 수정을 통해 도달한 버전입니다. 개발 팀은 향후 주요 업데이트보다는 2.5.x 시리즈의 안정화에 초점을 맞추고 있으며, 3.0 버전을 위한 언어 서버 기반 아키텍처 개발 준비 중에 있습니다.
제한 사항·확인 사항
Rubberduck은 상당한 메모리를 소비하므로 매우 큰 VBA 프로젝트를 다룰 때는 32비트 호스트뿐만 아니라 64비트 호스트에서도 성능 저하가 발생할 수 있습니다. 이를 완화하기 위해 파서를 자주 새로 고치고, 검사 설정을 검토하여 불필요한 결과를 줄이며, 가능한 경우 명시적인 데이터 타입을 사용하고 late binding을 피하는 것이 좋습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


