본문 바로가기
Programming/Dart

Dart Import

by #root 2025. 3. 25.

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 패키지 관리 시스템을 이용해야 합니다.

📌 설치 및 사용 예제

  1. 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