피드로 돌아가기
Dev.toDevOps
원문 읽기
Local Apex Runtime 도입을 통한 Salesforce CI 피드백 루프 혁신
Trunk-Based Development Working for Salesforce Without a Single Org
AI 요약
Context
Apex 테스트 수행 시 Salesforce Org 의존성으로 인한 인프라 프로비저닝 병목 발생. 테스트 실행 전 인증, 배포, 환경 생성 과정이 반복되며 수 분 단위의 느린 피드백 루프로 인해 Trunk-Based Development 적용이 어려운 구조.
Technical Solution
- Org 의존성 제거를 위한 Local Apex Runtime 'Nimbus' 설계 및 구현
- Apex 파싱 및 로컬 코드 실행 엔진 구축을 통한 인프라 관리 계층 제거
- DML, SOQL 및 Trigger 동작을 로컬에서 재현하여 Salesforce 런타임 시맨틱 일치 구현
- 테스트 격리(Test Isolation) 메커니즘 적용으로 로컬 환경 내 독립적 검증 체계 구축
- Source Code 기반 직접 테스트 방식으로 전환하여 Repository 중심의 Truth Source 확립
- JUnit 및 Cobertura 표준 리포트 생성을 통한 기존 CI/CD 파이프라인 도구와 호환성 유지
실천 포인트
- CI 파이프라인의 병목이 비즈니스 로직 검증인지 인프라 준비 단계인지 분리하여 분석 - 외부 의존성(Cloud Org, DB 등)을 제거한 Local Mock/Runtime 도입 가능성 검토 - 피드백 속도와 개발자의 작업 단위(PR 크기) 사이의 상관관계를 고려한 도구 체인 최적화 - 배포 대상(Deployment Target)과 테스트 환경(Test Environment)의 책임을 분리하여 복잡도 감소