흔히 쓰는 패키지(Commonly used packages)
흔히 쓰는 패키지(Commonly used packages)
Dart 개발자라면 꼭 알아두면 좋은, 가장 인기 있고 유용한 패키지들을 소개해 드릴게요. 어떤 상황에서 어떤 패키지를 쓰면 좋은지 감이 안 잡힐 때, 이 페이지를 시작점으로 삼으면 좋아요.
본문
이 페이지는 Dart 개발자들이 배포한 가장 인기 있고 유용한 패키지(packages) 몇 가지를 소개해요. 더 많은 패키지를 찾고 싶다면—핵심 라이브러리(core libraries)도 검색할 수 있어요—pub.dev 사이트(pub.dev site.)를 사용하세요.
흔히 쓰는 패키지는 세 그룹으로 나뉘어요.
- 범용 패키지(General-purpose packages)
- Dart 핵심 라이브러리를 확장하는 패키지(Packages that expand on Dart core libraries)
- 특수 목적 패키지(Specialized packages)
범용 패키지(General-purpose packages)
이 패키지들은 다양한 프로젝트에서 사용할 수 있어요.
| 패키지 | 설명 | 흔히 쓰는 API |
|---|---|---|
| archive | 다양한 아카이브·압축 포맷을 인코딩하고 디코딩해요. | Archive, ArchiveFile, TarEncoder, TarDecoder, ZipEncoder, ZipDecoder |
| characters | 사용자가 인지하는 문자(유니코드 문자소 클러스터) 단위로 문자열을 다뤄요. | String.characters, Characters, CharacterRange |
| cronet_http | package:http와 동일한 인터페이스로 Android Cronet HTTP 클라이언트에 접근할 수 있게 해줘요. |
|
| cupertino_http | package:http와 동일한 인터페이스로 Apple의 Foundation URL Loading System에 접근할 수 있게 해줘요. |
|
| genkit | 풀스택, AI 기반 애플리케이션과 에이전틱(agentic) 워크플로우를 만들어요. | Genkit, googleAI, anthropic |
| http | HTTP 리소스를 소비하는 것을 단순화하는 고수준 함수와 클래스 모음을 제공해요. | delete(), get(), post(), read() |
| intl | 복수형·성별 지원, 날짜와 숫자 포맷·파싱, 양방향 텍스트를 지원하는 국제화·지역화 기능을 제공해요. | Bidi, DateFormat, MicroMoney, TextDirection |
| json_serializable | JSON 조작 코드를 생성해요. 자세한 내용은 JSON 지원을 참고하세요. | @JsonSerializable |
| logging | 애플리케이션에 메시지 로깅을 추가해요. | LoggerHandler, Level, LogRecord |
| mockito | 테스트에서 객체를 모킹(mock)해요. 의존성 주입을 위한 테스트를 작성할 때 도움이 되죠. test 패키지와 함께 사용하세요. | Answering, Expectation, Verification |
| path | 다양한 종류의 경로를 다뤄요. 자세한 내용은 Unboxing Packages: path.를 참고하세요. | absolute(), basename(), extension(), join(), normalize(), relative(), split() |
| shelf | Dart용 웹 서버 미들웨어를 제공해요. Shelf를 사용하면 웹 서버와 웹 서버의 일부를 쉽게 만들고 조합할 수 있어요. | Cascade, Pipeline, Request, Response, Server |
| stack_trace | Dart가 만들어내는 스택 트레이스를 파싱하고, 검사하고, 조작해요. 또한 스택 트레이스를 기본 StackTrace 구현보다 더 읽기 쉬운 형태로 변환해 주죠. 자세한 내용은 Unboxing Packages: stack_trace.를 참고하세요. |
Trace.current(), Trace.format(), Trace.from() |
| test | Dart에서 테스트를 작성하고 실행하는 방법을 표준화해요. | expect(), group(), test() |
| yaml | YAML 마크업을 파싱해요. | loadYaml(), loadYamlStream() |
Dart 핵심 라이브러리를 확장하는 패키지
아래 패키지들은 각각 핵심 라이브러리(core library)를 기반으로 하여 기능을 추가하고 빠진 부분을 채워줘요.
| 패키지 | 설명 | 흔히 쓰는 API |
|---|---|---|
| async | dart:async를 확장해 비동기 계산을 다룰 때 유용한 유틸리티 클래스를 추가해요. 자세한 내용은 Unboxing Packages: async part 1, part 2, part 3를 참고하세요. | AsyncMemoizer, CancelableOperation, FutureGroup, LazyStream, Result, StreamCompleter, StreamGroup, StreamSplitter |
| collection | dart:collection을 확장해 컬렉션 작업을 더 쉽게 만드는 유틸리티 함수와 클래스를 추가해요. 자세한 내용은 Unboxing Packages: collection을 참고하세요. | Equality, CanonicalizedMap, MapKeySet, MapValueSet, PriorityQueue, QueueList |
| convert | dart:convert를 확장해 서로 다른 데이터 표현을 변환하는 인코더와 디코더를 추가해요. 데이터 표현 중 하나는 퍼센트 인코딩(percent encoding) 이고, URL 인코딩(URL encoding) 이라고도 불러요. | HexDecoder, PercentDecoder |
| io | 파일, 표준 스트림, 프로세스를 다루기 쉽게 하는 ansi와 io라는 두 라이브러리를 담고 있어요. ansi 라이브러리로 터미널 출력을 사용자 정의하고, io 라이브러리는 프로세스, stdin, 파일 복제를 다루는 API를 제공해요. |
copyPath(), isExecutable(), ExitCode, ProcessManager, sharedStdIn |
특수 목적 패키지
Flutter·웹 개발용과 같은 특수 목적 패키지를 찾으려면, 아래 섹션을 참고하세요.
Flutter 패키지
Flutter 패키지에 대해 자세히 배우려면, Flutter 문서의 Using packages(Using packages)를 참고하거나, pub.dev 사이트에서 Flutter 패키지(Flutter packages)를 검색해 보세요.
웹 패키지
웹 패키지에 대해 자세히 배우려면, Web libraries and packages(Web libraries and packages)를 참고하거나, pub.dev 사이트에서 웹 패키지(web packages)를 검색해 보세요.
명령줄·서버 패키지
CLI나 서버 패키지에 대해 자세히 배우려면, Command-line and server libraries and packages(Command-line and server libraries and packages)를 참고하세요. 또는 pub.dev 사이트에서 다른 패키지를 검색해 보세요(search for other packages.).
AI 패키지
생성형 AI 애플리케이션과 에이전틱 워크플로우를 구축하는 방법에 대해 자세히 배우려면, Genkit Dart(Genkit Dart)를 참고하거나, pub.dev 사이트에서 AI 패키지(AI packages)를 검색해 보세요.
별도로 명시하지 않는 한, 이 사이트의 문서는 Dart 3.13.3을 기준으로 해요. 페이지 마지막 업데이트: 2026-09-14. 소스 보기(View source) 또는 이슈 보고하기.
더 알아보기
- pub.dev — 더 많은 패키지를 검색해 보세요.
- Dart 핵심 라이브러리 — 핵심 라이브러리에 대해 배워 보세요.
- Genkit Dart — 생성형 AI 앱을 만드는 방법을 살펴보세요.