한눈에 보기

명령어목적pubspec.yamlpubspec.lock패키지 다운로드
pub get의존성 설치읽기만생성/유지O
pub upgrade의존성 업그레이드읽기만갱신O
pub outdated업데이트 가능 확인읽기만읽기만X

1. flutter pub get

목적: pubspec.yaml에 명시된 패키지를 설치

flutter pub get

동작 방식:

pubspec.yaml (의존성 정의)
  ↓
pubspec.lock 있음?
  ├─ YES → lock 파일의 정확한 버전으로 설치
  └─ NO  → 조건에 맞는 최신 버전 설치 후 lock 파일 생성
  ↓
.dart_tool/package_config.json 생성
  ↓
패키지 캐시에서 다운로드

사용 시점: 프로젝트 처음 clone 후 / pubspec.yaml 수정 후 / 팀원과 동일한 버전 유지할 때
예시:

# pubspec.yaml
get: ^4.6.6  # 4.6.6 이상 5.0.0 미만 허용
  • pubspec.lock이 있으면 → get 4.6.6 설치
  • pubspec.lock이 없으면 → get 4.7.3 설치

2. flutter pub upgrade

목적: pubspec.yaml 조건 내에서 최신 버전으로 업그레이드

flutter pub upgrade                   # 전체 업그레이드
flutter pub upgrade get               # 특정 패키지
flutter pub upgrade --major-versions  # Major 포함

동작 방식:

pubspec.yaml (의존성 정의)
  ↓
pubspec.lock 무시
  ↓
조건 내 최신 버전 탐색
  ↓
pubspec.lock 갱신
  ↓
새 버전 다운로드

사용 시점: 버그 수정, 보안 패치, 새 기능 필요 시
예시:

# pubspec.yaml
get: ^4.6.6
  • 업그레이드 전 → get 4.6.6
  • 업그레이드 후 → get 4.7.3
옵션설명
(없음)pubspec.yaml 조건 내 최신
—major-versionsmajor 버전까지 업그레이드
—dry-run변경 미리보기

3. flutter pub outdated

목적: 업데이트 가능한 패키지 확인 (파일 변경 없음)

flutter pub outdated

동작 방식:

pubspec.yaml + pubspec.lock 읽기
  ↓
pub.dev 최신 버전 조회
  ↓
비교 테이블 출력

출력 예시:

Package     Current   Upgradable   Resolvable   Latest
get         *4.6.6    4.7.3        4.7.3        4.7.3
fl_chart    *0.70.2   *0.70.2      *1.1.0       1.1.1
컬럼의미
Current현재 설치된 버전
Upgradablepub upgrade 가능 (조건 내)
Resolvable—major-versions 가능 버전
Latestpub.dev 최신 버전

*표시는 최신이 아님


실제 시나리오

# pubspec.yaml
dependencies:
  get: ^4.6.6      # 현재 4.6.6, 최신 4.7.3
  fl_chart: ^0.70.2  # 현재 0.70.2, 최신 1.1.1
명령어get 결과fl_chart 결과
pub get4.6.6 유지0.70.2 유지
pub upgrade4.7.3 업그레이드0.70.2 유지
pub upgrade —major-versions4.7.3 + pubspec 수정1.1.1 + pubspec 수정
pub outdated정보만 표시정보만 표시

권장 워크플로우

# 1. 현재 상태 확인
flutter pub outdated
 
# 2. 안전한 업그레이드 (조건 내)
flutter pub upgrade
 
# 3. 다시 확인
flutter pub outdated
 
# 4. Major 업그레이드 필요 시
flutter pub upgrade --major-versions --dry-run  # 미리보기
flutter pub upgrade --major-versions            # 실제 적용

참고 문서