Dart 3.6 발표
Dart 3.6 발표 (Announcing Dart 3.6)
Dart 3.6에 오신 걸 환영해요! 오늘은 Flutter 3.27과 함께하는 올해 마지막 릴리스예요. 언어에 새로운 기능이 하나 추가됐는데, 바로 **숫자 구분자(digit separators)**예요. pub 생태계에도 새 기능이 몇 가지 있는데, pub 다운로드 수와 많은 사람들이 기다려 온 pub workspaces가 그 주인공이에요.
본문
Pub workspaces
이제 pub는 모놀레포, 즉 workspace 안의 패키지들 간 **공유 해석(resolution)**을 지원해요. workspace는 함께 개발되고, 해석되고, 출시되는 밀접하게 연관된 패키지들의 그룹이에요.
pub workspaces 기능은 모놀레포 안의 패키지들이 일관된 의존성 집합을 공유하도록 보장해요. 그래서 그룹화된 패키지 사이의 의존성 충돌을, 패키지를 쓰기 시작할 때 혼란을 겪기보다는, 발생하는 즉시 해결하게 강제해요.
Flutter analyzer는 이제 pub workspace의 모든 패키지를 하나의 분석 컨텍스트로 처리해요. 예전에는 패키지마다 별도 컨텍스트를 두는 방식이었죠. 대규모 저장소에서는 이 덕분에 Dart 언어 서버가 소비하는 메모리가 크게 줄어들어서 IDE 성능이 좋아져요.
pub workspace를 정의하려면 루트 pubspec.yaml 파일에 workspace 필드를 추가하고 관련 패키지들을 나열하면 돼요. 아래 예시처럼요.
name: _
publish_to: none
environment:
sdk: ^3.6.0
workspace:
- packages/helper
- packages/client_package
- packages/server_package
그다음 저장소 어디에서든 pub get을 실행하면 매핑과 나머지 파일 관리를 완료해요.
pub workspaces를 쓰려면, 모든 workspace 패키지(의존성은 제외)의 SDK 버전 제약이 ^3.6.0 이상이어야 해요.
자세한 지침과 경계 사례에 대한 완전한 설명이 필요하면 Pub workspaces (monorepo support) 페이지를 확인하세요.
Pub 다운로드 수
pub.dev에서 더 정확한 지표를 원한다는 요청에 응답해서, 이제 다운로드 수가 나왔어요! 다운로드 수는 개별 패키지 페이지의 예전 "인기 점수(popularity score)"를 대체해요. 새 지표와 함께, 각 페이지에는 시간에 따른 주간 다운로드를 보여주는 스파크라인 차트도 있어요.
다운로드 수에 대한 더 자세한 내용은 pub.dev scoring 문서에서 확인할 수 있어요.
숫자 구분자
Dart 언어는 이제 밑줄(_)을 숫자 구분자로 허용해요. 긴 숫자 리터럴을 더 읽기 쉽게 만들어 주죠. 연속된 밑줄 여러 개는 더 상위 수준의 그룹을 나타내요. Dart에서 유효한 숫자 구분자 사용 예시는 다음과 같아요.
1__000_000__000_000__000_000
0x4000_0000_0000_0000
0.000_000_000_01
0x00_14_22_01_23_45
기억하세요. 숫자 구분자는 숫자 사이에서만 유효해서, 100_, 0._000_1, 1.2e_3 같은 리터럴은 허용되지 않아요. 또 숫자 구분자를 일관되게 쓰는 것도 중요해요. 각 수준의 그룹 사이에서 숫자 그룹 크기가 같아야 하니까요.
숫자 구분자를 쓰려면 패키지의 최소 SDK를 3.6.0 이상으로 올려야 해요.
마무리
오늘 준비한 내용은 여기까지예요. 이번 분기에 Dart 팀이 무엇을 했는지 전체를 보고 싶다면 3.6.0 위한 Changelog를 확인하세요. 더 많은 업데이트를 보려면 Flutter 3.27 릴리스 블로그 글도 꼭 방문해 보세요. 내년에 뵈어요!
더 알아보기
- Changelog for 3.6.0 — 이번 분기의 전체 작업 내용
- Pub workspaces (monorepo support) — workspace 설정에 대한 완전한 지침