코드 분석 종류

어느 시점에 분석을 진행하는가?

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