이 글에서는 Windows의 WinSxS 폴더가 지속적으로 커지는 이유와 이를 안전하게 정리하는 다양한 방법을 소개합니다. C:\Windows\WinSxS 디렉터리는 Windows 구성 요소 저장소(Component Store)로, 각종 Windows 역할과 기능의 설치 및 운영에 필요한 DLL, 바이너리, XML 파일들이 보관되어 있습니다.
Windows 업데이트를 설치할 때(보통 매월 진행됨) 새 버전의 구성 요소가 시스템에 설치되고, 기존 구 버전은 WinSxS 폴더에 그대로 남게 됩니다. 이는 업데이트 제거 시 이전 버전으로 롤백할 수 있도록 하기 위한 호환성 확보 조치입니다.
WinSxS 폴더는 왜 계속 커질까?
WinSxS 폴더는 시간이 지날수록 점점 커지며, 크기에 대한 별도의 제한이 없습니다. 실제로 Windows 10 환경에서 WinSxS 폴더 크기가 15~20GB를 초과하는 경우는 드물지만, SSD 용량이 부족한 사용자에게는 상당한 부담이 될 수 있습니다.
이 글에서는 Windows 10 및 Windows Server 2016/2019에서 WinSxS 폴더를 정리하는 가장 안전한 세 가지 방법을 다룹니다.
- 구성 요소 저장소 최적화 — Windows 업데이트 설치 후 남겨진 구버전 구성 요소 파일 제거
- Features on Demand(요청 시 기능) — 사용하지 않는 Windows 구성 요소를 디스크에서 삭제
- NTFS 압축 활성화 — NTFS 파일 시스템의 내장 압축 기능으로 WinSxS 폴더 용량 축소
많은 사용자가 "WinSxS 폴더의 파일을 직접 삭제해도 되는가?"라고 묻습니다. 답은 단호하게 아니요(NO)입니다. 임의로 파일을 삭제하면 Windows 이미지가 손상될 수 있으며, 일부 파일 삭제가 성공하는 것처럼 보여도 이 방법은 절대 권장되지 않습니다.
WinSxS 폴더의 실제 크기 확인 방법
가장 간단한 방법은 파일 탐색기에서 %windir%\WinSxS 폴더 속성을 열어 크기를 확인하거나 PowerShell 스크립트를 사용하는 것입니다. 다만 대부분의 파일 관리자(파일 탐색기 포함)는 실제 디스크 사용량보다 약간 더 큰 값으로 표시한다는 점에 유의해야 합니다.
그 이유는 WinSxS 디렉터리 내부에 다른 폴더의 시스템 파일을 가리키는 하드 링크(hard link)가 다수 포함되어 있기 때문입니다. 파일 관리자는 하드 링크가 참조하는 파일 크기까지 합산하여 표시하지만, 이는 실제 디스크 점유율과는 다릅니다.
Sysinternals du 도구로 실제 크기 확인
Sysinternals의 du 도구를 사용하면 디스크에서 차지하는 실제 크기를 정확히 알 수 있습니다:
du -v c:\windows\winSXS
DISM 명령으로 구성 요소 저장소 분석
DISM 명령을 통해서도 WinSxS 폴더의 크기를 분석할 수 있습니다:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Deployment Image Servicing and Management tool [==========================100.0%==========================] Component Store (WinSxS) information: Windows Explorer Reported Size of Component Store : 8.44 GB Actual Size of Component Store : 8.15 GB Shared with Windows : 5.74 GB Backups and Disabled Features : 1.97 GB Cache and Temporary Data : 438.31 MB Date of Last Cleanup : 2021-02-22 20:37:29 Number of Reclaimable Packages : 1 Component Store Cleanup Recommended : Yes The operation completed successfully.
위 예시에서는 백업 및 비활성화된 기능(1.97GB)과 캐시·임시 데이터(0.44GB)를 정리하여 약 2.4GB의 공간을 확보할 수 있습니다.
참고로 DISM 명령은 Windows 이미지의 손상 여부를 검사하고 복구하는 데에도 활용할 수 있습니다:
DISM /Online /Cleanup-Image /RestoreHealth
WinSxS 폴더(구성 요소 저장소) 정리 방법
Windows 구성 요소 저장소를 정리하는 가장 빠르고 간단한 방법은 아래 명령으로 저장소를 최적화하는 것입니다:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
/StartComponentCleanup 옵션은 Windows 8 및 Windows Server 2012부터 모든 Windows 버전에서 지원됩니다.
정리가 완료된 후 아래 명령으로 현재 구성 요소 저장소 크기를 다시 확인하세요:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
실제 테스트 결과, 이 과정만으로 WinSxS 폴더 크기가 약 2.4GB 감소했습니다.
/ResetBase 옵션 사용 시 주의사항
/StartComponentCleanup에는 추가 옵션인 /ResetBase가 있으며, 이를 사용하면 업데이트 설치 후 남은 모든 구버전 구성 요소를 제거합니다. 단, 실행 후에는 설치된 업데이트나 서비스 팩을 제거할 수 없게 되며, 제어판의 '설치된 업데이트' 항목에서 제거(Uninstall) 버튼이 사라집니다. 구버전 구성 요소까지 모두 정리하려면 다음 명령을 실행하세요:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Windows 7 및 Windows Server 2008 R2에서는 서비스 팩 설치 후 남은 구버전 구성 요소를 정리하기 위해 별도의 DISM 옵션을 사용했습니다:
DISM /online /Cleanup-Image /spsuperseded
디스크 정리 마법사 활용하기
GUI 환경을 선호한다면 '디스크 정리' 마법사로 오래된 업데이트 파일을 제거할 수도 있습니다:
- 관리자 권한으로
cleanmgr명령을 실행합니다; - 디스크를 선택하고 다음 창에서 '시스템 파일 정리(Clean up system files)' 버튼을 클릭합니다;
- 'Windows 업데이트 정리(Windows Update Cleanup)' 항목을 선택합니다. 도구가 삭제 가능한 공간을 표시해 주며(예시에서는 324MB), 확인을 누르면 정리가 시작됩니다.
예약 작업으로 자동 정리하기
Windows 10/Windows Server 2016의 작업 스케줄러에는 WinSxS 폴더를 주기적으로 최적화·정리하는 자동 유지 관리 작업이 내장되어 있습니다(DISM의 StartComponentCleanup과 동일한 동작). 이 StartComponentCleanup 작업은 taskschd.msc의 \Microsoft\Windows\Servicing 섹션에 위치하며, 백그라운드에서 자동으로 실행되어 30일 이상 경과된 구버전 구성 요소를 제거합니다.
이 작업을 수동으로 즉시 실행하려면 다음 명령을 사용하세요:
schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
Windows 10/Server에서 사용하지 않는 역할·기능 제거하기
Windows의 Features on Demand 개념을 활용하면 사용하지 않는 역할의 바이너리 파일을 WinSxS 폴더에서 제거할 수 있습니다. Windows Server에서는 Uninstall-WindowsFeature PowerShell cmdlet으로 역할과 기능의 바이너리를 삭제할 수 있습니다.
반면 Windows 10에는 Uninstall-WindowsFeature cmdlet이 없으므로, DISM.exe를 사용해야 합니다. 참고로 DISM은 Uninstall-WindowsFeature와 달리 종속된 기능을 함께 제거하지 않습니다.
Windows 10 이미지에서 사용 가능한 전체 기능 목록은 아래 명령으로 확인할 수 있습니다:
DISM.exe /Online /English /Get-Features /Format:Table
예를 들어 TelnetClient 기능을 Windows 이미지(WinSxS 폴더)에서 제거하려면 다음 명령을 실행합니다:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
명령 실행 후 기능 목록을 다시 조회하면 해당 구성 요소의 상태가 Disabled with Payload Removed(페이로드 제거 후 비활성화됨)로 변경된 것을 확인할 수 있습니다.
이처럼 사용하지 않는 구성 요소를 디스크에서 제거하면 WinSxS 폴더 크기를 상당히 줄일 수 있습니다. 다만 이 정리 방법은 Windows 10의 각 기능과 용도를 잘 아는 고급 사용자에게 적합합니다.
WinSxS 폴더에 NTFS 압축 적용하는 방법
Windows 10에서 WinSxS 디렉터리 크기를 줄이는 또 다른 방법은 NTFS 파일 시스템 수준에서 해당 디렉터리의 내용을 압축하는 것입니다.
주의: 비표준적인 시스템 설정 변경이므로, 시작하기 전에 반드시 Windows 10 이미지의 전체 백업을 생성하는 것을 강력히 권장합니다.
- 관리자 권한으로 명령 프롬프트를 엽니다;
- Windows Installer와 Windows Module Installer 서비스를 중지하고 비활성화합니다:
sc stop msiserver
sc stop TrustedInstaller
sc config msiserver start= disabled
sc config TrustedInstaller start= disabled - 내장 icacls 도구를 사용해 WinSxS 디렉터리의 파일·폴더에 할당된 ACL(액세스 제어 목록)을 백업합니다. ACL 백업은 모든 파일과 디렉터리 및 해당 NTFS 권한이 나열된 일반 텍스트 파일로, 나중에 원래 권한을 복원하는 데 필요합니다:
icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t - WinSxS 폴더와 모든 하위 폴더의 소유자를 자신의 계정으로 변경합니다:
takeown /f "%WINDIR%\WinSxS" /r - 자신의 계정에 WinSxS 디렉터리에 대한 모든 권한을 부여합니다:
icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t - compact 명령으로 WinSxS 디렉터리의 파일을 압축합니다. 일부 파일은 Windows가 사용 중일 수 있으므로
/i옵션을 반드시 지정해야 합니다. 그렇지 않으면 잠긴 파일을 만나는 순간 압축이 중단됩니다(Windows 10에서는 더 강력한 LZX 압축도 사용 가능):compact /s:"%WINDIR%\WinSxS" /c /a /i * - WinSxS 디렉터리의 소유권을 TrustedInstaller로 되돌립니다:
icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t - 앞서 생성한 ACL 백업 파일로 원래 권한을 복원합니다:
icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl" - Windows Installer와 Windows Module Installer 서비스의 기본 시작 유형을 복원합니다:
sc config msiserver start= demand
sc config TrustedInstaller start= demand
이제 WinSxS 폴더의 현재 크기를 확인해 보세요. 예시 환경에서는 압축 후 폴더 크기가 9.4GB에서 6.5GB로 약 1/3 감소했습니다. 용량이 작은 SSD를 사용하는 환경이라면 상당히 의미 있는 결과입니다.
위 명령들은 하나씩 개별 실행할 수도 있고(각 단계의 결과 추적이 쉬움), 하나의 스크립트 파일로 묶어 실행할 수도 있습니다. 스크립트를 실행하면 WinSxS 폴더 항목에 대한 압축 절차가 자동으로 진행됩니다. NTFS 압축 활성화용 배치 파일(winsxs_ntfs_compress.bat)을 다운로드해 사용할 수도 있습니다.
새로운 Windows 업데이트나 앱을 설치하면 WinSxS 폴더에 압축되지 않은 새 파일이 생기므로, 이 스크립트를 주기적으로 실행하는 것이 좋습니다.
WinSxS 압축이 성능에 미치는 영향
Windows는 압축된 파일을 투명하게 처리하지만, 파일을 읽거나 쓸 때 압축 해제/재압축에 추가적인 CPU 시간이 소요될 수 있습니다. 이로 인해 Windows 구성 요소나 업데이트 설치 시 약간의 속도 저하가 발생할 수 있습니다. 다만 최신 CPU에서는 파일 압축/해제 연산이 거의 즉각적으로 처리되므로, 사용자가 체감하는 성능 영향은 미미한 편입니다.