# IDE 및 편집기 설정

Dart 프로그래밍을 시작하기 전에, 효율적인 개발을 위해서는 적절한 개발 환경을 설정하는 것이 중요하다. Dart는 여러 편집기 및 통합 개발 환경(IDE)을 지원하며, 각 환경에서 Dart 코드를 효과적으로 작성하고 디버깅할 수 있는 기능들을 제공한다. 여기서는 Dart 개발에 가장 널리 사용되는 두 가지 도구인 **Visual Studio Code**(VS Code)와 **IntelliJ IDEA**에서의 설정 방법을 중점적으로 설명하겠다.

#### Visual Studio Code에서 Dart 설정

Visual Studio Code는 가볍고 빠른 텍스트 에디터로, 다양한 언어에 대한 확장 기능을 지원한다. Dart와 Flutter 개발에 있어 매우 자주 사용되며, 강력한 플러그인 생태계를 자랑한다.

1. **VS Code 설치**\
   먼저, VS Code를 설치해야 한다. 공식 웹사이트에서 운영 체제에 맞는 설치 파일을 다운로드하고 설치를 완료한다.
2. **Dart SDK 설치**\
   Dart 코드를 실행하기 위해서는 Dart SDK가 필요하다. Dart SDK를 설치하는 방법은 각 운영 체제마다 다르며, Dart 공식 사이트에서 설치 방법을 확인할 수 있다.
3. **Dart 플러그인 설치**\
   VS Code에서 Dart 개발을 지원하는 플러그인을 설치해야 한다. 다음과 같은 단계를 따른다:
   * VS Code의 확장(Extensions) 탭으로 이동한다.
   * 검색창에 "Dart"를 입력하고, 공식 Dart 플러그인을 설치한다.
   * 이 플러그인을 설치하면 기본적인 코드 자동 완성, 분석, 디버깅 기능을 사용할 수 있게 된다.
4. **Flutter 플러그인 설치**\
   Dart는 Flutter와 함께 자주 사용되므로, Flutter 플러그인도 함께 설치하는 것이 좋다. 이를 통해 Flutter 프로젝트를 생성하고 관리할 수 있다.
   * 동일한 확장(Extensions) 탭에서 "Flutter"를 검색하여 Flutter 플러그인을 설치한다.
   * 설치 후, VS Code는 Flutter와 Dart 프로젝트를 쉽게 만들고 관리할 수 있게 된다.
5. **Dart Analyzer 설정**\
   Dart Analyzer는 코드의 오류와 경고를 실시간으로 감지하여 표시해주는 도구이다. 설정을 통해 코드의 품질을 향상시킬 수 있다.
   * 설정(Settings) 메뉴에서 **Dart: Analyzer Diagnostics** 항목을 활성화하여 상세한 진단 정보를 확인할 수 있다.
   * 코드에서 오류나 경고가 발생하면, 해당 위치에 바로 표시되어 빠르게 수정할 수 있다.
6. **코드 포매터 설정**\
   Dart에는 코드 스타일 가이드를 따르는 자동 포매터가 있다. 이를 활성화하면 코드 작성 시 자동으로 포맷팅되어 일관된 코드 스타일을 유지할 수 있다.
   * VS Code의 설정(Settings)에서 **Dart: Enable Formatting** 항목을 활성화하여 자동 포맷팅 기능을 켤 수 있다.
   * 또한, 파일을 저장할 때마다 자동으로 포매팅되도록 **Editor: Format on Save** 옵션을 활성화할 수 있다.

```json
{
  "editor.formatOnSave": true,
  "dart.enableSdkFormatter": true
}
```

7. **디버깅 설정**\
   VS Code에서 Dart 코드를 디버깅하기 위해서는 **런치 설정(launch.json)** 파일을 구성해야 한다. 기본적으로 Dart 프로젝트를 생성하면 자동으로 생성되지만, 수동으로 구성할 수도 있다.
   * 프로젝트 폴더에서 `.vscode` 디렉토리를 만들고, 그 안에 `launch.json` 파일을 추가한다.
   * 파일에 다음과 같은 내용을 추가하여 디버깅을 설정한다.

```json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Dart",
      "type": "dart",
      "request": "launch",
      "program": "${workspaceFolder}/bin/main.dart"
    }
  ]
}
```

#### IntelliJ IDEA에서 Dart 설정

IntelliJ IDEA는 JetBrains에서 제공하는 강력한 통합 개발 환경으로, Dart 및 Flutter 개발에 매우 적합한 기능을 제공하고 있다.

1. **IntelliJ IDEA 설치**\
   JetBrains의 공식 웹사이트에서 IntelliJ IDEA의 설치 파일을 다운로드하고 설치한다. 커뮤니티 에디션(무료) 또는 유료 Ultimate 에디션 중 하나를 선택할 수 있다.
