흔히 쓰는 패키지(Commonly used packages)

흔히 쓰는 패키지(Commonly used packages)

Dart 개발자라면 꼭 알아두면 좋은, 가장 인기 있고 유용한 패키지들을 소개해 드릴게요. 어떤 상황에서 어떤 패키지를 쓰면 좋은지 감이 안 잡힐 때, 이 페이지를 시작점으로 삼으면 좋아요.

출처: Commonly used packages

본문

이 페이지는 Dart 개발자들이 배포한 가장 인기 있고 유용한 패키지(packages) 몇 가지를 소개해요. 더 많은 패키지를 찾고 싶다면—핵심 라이브러리(core libraries)도 검색할 수 있어요—pub.dev 사이트(pub.dev site.)를 사용하세요.

흔히 쓰는 패키지는 세 그룹으로 나뉘어요.

범용 패키지(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 파일, 표준 스트림, 프로세스를 다루기 쉽게 하는 ansiio라는 두 라이브러리를 담고 있어요. 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) 또는 이슈 보고하기.

더 알아보기