Dart의 라이브러리 및 패키지 관리를 어떻게 하면 좋을지에 대한 내용입니다. 모든 컴퓨터 언어는 라이브러리를 사용하는 것이 일반적인 방법입니다. 오늘은 Dart Library를 어떻게 관리 할지 Dart Package를 어떻게 관리할지를 배워 보도록 하겠습니다.
[ Dart&Flutter ] Dart 라이브러리 & 패키지 관리 심화 학습 |
📚 Dart 라이브러리 & 패키지 관리 심화 학습
내 코드도 나누고, 다른 사람 코드도 불러오고!
규모 있는 앱을 만들기 위한 기본 중의 기본
✅ 1. 라이브러리 분할 ( import, export, part )
📘 개념 설명
-
import: 다른 파일(또는 패키지)의 코드를 가져올 때 사용
-
export: 다른 파일에서 쉽게 쓸 수 있도록 내보내기
-
part / part of: 하나의 라이브러리를 여러 파일로 나누는 방식
🏆 실습 예제 1: import로 다른 파일 사용하기
📄 math_utils.dart
int add(int a, int b) => a + b;
📄 main.dart
import 'math_utils.dart';
void main() {
print('3 + 5 = ${add(3, 5)}');
}
✅ 출력:
3 + 5 = 8
🔔 import 덕분에 다른 파일의 함수를 쉽게 사용 가능!
🏆 실습 예제 2: export로 여러 기능 묶기
📄 tools/math.dart
int multiply(int a, int b) => a * b;
📄 tools/util.dart
String greet(String name) => '안녕, $name!';
📄 tools/all.dart
export 'math.dart';
export 'util.dart';
📄 main.dart
import 'tools/all.dart';
void main() {
print(multiply(2, 3));
print(greet('지훈'));
}
✅ 출력:
6
안녕, 지훈!
✅ 2. pubspec.yaml 이해하기
📘 개념 설명
pubspec.yaml 파일은 Dart/Flutter 프로젝트의 설정 파일입니다.
-
앱 이름, 버전, 의존성(사용할 외부 패키지) 등을 정의해요.
name: my_app
version: 1.0.0
dependencies:
http: ^0.14.0
🔔 dependencies 아래에 적힌 패키지는 pub.dev에서 자동으로 다운로드됩니다.
🏆 실습 예제 1: pubspec.yaml 구성 확인하기
name: dart_library_demo
description: A simple demo
dependencies:
collection: ^1.17.0
✅ 설명: collection이라는 외부 라이브러리를 사용하겠다는 뜻이에요.
🏆 실습 예제 2: 의존성 추가 후 코드 사용
import 'package:collection/collection.dart';
void main() {
var list = [1, 2, 3, 4];
print('합계: ${list.sum}');
}
✅ 출력:
합계: 10
pubspec.yaml에서 선언했기 때문에 외부 패키지 함수 사용 가능!
✅ 3. 외부 패키지 사용법 (pub.dev)
📘 개념 설명
-
pub.dev는 Dart와 Flutter에서 사용할 수 있는 공식 패키지 저장소예요.
-
필요한 기능이 있다면 직접 만들지 않고 패키지를 검색해서 가져다 쓰면 됩니다.
🏆 실습 예제 1: pub.dev에서 패키지 찾기
🔗 https://pub.dev
-
예: http 패키지 검색 → 최신 버전 확인 → pubspec.yaml에 복사해서 붙여넣기
dependencies:
http: ^0.14.0
🏆 실습 예제 2: 외부 API 호출하기 (기초 예)
import 'package:http/http.dart' as http;
void main() async {
var res = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/todos/1'));
print(res.body);
}
✅ 출력 (예시):
{"userId":1,"id":1,"title":"delectus aut autem","completed":false}
외부 데이터를 가져올 때도 pub.dev 패키지 덕분에 간단하게 처리 가능!
✅ 4. 의존성 관리 ( dependencies, dev_dependencies )
📘 개념 설명
항목 |
설명 |
---|---|
dependencies |
앱 실행에 필요한 패키지 |
dev_dependencies |
개발 중에만 필요한 도구 (예: 테스트, 코드 생성기) |
🏆 실습 예제 1: dev_dependencies 추가 예시
dev_dependencies:
lints: ^2.1.0
-
이 설정을 통해 코드 스타일 검사를 쉽게 적용할 수 있어요.
🏆 실습 예제 2: dependency_overrides로 버전 고정
dependencies:
http: any
dependency_overrides:
http: 0.14.0
-
여러 패키지가 http의 다른 버전을 원할 때 내가 원하는 버전으로 고정할 수 있어요.
🎓 마무리 요약
기능 |
설명 |
---|---|
import / export |
다른 파일이나 기능 가져오기 / 내보내기 |
pubspec.yaml |
앱 이름, 버전, 사용 패키지 설정 |
pub.dev |
Dart/Flutter 공식 패키지 저장소 |
dependencies |
앱 실행 시 필요한 패키지 |
dev_dependencies |
개발 전용 도구 (테스트, 빌드 등) |
💡 실전 활용 예시
-
코드 파일을 model.dart, utils.dart 등으로 분할
-
외부 API 호출을 위해 http, dio 패키지 사용
-
상태 관리: provider, riverpod 등 활용
-
json 파싱: json_annotation, build_runner 설정
댓글 쓰기