Mockito 유지관리자가 10년 만에 자리에서 물러남

1 month ago 9

  • Java에서 가장 널리 사용되는 모킹 프레임워크 Mockito가 현재 5.x 버전으로 유지되고 있음
  • 최신 버전은 기본 mockmaker를 mockito-inline으로 전환하고, Java 11 이상을 요구함
  • 프로젝트는 Tidelift 구독 서비스를 통해 기업용 지원과 유지보수를 제공함
  • 모든 변경 사항은 Sonatype 저장소에 SNAPSHOT 버전으로 자동 배포되며, 한 달에 한 번 정도 Maven Central에 정식 릴리스
  • 10년간 유지된 프로젝트로서, 지속적 자동화와 상용 지원 체계가 오픈소스 생태계에서 중요한 사례로 평가됨

Mockito 개요

  • Mockito는 Java 언어용으로 가장 널리 사용되는 모킹(mocking) 프레임워크로, 단위 테스트에서 객체 동작을 시뮬레이션하는 기능 제공
  • 현재 5.x 버전이 최신이며, 이전 버전(1.x, 2.x, 3.x, 4.x)은 더 이상 지원되지 않음
  • 각 주요 버전의 특징
    • Mockito 2: Java 6에서 Java 8로 요구사항 상향
    • Mockito 3: API 호환성 유지, Java 8 필요
    • Mockito 4: 사용 중단된 API 제거
    • Mockito 5: 기본 mockmaker를 mockito-inline으로 변경, Java 11 필요

기업용 지원

  • Tidelift 구독 서비스를 통해 상용 지원 및 유지보수 제공
    • 오픈소스 의존성의 보안, 품질, 유지보수를 개선할 수 있음
    • 사용자는 자신이 사용하는 의존성의 유지관리자에게 직접 비용을 지불함으로써 리스크 감소와 코드 건강성 향상 가능

개발 및 배포 프로세스

  • 모든 변경 사항은 Sonatype 공개 저장소에 -SNAPSHOT 버전으로 자동 배포
  • 약 한 달 주기로 Maven Central에 마이너 또는 패치 버전이 릴리스됨
  • Shipkit 라이브러리Gradle Nexus Publish Plugin을 사용해 완전 자동화된 릴리스 수행
  • 문서와 Javadoc은 릴리스 후 24시간 내 javadoc.io에 게시됨
  • Semantic Versioning 원칙을 따르며, 이전 버전으로의 백포트는 지원하지 않음

개발 환경 및 기여

  • 로컬 빌드는 ./gradlew build 명령으로 수행 가능
  • Gradle을 지원하는 IDE(IntelliJ IDEA, Fleet 등)에서 바로 열 수 있음
  • Eclipse 사용 시 ./gradlew eclipse 명령으로 프로젝트 설정 필요
  • 새로운 버전 릴리스는 Git 태그를 통한 수동 트리거 방식으로 진행되며, GitHub 웹 UI에서는 릴리스 생성 불가
  • 프로젝트는 오픈소스 웹사이트(site.mockito.org)기여 가이드라인을 통해 외부 기여를 적극적으로 수용

커뮤니티 및 지원 채널

  • Stack Overflow의 mockito 태그를 통해 질문 검색 및 질의 가능
  • Google Groups의 메일링 리스트 운영(관리자 승인 필요)
  • GitHub 이슈 트래커를 통해 버그 및 개선 요청 접수

추가 정보

  • 모든 문서와 릴리스 노트는 GitHub Releases 페이지Mockito 공식 사이트에서 확인 가능
  • 오래된 1.x 및 2.x 버전의 바이너리와 문서는 Maven Centraljavadoc.io에서 여전히 접근 가능
  • 프로젝트는 오픈소스 웹사이트(mockito.github.io) 를 통해 문서화되어 있으며, Pull Request 기여를 환영함

Read Entire Article