windows 11

새 PC 세팅, 앱 설치 목록부터 옮기세요: winget export / import 사용법

winget으로 앱 목록을 파일로 내보내 새 PC로 옮기는 그림

PC를 새로 사거나 윈도우를 다시 설치할 때 정작 시간을 잡아먹는 건 윈도우 설치가 아닙니다. 브라우저, 압축 프로그램, 에디터, 메신저까지 평소 쓰던 앱을 하나씩 검색해서 다시 설치하는 과정이 훨씬 오래 걸립니다. 설치 파일을 찾고, 다음 버튼을 누르고, 끝나면 또 다음 앱을 찾는 반복입니다.

윈도우에 기본으로 들어 있는 winget을 쓰면 이 과정을 줄일 수 있습니다. 지금 PC에 설치된 앱 목록을 파일 하나로 저장해 두고, 새 PC에서는 그 파일을 읽어서 한 번에 설치하는 방식입니다. 별도 프로그램을 사거나 설치 파일을 모아 둘 필요가 없습니다.

PC를 교체할 때, 윈도우를 다시 설치할 때, 집 PC와 노트북처럼 두 대 이상의 앱 구성을 비슷하게 맞추고 싶을 때 쓸 만합니다. 다만 옮겨지는 건 어디까지나 “무슨 앱을 설치할지”라는 목록뿐입니다. 앱 안의 설정이나 로그인 정보는 따라오지 않는데, 이 부분은 뒤에서 따로 정리하겠습니다.

먼저 winget이 되는 PC인지 확인하기

Windows Terminal이나 PowerShell을 열고 다음 명령을 입력합니다.

winget --version

버전이 표시되면 바로 사용할 수 있습니다. 명령을 찾을 수 없다는 메시지가 나오면 Microsoft Store에서 “앱 설치 관리자(App Installer)”를 업데이트한 뒤 다시 확인해 보세요. winget은 앱 설치 관리자를 통해 들어오고, 업데이트도 그 경로로 이뤄집니다.

1단계: 지금 PC의 앱 목록을 파일로 저장하기 (export)

명령은 한 줄입니다.

winget export -o "$env:USERPROFILE\Desktop\my-apps.json"

바탕 화면에 my-apps.json 파일이 만들어지고, 그 안에 지금 PC에 설치된 앱들의 이름(패키지 ID)이 들어갑니다. Microsoft의 설명대로 export는 PC에 설치된 모든 애플리케이션을 내보내려고 시도하지만, winget의 저장소와 연결되지 않는 앱은 목록에 넣지 못하고 경고가 표시됩니다. 경고가 떴다고 실패한 건 아닙니다. 목록에 들어간 앱만 옮겨도 손으로 다시 설치할 앱이 그만큼 줄어듭니다.

한 가지 주의할 점은, 위 명령은 PowerShell 기준이라는 것입니다. 명령 프롬프트(cmd)에서 실행하면 $env:USERPROFILE가 풀리지 않아 경로 오류(0x8007007b)가 발생합니다. cmd에서는 winget export -o "%USERPROFILE%\Desktop\my-apps.json"처럼 %USERPROFILE%로 바꿔 써야 합니다.

개발 도구처럼 “지금 이 버전 그대로”가 필요한 경우라면 버전을 함께 저장하는 옵션을 붙입니다.

winget export -o "$env:USERPROFILE\Desktop\my-apps.json" --include-versions

버전을 고정하면 새 PC에도 같은 버전이 설치됩니다. 대신 시간이 지나 그 버전을 더 이상 받을 수 없게 되면 설치가 실패할 수 있으니, 꼭 필요한 경우가 아니면 기본 명령을 권합니다.

저장한 파일은 메모장이나 VS Code로 열 수 있는 텍스트 파일입니다. 새 PC에는 필요 없는 앱이 섞여 있으면, 해당 앱의 항목(PackageIdentifier가 들어 있는 덩어리)을 지우고 저장하면 됩니다. Microsoft도 export가 끝난 뒤 파일을 편집해 가져오지 않을 앱을 빼는 사용법을 안내하고 있습니다. 옛 PC에서만 쓰던 앱이나 체험판으로 깔아 둔 앱은 이때 정리하는 게 좋습니다.

