detekt + reviewdog으로 정적 코드 분석 자동화하기
Kotlin 멀티모듈 프로젝트의 정적 코드 분석을 PR마다 자동 게이트로 강제하고 리뷰어 부담을 줄여야 했다.
Kotlin 멀티모듈 프로젝트의 정적 코드 분석을 PR마다 자동 게이트로 강제하고 리뷰어 부담을 줄여야 했다.
detekt 기본 룰만으로는 "ViewModel의 SavedStateHandle은 생성자 첫 인자" 같은 사내 안드로이드 컨벤션을 강제할 수 없었다.
SonarQube Cloud는 트리거가 종종 미작동하는 안정성, PR에서 결과 확인이 번거로운 접근성, 팀 룰 자동화가 막히는 커스터마이즈 한계를 동시에 갖고 있었다.
ViewModel 단발성 이벤트 처리를 위해 커스텀 구현한 EventFlow가 Kotlin 기본 유틸리티로도 해결 가능한 복잡성을 추가하고 있었다.
PR에 100KB 이상 이미지가 추가될 때마다 개발자가 TinyPNG에서 직접 압축해야 하는 반복 수작업이 있었다.
주 1회 배포 사이클에서 6가지 서비스를 한정된 QA 인력으로 효율적으로 검증해야 했다.
Jira에서 fix version을 관리할 때 이슈 생성 시 입력하는 방식은 누락이 잦고, Release PR 시점에 매번 수동으로 모든 이슈에 버전을 추가하는 흐름은 번거롭고 실수가 잘 났다.
헤이딜러 앱에서 팝업 닫기 동작과 X버튼 노출 기준이 일관되지 않아 디자이너·개발자 사이 소통 비용이 컸다.
스켈레톤 로딩을 어디에 적용해야 좋은지 기준이 없었고, 화면마다 새 스켈레톤 UI를 만드는 비용이 누적돼 도입 효율이 떨어졌다.
헤이딜러 앱에서 닫기(X)와 뒤로가기(←) 버튼을 깊이(depth) 기준으로 적용하면 비슷한 화면 흐름인데도 일관성이 깨지고 사용자 혼란이 커진다.