Space logo

Space

The intelligent code collaboration platform

Space is pivoting to SpaceCode, focused on Git hosting and code reviews. Learn more →

How-To's

Space에서 Dart 및 Flutter 패키지 저장소를 사용하는 방법

Read this post in other languages:

Space의 Dart 및 Flutter 패키지 저장소

코드 보안에 대한 우려가 있거나 Dart 패키지를 외부 소스에 보관하고 싶지 않으신가요?

JetBrains Space는 비공개 Dart 패키지 스토리지를 위한 완벽한 솔루션을 제공합니다. 이 솔루션을 통해 코드 및 패키지 종속성을 안전하게 저장하고 관리할 수 있으며, 조직 내에서 신속한 패키지 액세스 및 공유도 가능합니다.

모바일, 콘솔 또는 Flutter 프로젝트에서 작업할 경우 Space Packages를 사용하면 Dart 패키지를 쉽게 저장하고 공유할 수 있습니다.

이 게시물을 읽고 Dart 또는 Flutter 프로젝트에 Space Packages를 사용하는 방법을 확인해 보세요.

Space Packages에 Dart를 사용할 때 이점은 무엇인가요?

Dart는 현재 전 세계 개발자 중 9%만이 사용하지만 Dart를 기반으로 개발된 크로스 플랫폼 모바일 프레임워크인 Flutter는 2022년도 개발자 에코시스템 현황 설문조사 응답자의 46%가 사용하는 것으로 확인된 매우 인기 있는 프레임워크입니다.

Space 팀은 인기 패키지 유형의 지원이 얼마나 중요한지 이해하기에 컨테이너, Maven, NuGet, Python, Composer, npm 및 임의 파일 등 자주 사용되는 유형과 함께 Dart를 지원 패키지 목록에 추가했습니다.

완벽한 개발 플랫폼의 일부로 Space Packages를 사용할 경우 다음과 같은 이점이 있습니다.

  • 간편한 설정: 비공개 저장소를 생성하거나 GitHub, GitLab 또는 Artifactory에서 쉽게 마이그레이션할 수 있습니다.
  • 파이프라인에 패키지 통합: 통일된 인터페이스, 빠른 탐색 및 통합 권한 시스템을 사용하여 소스 코드 및 자동화 빌드 옆에 패키지가 저장됩니다.
  • 한층 안정적인 빌드: 불변 버전, 쉽게 구성 가능한 빌드 캐시 및 안정성이 낮은 저장소 캐싱과 같은 이점이 있습니다.
  • 모든 규모에 적합한 패키지 공유: Space Packages는 소규모 팀과 대기업에 모두 적합합니다. 워크로드가 높은 경우에도 적절한 시간 내에 작업할 수 있습니다.

무료로 시작하기

내부 Dart 패키지 종속성 저장

Space에서 비공개 Dart 저장소를 사용하여 사용자 지정 패키지를 안전하게 저장 및 공유할 수 있으며, 코드에는 팀원만 액세스할 수 있습니다.

  1. Space의 Dart 프로젝트에서 비공개 Dart 저장소를 생성합니다. 자세한 내용은 이 가이드를 참조하세요.
JetBrains Space에서 Dart 저장소 생성
  1. 비공개 저장소에 패키지를 게시하도록 Space Automation 잡을 설정합니다. 자세한 내용은 이 가이드에서 확인하세요.
job("Build, run tests, and publish") {
    container(displayName = "Run script", image = "dart:stable") {
        shellScript {
            content = """
                dart compile exe .bindart_package.dart
                dart test .testdart_package_test.dart
                dart pub token add https://dart.pkg.jetbrains.space/acme-corp/p/my-project/my-dart-repo --env-var JB_SPACE_CLIENT_TOKEN
                dart pub publish -f
            """
        }
    }
}
  1. 이제 Dart 프로젝트에서 비공개 저장소의 패키지를 참조할 수 있습니다.
Space의 비공개 Dart 패키지 저장소

Dart 패키지를 공개적으로 배포

내부에 저장된 일부 패키지를 공개적으로 배포하려면 추가 공개 저장소를 생성합니다. 이때 게시할 타깃 저장소로 다른 Space 저장소를 사용할 수 있습니다.

  1. 공개 Dart 저장소를 생성한 후 Public access(공개 액세스)를 선택했는지 확인합니다. 해당 저장소가 타깃 저장소입니다.
Dart 패키지를 공개적으로 배포
  1. 이제 새로 생성된 타깃 저장소를 위한 액세스 토큰이 필요합니다. 저장소를 열고 Get Started(시작하기)를 클릭합니다. 이 저장소 연결 방법이 설명된 도움말 창이 표시됩니다.
  2. Publish(게시) 탭으로 이동해 Generate write token(write 토큰 생성)을 클릭합니다. 토큰을 클립보드에 복사합니다.
패키지 저장소 게시
  1. 소스 저장소의 Settings(설정) 페이지를 엽니다.
  2. Remote Repositories(원격 저장소) 탭으로 이동하여 타깃 저장소를 추가합니다.
원격 저장소
  1. Authentication(인증) 에서 Token(토큰)을 선택한 후 3단계의 토큰을 붙여넣습니다.
새로운 원격 저장소 생성
  1. 타깃 공개 저장소에 패키지를 게시해야 할 경우 소스 저장소로 이동하여 패키지를 선택하고, Publish to remote repository(원격 저장소에 게시)를 클릭합니다.
원격 저장소 게시
  1. 이상입니다! 이제 패키지는 공개 저장소에 있습니다.

Flutter 패키지 게시

Flutter 패키지에도 동일한 사용 시나리오가 적용됩니다. 일반 Dart 패키지와 함께 동일한 Dart 저장소에 저장할 수 있습니다.

단, Flutter용 공식 Docker 이미지가 없다는 점에 주의해야 합니다. 자동화 빌드에 비공식 이미지를 사용하거나, 직접 사용자 지정 이미지를 생성할 수 있습니다. 예를 들어, 잡은 아래와 같을 수 있습니다.

job("Build, run tests, and publish") {
    container(displayName = "Run script", image = "cirrusci/flutter") {
        shellScript {
            content = """
                flutter test
                flutter pub token add https://packages.jetbrains.team/dart/p/sasmp/my-dart-repo --env-var JB_SPACE_CLIENT_TOKEN
                flutter pub publish -f
            """
        }
    }
}

Space Packages 저장소에 게시된 Flutter 패키지는 다음과 같이 보일 것입니다.

Space Packages 저장소에 게시된 Flutter 패키지

pub.dev 미러링

Space Automation을 사용하여 Dart 프로젝트를 빌드할 경우 pub.dev의 로컬 미러를 생성하는 것이 적합합니다. 이는 풀스루 캐시로 작동하는 Space Packages의 저장소 유형입니다.  패키지가 요청되면 Space는 먼저 로컬에서 패키지를 찾고, 없는 경우 원격 저장소에서 다운로드합니다. 자세히 알아보기

Space Packages를 활용해 Dart 패키지를 한층 안전하고 효율적으로 관리하고 배포하는 방법을 이해하는 데 이 게시물이 도움이 되었길 바랍니다. 소규모 팀과 대기업 모두 Space Packages를 활용해 패키지 관리 워크플로를 간소화하고 공동 작업 속도를 개선할 수 있습니다.

무료로 시작하기

Space Dart 저장소 및 Space Packages에 대한 전반적인 피드백을 보내주세요. 또한, 공유할 의견이 있다면 아래 댓글란에 남겨주세요.

게시물 원문 작성자

Jessie Cho

Evgenia Verbina

Jessie Cho

Alexey Totin

image description

Discover more