Dart에서 import 사용법 및 개요
Dart에서 import는 외부 패키지나 다른 파일의 코드를 가져와 사용할 때 사용됩니다.
import를 활용하면 코드 재사용성을 높이고, 모듈화된 구조를 만들 수 있습니다.
1. import 기본 문법
import '파일_경로.dart'; // 로컬 파일 import
import '패키지명/라이브러리.dart'; // 패키지 import
import 'dart:core'; // Dart 기본 라이브러리 import (생략 가능)
2. Dart import의 종류
① 로컬 파일 import
같은 프로젝트 내 다른 파일을 불러올 때 사용합니다.
import 'utils.dart'; // 같은 프로젝트 내 utils.dart 파일 import
import 'src/helpers.dart'; // src 폴더 안 helpers.dart 파일 import
📌 예제
utils.dart 파일:
void greet() {
print('안녕하세요!');
}
import 'utils.dart';
void main() {
greet(); // utils.dart의 함수 호출
}
② Dart 기본 라이브러리 import
Dart에서 제공하는 기본 라이브러리는 dart: 접두사를 사용하여 import 합니다.
라이브러리설명
| dart:core | 문자열, 숫자, 리스트 등의 기본 기능 (기본적으로 포함됨) |
| dart:math | 수학 관련 기능 (랜덤, 삼각 함수 등) |
| dart:io | 파일, 네트워크, 프로세스 관련 기능 (웹 환경에서는 사용 불가) |
| dart:convert | JSON, UTF-8 인코딩 관련 기능 |
| dart:async | 비동기 처리 및 Future, Stream 지원 |
📌 예제 (dart:math)
import 'dart:math';
void main() {
var random = Random();
print(random.nextInt(100)); // 0~99 사이의 랜덤 숫자
}
③ 외부 패키지 import (pub.dev)
Dart 또는 Flutter 프로젝트에서 외부 라이브러리를 사용하려면 pub.dev 패키지 관리 시스템을 이용해야 합니다.
📌 설치 및 사용 예제
- pubspec.yaml 파일에 패키지 추가
import 'dart:math';
void main() {
var random = Random();
print(random.nextInt(100)); // 0~99 사이의 랜덤 숫자
}
import 'package:http/http.dart' as http;
void main() async {
var response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/todos/1'));
print(response.body);
}
④ 조건부 import (웹과 네이티브 분기처리)
웹과 네이티브 환경에서 다른 파일을 로드해야 할 때 사용합니다.
📌 예제
import 'dart:io' if (dart.library.html) 'dart:html';
void main() {
print('환경에 따라 다른 라이브러리가 import됩니다.');
}
위 코드는 웹 환경에서는 dart:html, 네이티브 환경에서는 dart:io를 사용합니다.
3. import 옵션
✅ as 키워드 (별칭 지정)
as 키워드를 사용하면 import한 라이브러리에 별칭을 지정할 수 있습니다.
import 'package:my_library/utils.dart' as utils;
void main() {
utils.printMessage();
}
✅ show 키워드 (특정 기능만 가져오기)
라이브러리에서 특정 함수 또는 클래스만 가져올 때 사용합니다.
import 'package:math_library/math.dart' show add, subtract;
void main() {
print(add(3, 5)); // `add` 함수 사용 가능
// print(multiply(3, 5)); // 사용 불가
}
✅ hide 키워드 (특정 기능 제외)
특정 기능을 제외한 나머지를 가져올 때 사용합니다.
import 'package:math_library/math.dart' hide subtract;
void main() {
print(add(3, 5)); // 사용 가능
// print(subtract(3, 5)); // 사용 불가
}
✅ deferred 키워드 (지연 로드)
라이브러리를 미리 로드하지 않고, 필요할 때 로드하는 방식입니다.
보통 앱 시작 시 로딩 시간을 줄이기 위해 사용됩니다.
📌 예제
import 'package:large_library/large.dart' deferred as large;
void main() async {
await large.loadLibrary(); // 필요할 때만 라이브러리를 로드
large.someFunction();
}
4. 정리
import 방법설명
| import '파일.dart'; | 같은 프로젝트 내 파일 가져오기 |
| import 'dart:라이브러리'; | Dart 내장 라이브러리 가져오기 |
| import 'package:패키지명/파일.dart'; | 외부 패키지 가져오기 |
| import '파일.dart' as 별칭; | 별칭 지정하여 import |
| import '파일.dart' show 함수명; | 특정 기능만 import |
| import '파일.dart' hide 함수명; | 특정 기능 제외하고 import |
| import '파일.dart' deferred as 별칭; | 지연 로드 import |
📌 Dart에서 import는 코드의 유지보수성을 높이고 모듈화를 돕는 중요한 기능입니다.
특히 Flutter 개발에서는 필수적으로 사용되므로 익숙해지는 것이 중요합니다. 🚀
'Programming > Dart' 카테고리의 다른 글
| Dart Interface (0) | 2025.03.27 |
|---|---|
| Dart Override (0) | 2025.03.27 |
| Dart Inheritance (1) | 2025.03.25 |
| Dart 파일 구조 (0) | 2025.03.25 |
| Dart 소개 (0) | 2025.03.25 |