플러터 pubspec.yaml 작성하기

소요 시간: 3분

pubspec.yaml은 프로젝트의 의존성 관리, 메타데이터 설정, 자산 추가 등을 위한 핵심 파일이다. 프로젝트의 기본 구조를 잡고 다양한 기능을 추가하는 데 필수적이기 때문에, 어떻게 작성하고 관리하는지 깊이 이해하는 것이 중요하다.


pubspec.yaml 파일의 기본 구조 파악

우선, pubspec.yaml 파일의 기본 구조를 먼저 살펴봤다. 이 파일은 YAML 형식으로 작성되며 여러 주요 섹션이 존재한다. 각 섹션은 프로젝트에서 특정 역할을 수행하는데, 이를 직접 작성해보며 파악해봤다.

name: flutter_project_name  # 프로젝트 이름
description: A new Flutter project.  # 프로젝트 설명
version: 1.0.0+1  # 앱의 버전

위 코드를 보면, 가장 먼저 프로젝트의 이름과 설명, 그리고 버전 정보가 포함된다. 프로젝트의 이름(name)설명(description)은 협업할 때 매우 유용할 것 같았다. 또한, 버전 정보(version)는 배포 및 업데이트 관리에 필수적이다.


환경 설정: environment 섹션

다음으로 environment 섹션을 작성해봤다. 이 섹션에서는 프로젝트에서 사용할 Dart SDK와 Flutter SDK의 버전 범위를 설정한다. Dart와 Flutter의 호환성을 보장하는 것이 중요하기 때문에, 이 설정은 프로젝트를 문제없이 실행하는 데 필수적이다.

environment:
  sdk: ">=2.18.0 <3.0.0"  # Dart SDK 버전
  flutter: ">=3.0.0"  # Flutter 버전

이렇게 SDK의 버전을 명확히 지정해주면, 프로젝트에서 해당 범위 내에서만 SDK를 사용하게 된다. 여러 Flutter 프로젝트를 진행하다 보면 각 프로젝트에서 사용해야 하는 SDK 버전이 다를 수 있기 때문에 이 설정이 매우 중요하다.


의존성 관리: dependencies 섹션

Flutter 프로젝트에서는 다양한 외부 패키지를 사용할 수 있다. dependencies 섹션에서는 프로젝트에서 필요한 패키지를 추가하고 관리할 수 있다. Flutter SDK는 기본적으로 필요하고, 그 외에 추가적인 패키지를 이곳에 나열한다. 예를 들어, HTTP 요청을 처리하기 위해 http 패키지를 추가해봤다.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.15.0  # HTTP 패키지 추가

패키지를 추가한 후에는 터미널에서 flutter pub get 명령어를 실행해 패키지를 다운로드해야 한다. 이를 통해 프로젝트에서 필요한 라이브러리가 자동으로 설정된다. 실제로 이 과정을 해보니, 패키지를 추가하고 사용하는 것이 매우 간편했다.


자산 추가: assets 섹션

Flutter 프로젝트에서 자산 관리도 중요한데, 이미지나 JSON 파일 같은 자산은 assets 섹션에서 정의한다. 이미지 경로를 지정하고 앱 내에서 사용할 수 있도록 설정해봤다.

flutter:
  assets:
    - assets/images/logo.png  # 단일 이미지 파일
    - assets/images/  # 폴더 전체를 포함

이미지를 한 번에 여러 개 추가해야 할 때는 폴더 전체를 지정하는 방식이 편리하다는 것을 알게 되었다. 이렇게 하면 폴더 내 모든 이미지가 자동으로 포함된다.



커스텀 폰트 사용: fonts 섹션

마지막으로, 앱에 커스텀 폰트를 적용하는 방법도 익혔다. fonts 섹션에서 폰트 파일 경로를 지정하고, 폰트 굵기 등 세부 설정까지 할 수 있다.

flutter:
  fonts:
    - family: OpenSans
      fonts:
        - asset: fonts/OpenSans-Regular.ttf
        - asset: fonts/OpenSans-Bold.ttf
          weight: 700  # 폰트 굵기

이 설정을 통해 프로젝트에서 원하는 폰트를 자유롭게 사용할 수 있었고, 앱의 디자인에 개성을 더할 수 있었다.


오늘 작업한 pubspec.yaml 파일 설정을 통해 Flutter 프로젝트의 구조와 핵심 설정을 이해할 수 있었다. 특히 의존성 관리나 자산 추가, 폰트 설정 등이 프로젝트에서 매우 중요한 역할을 한다는 것을 실감했다. 다음에는 Flutter의 다른 기능들을 더 깊이 파고들어봐야겠다. 이 파일을 잘 관리하면 이후 프로젝트에서도 훨씬 수월하게 개발을 진행할 수 있을 것 같다!


플러터 리스트