파일이 완성되면 USB 메모리나 OneDrive 같은 곳에 복사해 둡니다. PC를 교체한 뒤에는 이 파일이 없으면 시작할 수 없으니, 새로 설치하면 사라지는 문서 폴더보다는 별도 저장소에 두는 편이 안전합니다.

2단계: 새 PC에서 파일 하나로 설치하기 (import)

새 PC에서 Windows Terminal이나 PowerShell을 열고, 복사해 둔 파일을 지정합니다. 아래는 바탕 화면에 파일을 둔 경우의 예시입니다.

winget import -i "$env:USERPROFILE\Desktop\my-apps.json" --accept-package-agreements --accept-source-agreements --ignore-unavailable

옵션은 세 개만 알면 됩니다. –accept-package-agreements와 –accept-source-agreements는 설치 중간에 나오는 동의 확인을 미리 넘기는 옵션으로, 이게 없으면 앱마다 설치가 멈춰서 확인을 기다립니다. –ignore-unavailable은 목록에 있지만 지금은 받을 수 없는 앱이 있어도 오류로 멈추지 않고 나머지를 계속 설치하게 합니다.

설치가 시작되면 목록 순서대로 앱이 설치됩니다. 이미 설치돼 있는 앱은 건너뛰고 알려 주기 때문에, 중간에 끊겼다가 같은 명령을 다시 실행해도 처음부터 중복 설치되지는 않습니다.

버전까지 저장한 파일(–include-versions로 만든 파일)을 가져올 때 굳이 옛 버전에 맞출 필요가 없다면 다음 옵션을 붙입니다.

winget import -i "$env:USERPROFILE\Desktop\my-apps.json" --ignore-versions --accept-package-agreements --accept-source-agreements --ignore-unavailable

–ignore-versions를 붙이면 파일에 적힌 버전을 무시하고 받을 수 있는 최신 버전으로 설치합니다.

설치가 끝난 뒤 확인할 것

import가 끝났다고 세팅이 다 끝난 건 아닙니다. 목록에 없었던 앱부터 확인해야 합니다. export 때 경고를 받았던 앱, 제조사 사이트에서 설치 파일을 받아 직접 깔았던 앱, 일부 Microsoft Store 앱은 목록에서 빠질 수 있습니다. winget list 명령으로 새 PC에 설치된 앱을 확인하고, 빠진 앱만 손으로 설치하면 됩니다.

앱 설정과 로그인도 따로 챙겨야 합니다. 브라우저의 확장 프로그램, 에디터의 설정, 메신저의 로그인 같은 정보는 이 파일에 들어가지 않습니다. 설정을 동기화해 주는 앱은 로그인하면 따라오지만, 그렇지 않은 앱은 설정 파일을 따로 백업해 두는 게 좋습니다. 저는 VS Code처럼 설정 내보내기가 되는 앱은 그 파일을 my-apps.json과 같은 폴더에 함께 넣어 둡니다.

유료 앱은 설치와 라이선스 인증이 별개라는 점도 기억해 두세요. 설치는 자동으로 되지만, 정품 인증 키나 계정 정보를 요구하는 앱은 실행해서 인증까지 마쳐야 합니다.

마치며

결론은 간단합니다. export 한 번, import 한 번이면 앱 재설치라는 반복 작업이 명령 실행 한 번으로 바뀝니다. 전부 자동으로 옮겨지는 건 아니지만, 앱 수십 개를 일일이 검색해서 설치하던 시간을 기다리는 시간으로 바꾸는 것만으로도 체감이 큽니다.

제가 이 방법을 괜찮게 보는 이유는 목록 파일 자체가 기록이 되기 때문입니다. 앱 구성이 바뀔 때 가끔 export를 다시 해 두면, 그 파일이 곧 “내가 평소에 쓰는 앱 목록”이 됩니다. 새 PC를 살 일이 당장 없더라도 지금 PC에서 한 번 만들어 두는 걸 권합니다. PC가 갑자기 고장 나는 일은 예고가 없으니까요.

참고로, 앱 설치를 넘어 개발자 모드나 각종 설정까지 파일 하나로 맞추는 winget configure라는 방법도 있습니다. 다만 처음부터 그쪽으로 가면 파일 형식이 복잡해집니다. 먼저 export와 import로 앱 목록만 옮기는 데 익숙해지는 편이 낫고, configure는 다음 글에서 따로 다루겠습니다.

출처

Add Comment

Click here to post a comment

Archives