- 패키지는 재사용 가능한 코드, 기능 또는 라이브러리의 모음을 말합니다
- 패키지는 특정 기능을 제공하는 코드의 모음이며, 재사용 가능한 형태로 패키징되어 다른 프로젝트에서도 사용할 수 있습니다.
- 플러터 애플리케이션에서 필요한 기능을 패키지를 통해 추가하고, 해당 기능을 사용하기 위한 코드를 직접 작성해야 합니다.
- Dart언어로만 구성되어 있습니다.
예) http, shared_preferences, provider 등
- 코드의 모음으로, 특정 언어나 프레임워크에서 사용할 수 있는 함수, 클래스, 메서드 등이 포함됩니다.
- 플러터 애플리케이션 내에서 사용되는 코드의 모듈화와 재사용성을 높이기 위해 작성됩니다.
- 주로 개발자가 직접 작성한 코드의 모음이며, 해당 프로젝트에서만 사용됩니다.
예) Util 라이브러리, Custom Widget 라이브러리, import하여 사용하는 클래스 등
- 플러그인은 특정 플랫폼이나 외부 서비스와의 상호 작용을 위해 사용됩니다.
- 주로 네이티브 코드와의 통합을 통해 플러터 애플리케이션에 추가적인 기능을 제공합니다.
예) camera, geolocator, firebase_auth 등
두 용어의 주요 차이점은 "재사용 가능성"에 있습니다. 라이브러리는 해당 프로젝트 내에서만 사용되는 코드 모듈을 의미하고, 패키지는 외부에서 다른 프로젝트에서도 사용할 수 있는 코드의 모음을 의미합니다. 따라서 패키지는 라이브러리보다 더 넓은 의미를 갖고 있으며,라이브러리도 패키지 내에 포함될 수 있습니다.
패키지는 플러터 애플리케이션에 필요한 라이브러리나 유틸리티를 제공하는 것이고, 플러그인은 특정 플랫폼이나 외부 서비스와의 상호 작용을 위해 사용됩니다. 패키지는 플러터 코드로 직접 사용되는 반면, 플러그인은 네이티브 코드와의 상호 작용을 통해 추가적인 기능을 제공합니다.