R-Blogger블로그·해설한국어2025-07-22
Bioconductor와 ggplot2 4.0.0: 변화와 준비 방법
ggplot2 4.0.0 주요 업데이트 ggplot2 (버전 4.0.0)의 메이저 업데이트는 2025년 7월 중순~말에 예정되어 있습니다. 이 업데이트는 내부 구조를 크게 바꾸어 S3 기반을 대부분 S7 객체 시스템으로 대체합니다. 장기적으로 유지보수와 확장성이 개선되지만, ggplot2 내부 구조를 커스터마이징하거나 스타일을 조정하는 Bioconductor 패키지에는 호환성 문제가 발생할 수 있습니다. 일반적인 ggplot()과 geom_*()를 이용한 플롯 생성만 수행하는 패키지는 영향을 받지 않을 가능성이 높습니다. 핵심 요약: ggplot2 4.0.0은 내부 구조를 S7로 전환하는 대규모 리팩토링을 수행합니다. 일부 Bioconductor 패키지가 파손될 수 있으며, 특히 ggplot 테마나 geom을 커스터마이징하는 경우에 주의가 필요합니다. 통계나 모델링 함수는 변하지 않습니다. 변경 사항 요약 내부 S3 클래스를 S7 시스템으로 전환합니다. 테마, geom, 내부 헬퍼 함수에 의존하는 패키지는 파손 위험이 있습니다. 테스트 실패 또는 런타임 에러가 발생할 수 있습니다. 사용자는 업데이트를 보류하고, 개발자는 pak::pak("tidyverse/ggplot2")를 사용해 미리 테스트해야 합니다. 왜 S7인가? S7은 R에서 새로운 객체 지향 시스템으로, 패키지를 더 견고하고 예측 가능하게 만들며 확장성을 쉽게 합니다. S3에 비해 다음과 같은 장점을 제공합니다. 정식 클래스 및 메서드 정의 제한된 멀티 디스패치 상호 운용성 지원 강화 패키지 간 일관성 향상 S7은 R Consortium OOP Working Group이 주도하고 있으며 R Core, Bioconductor, Posit 등에서 기여합니다. 자세한 내용은 tidyverse 블로그와 R Consortium의 S7 사이트를 참고하십시오. 개발자용 가이드 개발자는 다음 절차를 따라 패키지를 테스트할 수 있습니다. # install.packages("pak") pak::pak("tidyverse/ggplot2") {renv}를 이용해 격리된 환경에서 테스트하는 것을 권장합니다. 문제가 발생하면 다음 단계로 진행하십시오. 버그를 GitHub 이슈에 보고합니다. 필요 시 @teunbrand을 태그해 ggplot2 팀의 의견을 구합니다. Bioconductor 커뮤니티에 Bioconductor Zulip이나 bioc-devel@r-project.org 메일링 리스트에 논의합니다. Bioconductor 패키지에 미치는 영향 Bioconductor 3.21에는 ggplot2를 Depends, Imports, Suggests에 명시한 985개의 패키지가 있습니다. 대부분의 패키지는 일반 플롯만 사용하므로 큰 영향은 없을 수 있습니다. 그러나 커스텀 geom, 테마, 내부 구조를 변경하는 패키지가 위험군에 해당합니다. 예를 들어 ComplexUpset, ggtree, plotly 등이 있습니다. Bioconductor 핵심 팀은 일부 패키지에 대한 자동 테스트를 수행 중이지만, 개발자 개별 테스트가 필수적입니다. 주요 이슈 및 해결 방법 클래스 검사 문제: class(p) 또는 expect_type(p, "list") 같은 테스트가 실패합니다. 대신 expect_true(is_ggplot(p)) 또는 expect_s3_class(p, "ggplot")를 사용합니다. (#6498 참조) 라벨 처리 강화: 라벨이 더 엄격해졌으며, labs()에 익명 또는 중복 인수 사용을 피하고 get_labs()를 테스트에 활용합니다. (#6505) 커스텀 + 연산자: +.gg 같은 사용자 정의 연산자는 S3/S7 혼합 사용 시 구현을 재검토해야 합니다. (#6504) 요소 생성자 타입 검사 강화: element_text() 등에서 잘못된 프로퍼티가 강제됩니다. 패키지 내부를 수정하십시오. (#6507) S3 메서드 일관성
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
- 작성자
- R-Blogger
- 출처
- R-Blogger
- 플랫폼
- R-Blogger
- 분류
- 블로그·해설
- 언어
- 한국어
- 발행일
- 2025-07-22