TIL

Flutter에서 패키지와 플러그인은 무엇인가요?

kimw746 2025. 1. 9. 03:56

Flutter로 앱을 개발하다 보면 패키지플러그인이라는 용어를 자주 접하게 됩니다. 이 둘은 Flutter 개발을 도와주는 도구들이지만, 사용 목적과 역할이 조금씩 다르다고 하는데요.

오늘은 이 패키지플러그인에 대해서 알아보겠습니다.

 

패키지 (Package)

  • 정의
    Flutter에서 패키지는 Dart 언어로 작성된 코드 묶음입니다. 특정 기능을 쉽게 구현할 수 있도록 미리 작성된 코드나 유틸리티를 제공합니다.

 

  • 특징
    • Dart 코드로만 이루어져 있습니다.
    • 네이티브 플랫폼(Android, iOS)의 기능을 사용하지 않습니다.
    • Flutter의 위젯이나 데이터 처리 로직, 유틸리티 함수 등을 제공하는 경우가 많습니다.
  • 예시
    • provider: 상태 관리를 도와주는 패키지.
    • http: HTTP 요청을 쉽게 처리할 수 있도록 도와주는 패키지.
  • 언제 사용하나요?
    앱 개발 중 플랫폼에 독립적인 기능을 구현하고 싶을 때 사용합니다. 예를 들어, API 호출, 데이터 변환, 상태 관리 등이 있습니다.

플러그인 (Plugin)

  • 정의
    Flutter에서 플러그인은 Dart 코드와 네이티브 플랫폼(Android, iOS)의 코드가 결합된 기능을 제공합니다. 네이티브 플랫폼의 기능을 Flutter 앱에서 사용할 수 있도록 해줍니다.
  • 특징
    • Dart 코드뿐만 아니라 Kotlin/Java(Android), **Swift/Objective-C(iOS)**와 같은 네이티브 코드도 포함되어 있습니다.
    • Flutter와 플랫폼 간의 통신(Platform Channels)을 통해 네이티브 기능을 호출합니다.
  • 예시
  • 언제 사용하나요?
    앱 개발 중 기기와 직접 상호작용하는 기능(예: 카메라, 위치 정보, 푸시 알림)을 구현해야 할 때 사용합니다.

비교

항목 패키지(Package) 플러그인(Plugin)
코드 구성 Dart 코드만 포함 Dart 코드 + 네이티브 코드 포함
네이티브 기능 접근 불가능 가능
사용 예시 상태 관리, API 호출, 데이터 변환 카메라, GPS, 푸시 알림 등 기기 기능 사용
복잡도 낮음 다소 높음

어떻게 사용하나요?

Flutter 프로젝트에서 패키지나 플러그인을 사용하려면 pub.dev에서 원하는 것을 찾아 pubspec.yaml 파일에 추가합니다.

dependencies:
  # 패키지 예시
  provider: ^6.1.3
  
  # 플러그인 예시
  google_sign_in: ^6.2.0

그다음, flutter pub get 명령어를 실행해 의존성을 설치한 뒤 코드에서 임포트하여 사용합니다.


결론

  • 패키지는 네이티브 코드를 사용하지 않고, Dart로 구현된 기능을 제공합니다.
  • 플러그인은 네이티브 기능과 연동하여 플랫폼 의존적인 작업을 처리합니다.

Flutter 앱을 개발할 때, 프로젝트의 요구사항에 따라 패키지와 플러그인을 적절히 선택하여 활용하면 개발 속도를 크게 높일 수 있습니다.