2. **Dart 플러그인 설치**\
   IntelliJ IDEA에서 Dart를 사용하려면 Dart 플러그인을 설치해야 한다.
   * 플러그인을 설치하려면 **File -> Settings** 메뉴로 이동한 후, **Plugins**를 선택한다.
   * 플러그인 마켓플레이스에서 "Dart"를 검색하고 설치한다.
   * 플러그인을 설치한 후, IntelliJ를 재시작한다.
3. **Dart SDK 경로 설정**\
   Dart SDK의 경로를 IntelliJ에 설정하여 Dart 코드를 실행할 수 있도록 해야 한다.
   * **File -> Settings -> Languages & Frameworks -> Dart**로 이동한다.
   * Dart SDK의 경로를 입력하거나 탐색하여 설정한다.
   * SDK 경로를 설정한 후, 프로젝트를 새로고침하면 Dart 프로젝트에서 코드 실행 및 디버깅이 가능한다.
4. **Flutter 플러그인 설치**\
   Dart와 함께 Flutter 개발도 할 수 있도록 Flutter 플러그인을 설치할 수 있다.
   * **Plugins** 메뉴에서 "Flutter" 플러그인을 검색하고 설치한다.
   * Flutter SDK 경로도 설정하여 Flutter 프로젝트를 쉽게 생성하고 관리할 수 있다.
5. **디버깅 및 실행**\
   IntelliJ에서는 프로젝트 내에서 Dart 또는 Flutter 코드를 쉽게 디버깅할 수 있는 기능을 제공한다.
   * **Run -> Edit Configurations** 메뉴로 이동하여 실행 설정을 구성할 수 있다.
   * 새로운 Dart 또는 Flutter 설정을 추가하고, 실행할 파일을 지정하면 된다.

#### IntelliJ IDEA에서의 코드 포매팅

Dart 코드의 일관된 스타일을 유지하려면 IntelliJ IDEA에서도 자동 코드 포매팅 설정을 해야 한다. Dart의 코드 스타일은 **Dart Formatting Tool**을 통해 적용되며, 이를 IntelliJ에서 사용할 수 있다.

1. **자동 포매터 설정**\
   IntelliJ에서는 코드를 자동으로 포맷하는 기능을 제공한다. 이를 활성화하면 코드 작성 중이나 파일을 저장할 때 자동으로 Dart 스타일에 맞게 포매팅된다.
   * **File -> Settings -> Editor -> Code Style -> Dart** 메뉴로 이동한다.
   * **DartFormatter** 옵션을 활성화하여 자동으로 포맷팅되도록 설정한다.
2. **파일 저장 시 포매팅**\
   파일을 저장할 때 자동으로 포맷팅되도록 설정하는 것이 매우 편리한다. 이는 코드가 항상 일관된 스타일을 유지하도록 보장한다.
   * **File -> Settings -> Tools -> Actions on Save** 메뉴로 이동한다.
   * "Reformat code" 옵션을 체크하여 파일 저장 시 자동 포맷팅을 활성화한다.

#### 코드 검사 및 분석

IntelliJ IDEA는 Dart 코드에 대해 실시간으로 오류와 경고를 분석하고 표시하는 강력한 검사 도구를 제공한다. 이를 통해 코드 품질을 높이고 잠재적인 문제를 빠르게 해결할 수 있다.

1. **Dart Analyzer 활성화**\
   IntelliJ IDEA는 기본적으로 Dart Analyzer를 지원하지만, 이를 수동으로 설정하거나 구체적인 옵션을 조정할 수 있다.
   * **File -> Settings -> Languages & Frameworks -> Dart**로 이동하여, Dart Analyzer 옵션을 활성화한다.
   * Dart Analyzer는 코드 작성 중 실시간으로 오류와 경고를 표시하며, 이를 통해 코드의 문제를 즉시 확인할 수 있다.
2. **Lint 설정**\
   Lint는 코드의 스타일 규칙을 검사하고, 일관된 스타일을 유지하는 데 도움을 주는 도구이다. Dart에서는 기본적으로 **analysis\_options.yaml** 파일을 통해 Lint 규칙을 설정할 수 있다.
   * 프로젝트 루트에 **analysis\_options.yaml** 파일을 생성한다.
   * 파일에 Lint 규칙을 설정하여 코드 스타일을 관리한다.

```yaml
linter:
  rules:
    - prefer_final_locals
    - avoid_print
    - prefer_const_constructors
```

