2
29cm
January 22, 20251회
SwiftLint 캐싱을 통한 Incremental Build 최적화하기

간단 소개
SwiftLint 캐싱과 CI 도입으로 iOS 증분 빌드 시간을 최적화하고, 린트 관련 이슈를 해결하여 개발 생산성을 향상시킨 경험 공유.
AI Summary
- SwiftLint 캐싱을 통한 증분 빌드 최적화
- SwiftLint는 코드 스타일과 품질 유지를 위한 필수 도구이지만, 전체 코드베이스 검사로 증분 빌드 시간을 증가시키는 문제가 있음.
- 모듈화된 프로젝트에서 모듈 수 증가에 따라 SwiftLint 실행 시간이 더 늘어남.
- SwiftLint 로컬 캐싱 구현 및 한계
- Xcode Build Phase의 'Based on dependency analysis' 옵션을 활용하여 Input File Lists의 변화가 있을 때만 SwiftLint를 실행하도록 개선.
- xcfilelist 갱신 스크립트 개발 및 Build Pre-actions를 통해 특정 타겟 내 변경사항 발생 시 Input File Lists를 갱신.
- 로컬 캐싱 적용 후 SwiftLint 소요 시간이 크게 감소했으나, 린트 체크가 제대로 안 되는 문제와 린트에 대한 민감도 감소 현상 발생.
- SwiftLint CI 도입을 통한 문제 해결
- danger-swift 도구를 사용한 GitHub Actions Workflow로 SwiftLint CI를 구축하여 린트 관련 이슈 해결.
- 변경된 파일에 대해서만 SwiftLint 체크를 수행하고, Build Post-action과 백그라운드 실행 기능을 활용하여 개발 흐름과 무관하게 SwiftLint 캐싱 이슈를 보완.
Next Feeds
Asyncio 없이 싱글 스레드 논 블락킹 비동기 서버 만들기 (Feat. Event Loop 이해하기)
Asyncio 없이 싱글 스레드 논 블락킹 비동기 서버를 구현하고, 이벤트 루프의 원리를 이해하는 과정을 설명합니다.
비동기이벤트 루프논 블락킹소켓selectors
2025. 1. 22.
뤼이드

비동기 메시지 가시화 파티가 1년 간 개발 문화를 바꾼 방법
모두싸인 개발팀의 비동기 메시지 가시화 파티가 AsyncAPI와 WAAX를 통해 개발 문화를 개선한 1년간의 여정을 담고 있습니다.
비동기 메시지AsyncAPIWAAXCode-Gen개발 문화
2025. 1. 22.
모두싸인

코드 품질 개선 기법 4편: 문을 없애고 테스트하기
단위 테스트는 내부 구현보다는 사양에 따른 동작 검증에 집중하고, 외부 의존성은 Mock을 활용하여 테스트해야 한다.
단위 테스트코드 품질가시성Mock외부 의존성
2025. 1. 22.
LY Corp

Claude MCP로 엔지니어링 업무 자동화하기 : 정보 검색, README, Git, Slack 활용법
Claude MCP를 활용하여 엔지니어링 업무 자동화하는 방법(정보 검색, README 생성, Git 제어, Slack 채널 분석)을 소개합니다.
MCP자동화AIClaudeDevOps
2025. 1. 22.
인포그랩

DevOps 실무자를 위한 GitLab Wiki 활용법 : 협업과 지식 관리 최적화
GitLab Wiki 활용법을 소개하고, 협업과 지식 관리 최적화를 위한 단계별 가이드 및 팁을 제공합니다.
GitLab Wiki협업지식 관리DevOps문서화
2025. 1. 22.
인포그랩

테스트 코드 작성 가이드(근데 이제 Jest를 곁들인)
Jest를 활용한 테스트 코드 작성 가이드로, 단위, 통합, E2E 테스트, TDD, BDD 방법론 및 유지보수 팁을 제공한다.
테스트 코드JestTDDBDD유지보수
2025. 1. 22.
비브로스