analysis_options.yaml 파일과 주요 구성 요소

`analysis_options.yaml` 파일은 Dart와 Flutter 프로젝트에서 코드 분석 도구의 동작을 구성하기 위해 사용되는 파일로, 이 파일을 사용하여 코드 스타일, 규칙, 린트(lint) 옵션 등을 지정하여 프로젝트의 코드 품질과 일관성을 유지하도록 도와준다.


    analysis_options.yaml 파일과 주요 구성 요소

    analysis_options.yaml 주요 구성 요소

    1. analyzer:

    • exclude: 분석에서 제외할 경로나 파일을 지정한다. 이는 외부로부터 가져온 코드나 자동 생성된 코드 등 분석 대상에서 제외하고 싶은 경우에 유용하다.
    • errors: 특정 규칙에 대한 오류 수준을 재정의할 수 있다. 경고를 오류로 업그레이드하거나 반대로 오류를 경고로 다운그레이드 할 수 있다.
      ex. `{ "invalid_assignment": "error" }`로 설정하면, 유효하지 않은 할당에 대한 경고를 오류로 취급한다.
    • strong-mode: Dart의 강력한 타입 검사 모드에 대한 세부 설정이다. 예를 들어 암시적 다운캐스트를 허용할지 여부, 암시적 동적 타입을 허용할지 여부 등의 옵션을 설정할 수 있다.

    2. linter:

    • rules: 사용하려는 린트 규칙의 목록을 나열한다. 


    analysis_options.yaml 추가 세부사항

    • analyzer:
          language:
              version: 사용할 Dart 언어의 버전을 지정한다. 이를 통해 프로젝트가 특정 Dart 언어 버전에만 의존하는지 확인할 수 있다.
              plugins: 코드 분석을 위해 사용할 추가 플러그인을 지정할 수 있다.
    • include: 다른 `analysis_options.yaml` 파일을 현재 파일에 포함시킬 수 있다. 이를 통해 여러 프로젝트나 패키지 간에 일관된 분석 옵션을 공유할 수 있다.
    • flutter: Flutter 프로젝트에만 특화된 분석 옵션을 설정할 수 있다.

    analysis_options.yaml 샘플코드

    analyzer:
      exclude:
        - 'path/to/excluded/files/**'
        - '**/*.g.dart' # 자동 생성된 코드 제외
      errors:
        unused_local_variable: warning # 사용하지 않는 로컬 변수를 경고로 취급
      strong-mode:
        implicit-casts: false # 암시적 캐스팅 금지
        implicit-dynamic: false # 암시적 동적 타입 금지
    
    linter:
      rules:
        - avoid_empty_else # 불필요한 else문 피하기
        - prefer_const_constructors # const 생성자 선호하기 
        - prefer_final_fields # final 필드 선호하기
    

    `analysis_options.yaml` 파일을 사용하면 Dart 및 Flutter 코드의 품질과 일관성을 향상시킬 수 있으며, 팀이나 조직의 코딩 규칙을 표준화하는 데 도움을 준다.
    Previous Post Next Post