3. **코드 검토 및 최적화**\
   IntelliJ는 코드의 성능 및 메모리 최적화를 도울 수 있는 다양한 코드 검토 기능을 제공한다. 이를 통해 더 나은 성능의 코드를 작성할 수 있다.
   * 코드 최적화 제안 사항을 **Analyze -> Inspect Code** 기능을 통해 확인할 수 있다.
   * 코드 분석 결과에서 개선할 수 있는 부분을 찾아 자동으로 수정하거나 수동으로 최적화할 수 있다.

#### 프로젝트 템플릿 및 파일 생성

IntelliJ IDEA는 Dart 프로젝트를 더욱 쉽게 관리하기 위해 다양한 템플릿을 제공한다. 이를 통해 새로운 프로젝트나 파일을 생성할 때 반복적인 설정 작업을 줄일 수 있다.

1. **Dart 프로젝트 생성**\
   IntelliJ IDEA에서는 Dart 전용 프로젝트 템플릿을 제공하며, 이를 사용하여 새로운 프로젝트를 빠르게 생성할 수 있다.
   * **File -> New -> Project** 메뉴로 이동한 후, **Dart**를 선택하여 새로운 프로젝트를 생성한다.
   * 프로젝트 설정 중, **Dart SDK** 경로를 설정하고 템플릿을 선택하여 기본 파일 구조를 생성할 수 있다.
2. **파일 템플릿 사용**\
   Dart 파일을 생성할 때도 템플릿을 사용할 수 있다. 이를 통해 미리 정의된 코드 구조를 기반으로 파일을 생성할 수 있다.

   * **File -> New -> Dart File**을 선택하여 새로운 Dart 파일을 생성한다.
   * 기본 템플릿 외에도 사용자가 직접 파일 템플릿을 추가하거나 수정할 수 있다.

   템플릿을 통해 생성되는 Dart 파일은 기본적인 코드 구조를 포함하며, 이를 바탕으로 필요한 코드를 작성할 수 있다.

#### IntelliJ의 Flutter 프로젝트 설정

Dart를 사용할 때 Flutter와 함께 사용하는 경우가 많다. Flutter 프로젝트 설정을 IntelliJ에서 간단하게 구성할 수 있으며, 이를 통해 모바일 앱 개발을 빠르게 시작할 수 있다.

1. **Flutter SDK 설치 및 경로 설정**\
   Flutter SDK는 Dart와 함께 사용하는 모바일 앱 개발 도구이다. Flutter SDK를 설치하고 IntelliJ에서 경로를 설정하면 Flutter 프로젝트를 쉽게 관리할 수 있다.
   * **File -> Settings -> Languages & Frameworks -> Flutter** 메뉴로 이동하여 Flutter SDK 경로를 설정한다.
   * Flutter 프로젝트를 새로 생성하면 자동으로 Flutter SDK가 인식된다.
2. **Flutter 플러그인 설치**\
   Flutter 플러그인을 설치하여 Flutter 프로젝트를 관리하고 실행할 수 있다.
   * **Plugins** 메뉴에서 "Flutter" 플러그인을 검색하여 설치한다.
   * Flutter 프로젝트 템플릿을 사용하여 모바일 UI 구성 및 앱을 작성할 수 있다.
3. **Flutter 프로젝트 템플릿**\
   IntelliJ는 기본적인 Flutter 프로젝트 템플릿을 제공한다. 이를 통해 새로운 Flutter 프로젝트를 쉽게 시작할 수 있다.
   * **File -> New -> Project** 메뉴에서 Flutter 템플릿을 선택하여 새로운 프로젝트를 생성한다.
   * Flutter 프로젝트에는 기본적인 앱 구조가 포함되며, 이를 기반으로 앱 개발을 시작할 수 있다.

#### 협업 및 버전 관리

Dart 프로젝트는 팀에서 협업할 때 버전 관리 시스템과 함께 사용하는 것이 매우 중요하다. IntelliJ는 Git, SVN, Mercurial 등 다양한 버전 관리 시스템을 지원하며, 이를 통해 협업과 코드 버전을 쉽게 관리할 수 있다.

1. **Git 설정**\
   IntelliJ는 Git을 기본적으로 지원하며, 이를 통해 프로젝트의 변경 사항을 쉽게 추적하고 관리할 수 있다.
   * **File -> Settings -> Version Control -> Git** 메뉴로 이동하여 Git 설정을 구성한다.
   * 로컬 저장소를 연결하거나 원격 저장소(GitHub, GitLab 등)에 연결하여 협업을 진행할 수 있다.
2. **커밋 및 푸시**\
   코드 변경 사항을 커밋하고 원격 저장소로 푸시하여 팀과의 협업을 원활히 할 수 있다.
   * IntelliJ의 **VCS** 메뉴에서 변경 사항을 확인하고, 커밋 메시지를 작성하여 변경 사항을 기록한다.
   * 원격 저장소로 변경 사항을 푸시하여 팀원들과 공유할 수 있다.
