husky 같은 기능을 통해 커밋 시점에 분석을 진행할 수 있습니다. 그로 인해, 검증된 코드만 실제로 푸시되는 이점이 존재합니다.
하지만 커밋 시점에 모든 분석을 진행한다는 것은 각자의 로컬 환경을 의미합니다. 분석 시간이 오래 걸릴수록 생산성에 영향을 줄 수 있습니다.
로컬에서는 최소한의 검사만 진행하고 실제로는 리모트 환경에서 엄격한 분석을 진행할 수 있습니다. 검증되지 않은 코드가 푸시되는 것은 크리티컬한 이슈가 아닙니다. 우리는 main, develop, release 와 같은 브랜치에서만 검증된 코드를 보장하면 됩니다. 중요한 브랜치는 PR 을 통해 머지되는 것이 일반적이기에, 로컬에서 모든 검증을 이루어지게 할 필요는 없습니다.
%% 정적 코드 분석
graph LR
%% __START
Coworker1 --> feature/a
Coworker2 --> feature/b
Coworker3 --> feature/c
Github -.->|dispatch| GithubActions
GithubActions -.-> Analysis
subgraph "Branch"
feature/a
feature/b
feature/c
end
Branch --> Github
subgraph "CI/CD"
GithubActions
Github
Analysis
end
%% __END