Windows 사용자 프로필 입문 - AppData와 NTUSER.DAT
· 小村 豪 · Windows, 사용자 프로필, AppData, FSLogix, 로밍 프로필, Windows 개발
이 글은 Windows를 관리하는 정보시스템 담당자, 단말 배포 담당자, Windows 앱 개발자를 대상으로 일반론으로서 정리한 것입니다. 그림은 개념도입니다. Mermaid를 지원하는 Markdown 환경에서는 도표로 표시됩니다.
내용은 2026년 4월 시점에서 확인할 수 있는 Microsoft의 공식 정보를 전제로 합니다.[1][4][7][10][13][14]
Windows 관련 상담에서 ‘프로필’이라는 말은 꽤 넓은 의미로 쓰입니다.
C:\Users\사용자 이름의 내용은 무엇인가%AppData%와%LocalAppData%는 어떻게 구분해서 써야 하는가- 도메인 환경의 로밍 프로필이란 무엇인가
- Mandatory 프로필과 Temporary 프로필은 무엇이 다른가
- 공유 PC, RDS, VDI, Azure Virtual Desktop에서는 무엇을 선택해야 하는가
- 프로필이 손상되었을 때 어디부터 봐야 하는가
이 부분은 계정, 폴더, 레지스트리, 동기화 방식, 운영 정책이 한꺼번에 뒤섞이기 때문에, 이야기가 금방 어긋나기 쉽습니다.
이 글에서는 먼저 Windows 사용자 프로필을 한 장의 설계도로 보는 시각을 세우고, 그 위에서 AppData 구분 사용, 로밍, Mandatory, Temporary, FSLogix, 문제 발생 시 확인 방법까지 순서대로 정리합니다.
1. 먼저 결론
세부적인 이야기로 들어가기 전에, 실무상의 결론을 먼저 정리해 둡니다.
- Windows 사용자 프로필은 단순한
C:\Users\사용자 이름폴더가 아닙니다. 파일 그룹 + 사용자 레지스트리 하이브(NTUSER.DAT)의 집합입니다.[1] - 일반적인 로컬 PC에서는 기본적으로 로컬 프로필이 만들어집니다. 최초 로그인 시에는
C:\Users\Default를 바탕으로 새 프로필이 생성됩니다.[11][12] - 앱의 저장 위치는 대충 정하지 않는 것이 좋으며, 사용자마다 가지고 다니고 싶은 설정은
%APPDATA%, 해당 PC 전용 캐시나 일시적인 상태는%LOCALAPPDATA%로 정리하는 것이 기본입니다.[2][3] - 로밍 프로필은 ‘프로필 전체를 공유 위치로 옮기는’ 방식이고, Folder Redirection은 ‘Documents 같은 알려진 폴더만 다른 위치로 옮기는’ 방식으로, 서로 같지 않습니다.[4][5]
- Mandatory 프로필은 ‘사용은 하게 하지만 저장은 시키지 않기’ 위한 읽기 전용 프로필입니다. Temporary 프로필은 오류 발생 시의 긴급 대피용으로, 매번 사라지는 것을 전제로 합니다.[7][8][9]
- OS 세대를 넘나드는 로밍 프로필은 주의가 필요합니다. Windows 10 / Server 2016 이후와 그 이전은 서로 호환되지 않으며, 프로필 버전을 구분해서 다룬다는 전제로 생각해야 합니다.[6]
- RDS / VDI / Azure Virtual Desktop에서는 기존의 로밍 프로필만으로 밀어붙이기보다, FSLogix 프로필 컨테이너를 1순위로 검토하는 경우가 꽤 많습니다. Microsoft도 Azure Virtual Desktop에서는 FSLogix를 권장하고 있습니다.[13][14]
- 문제가 발생했을 때는 곧바로
C:\Users를 손대기 전에, Application 로그, User Profile Service의 Operational / Diagnostic 로그, 공유 경로,NTUSER.DAT/USRCLASS.DAT의 속성과 권한을 먼저 확인하는 쪽이 순서가 좋습니다.[10][11][16]
요컨대 Windows 프로필 이야기는 ‘어디에 무엇을 두고, 어디까지 가지고 다니며, 실패 시 어떻게 되돌릴 것인가’로 귀결됩니다.
2. 애초에 Windows의 ‘사용자 프로필’이란 무엇인가
먼저 계정과 프로필을 나누어 생각하면 편해집니다.
flowchart LR
A[사용자 계정<br/>누가 로그인하는가] --> B[사용자 프로필<br/>그 사람의 설정과 데이터]
C[단말 / OS] --> B
B --> D[데스크톱 설정]
B --> E[AppData]
B --> F[Documents / Desktop 등]
B --> G[HKCU로 보이는 설정]
- 계정은 누군가를 식별하는 것입니다
- 프로필은 그 사람의 작업 환경의 실체입니다
- 단말은 그 프로필을 읽어와 사용하는 곳입니다
Microsoft Learn에서도 사용자 프로필은 파일 시스템상의 프로필 폴더 그룹과 레지스트리 하이브 NTUSER.DAT를 포함하며, 로그온 시 이 하이브가 로드되어 HKEY_CURRENT_USER로 사용된다고 설명하고 있습니다.[1]
2.1 ‘폴더만’이 아니라 ‘레지스트리도 포함’
여기가 중요한 부분입니다.
flowchart TD
A[로그인] --> B[프로필 폴더 식별]
B --> C[NTUSER.DAT 로드]
C --> D[HKCU로 사용]
B --> E[Desktop / Documents / AppData 준비]
D --> F[사용자 설정 적용]
E --> F
즉, C:\Users\사용자 이름만 보고 있으면 아직 절반에 불과합니다.
Windows 프로필에는 크게 다음 2개의 계층이 있습니다.
- 파일 계층
Desktop,Documents,Downloads,AppData등 - 레지스트리 계층
NTUSER.DAT가 로드된HKCU
프로필 손상 이야기가 복잡해지는 이유는, 폴더 쪽만 손상되는 경우와 레지스트리 하이브 쪽에서 문제가 발생하는 경우가 둘 다 있기 때문입니다.[1][11]
2.2 최초 로그인에서는 Default가 바탕이 된다
새 사용자가 해당 PC에 처음 로그인할 때, Windows는 C:\Users\Default를 바탕으로 로컬 프로필을 생성합니다.[11]
flowchart LR
A[C:\Users\Default] --> B[최초 로그인]
B --> C[C:\Users\사용자 이름 생성]
C --> D[NTUSER.DAT 로드]
D --> E[해당 사용자 전용 환경이 됨]
이미지 배포나 키팅(kitting) 작업 맥락에서 이 부분을 대충 다루면, 나중에 꽤 곤란해집니다.
Microsoft는 기본 프로필을 커스터마이즈하는 방법에 대해, 지원되는 방법은 CopyProfile을 사용하는 방법이라고 설명하고 있습니다. 수동 복사나 예전 방식의 대충 복제는 불필요한 정보를 함께 가져오게 되어, 앱이나 시스템 안정성에 문제를 일으킬 수 있습니다.[12]
3. C:\Users\사용자 이름을 보는 방법
사용자 프로필을 폴더 쪽에서 보면, 대략 이런 구조입니다.
flowchart TD
A["C:\Users\사용자 이름"] --> B[Desktop]
A --> C[Documents]
A --> D[Downloads]
A --> E[Pictures]
A --> F[AppData]
A --> G[NTUSER.DAT]
F --> H[Roaming]
F --> I[Local]
F --> J[LocalLow]
실무에서 가장 먼저 보는 곳은 대략 이 부분들입니다.
| 위치 | 무엇이 들어 있나 | 실무에서 보는 관점 |
|---|---|---|
Desktop |
데스크톱 위의 파일 | 사용자에게 보이는 것 |
Documents |
사용자가 만든 문서 | 업무 데이터가 들어가기 쉬움 |
Downloads |
다운로드한 것들 | 잡동사니도 섞이기 쉬움 |
AppData\Roaming |
사용자 설정 위주 | 가지고 다니고 싶은 설정용 |
AppData\Local |
PC 고유 데이터·캐시 위주 | 용량이 커지기 쉬움 |
NTUSER.DAT |
사용자 레지스트리 | HKCU의 실체 |
3.1 AppData를 3가지로 나누어 생각한다
Windows 앱 개발이나 문제 조사에서 가장 헷갈리기 쉬운 부분이 여기입니다.
Microsoft 가이드에서는 앱 고유 데이터에는 FOLDERID_RoamingAppData(Roaming AppData)를, 임시 파일이나 다른 컴퓨터에서 쓰지 않는 데이터에는 FOLDERID_LocalAppData를 사용하도록 안내하고 있습니다.[2]
또한 Known Folders 정의에서는 기본 경로가 다음과 같이 정리되어 있습니다.[3]
%APPDATA%=%USERPROFILE%\AppData\Roaming%LOCALAPPDATA%=%USERPROFILE%\AppData\LocalLocalLow=%USERPROFILE%\AppData\LocalLow
flowchart LR
A[AppData] --> B[Roaming]
A --> C[Local]
A --> D[LocalLow]
B --> B1[가지고 다니고 싶은 설정]
B --> B2[작은 사용자 상태]
C --> C1[캐시]
C --> C2[재생성 가능한 데이터]
C --> C3[그 PC 고유의 상태]
D --> D1[특수 용도]
실무에서의 구분 사용은 이렇게 생각한다
| 저장하고 싶은 것 | 우선 검토할 위치 | 이유 |
|---|---|---|
| 사용자 설정 | %APPDATA% |
사용자 단위로 다루기 쉬움 |
| 해당 PC 전용 캐시 | %LOCALAPPDATA% |
다른 단말로 가지고 다니지 않는다는 전제로 삼기 쉬움 |
| 로그인 기록, 대용량 캐시, 썸네일류 | %LOCALAPPDATA% |
로밍시키면 무거워지기 쉬움 |
| 사용자가 직접 만드는 문서 | Documents 등 |
앱 내부 상태가 아니라 업무 결과물이기 때문 |
| 모든 사용자 공통의 가변 데이터 | ProgramData |
사용자 고유 데이터가 아니기 때문 |
ProgramData는 Microsoft의 알려진 폴더 정의에서도 모든 사용자를 위한 애플리케이션 데이터로 규정되어 있으며, 로밍되지 않는 공유 데이터용입니다.[3]
여기서 가장 피해야 할 것은 사용자별 실행 시 데이터를 Program Files에 두는 것입니다.
프로필 정리와 권한 설계가 한꺼번에 무너지기 쉬워집니다.
3.2 Public과 Default는 역할이 다르다
이 부분도 헷갈리기 쉽습니다.
flowchart LR
A["C:\Users"] --> B[Default]
A --> C[Public]
A --> D[각 사용자]
B --> B1[신규 프로필 생성의 원본]
C --> C1[모든 사용자에게 보이는 공유 항목]
D --> D1[개별 사용자의 실체]
- Default는 신규 프로필을 만들기 위한 템플릿
- Public은 모든 사용자에게 보여주는 공유 영역
- 각 사용자 폴더는 그 사람 고유의 실체
이 세 가지는 비슷해 보이지만 역할은 완전히 다릅니다.
4. 프로필의 종류를 정리한다
‘프로필’이라고 한마디로 말해도, 운영상으로는 최소한 다음과 같은 종류가 있습니다.
flowchart TD
A[Windows의 프로필] --> B[로컬 프로필]
A --> C[로밍 프로필]
A --> D[Mandatory 프로필]
A --> E[Temporary 프로필]
A --> F[FSLogix 프로필 컨테이너]
4.1 로컬 프로필
일반적인 PC에서는 기본이 이것입니다.
- 해당 PC의 로컬 디스크에 생성됨
- 다른 PC로 자동으로 옮겨지지 않음
- 단독 PC에서는 가장 단순함
Microsoft도 기본적으로 Windows는 로컬 사용자 프로필을 생성한다고 설명하고 있습니다.[14]
4.2 로밍 프로필
Microsoft Learn에서는 로밍 사용자 프로필은 서버 공유에 저장되며, 여러 컴퓨터에서 동일한 OS / 앱 설정을 받을 수 있게 하는 방식이라고 설명하고 있습니다.[4][5]
flowchart LR
A[공유 서버상의 프로필] <--> B[PC-A]
A <--> C[PC-B]
A <--> D[PC-C]
다만, 실무에서는 다음과 같은 주의점이 있습니다.
- 로그인 / 로그아웃 시 복사나 동기화가 느려지기 쉬움
AppData\Local에 큰 데이터를 안고 있으면 힘들어짐- OS 버전 차이로 인한 문제를 받기 쉬움
- 공유 경로나 네트워크 품질의 영향을 강하게 받음
4.3 Mandatory 프로필
Mandatory 프로필은 관리자가 만드는 ‘저장되지 않는 로밍 프로필’입니다.[7][8]
Microsoft의 설명에 따르면, Mandatory 프로필에서는 사용자가 세션 중에 변경을 하더라도, 일반적인 로밍 프로필과 달리 저장되지 않습니다.[7]
또한 Win32 문서에서는
NTUSER.DAT를NTUSER.MAN으로 이름을 바꾸면 Mandatory가 된다- 프로필 경로의 폴더 이름 끝을
.man으로 하면 Super-mandatory가 된다
고 설명하고 있습니다.[8]
flowchart LR
A[관리자가 준비한 프로필] --> B[사용자가 로그인]
B --> C[사용 중에는 변경 가능]
C --> D[로그아웃]
D --> E[변경 내용은 저장되지 않음]
예를 들어, 다음과 같은 용도에 적합합니다.
- 교육용 단말
- 접수 단말
- 키오스크
- 매번 깨끗한 상태로 되돌리고 싶은 공유 단말
4.4 Temporary 프로필
Temporary 프로필은 설계 단계에서 선택하는 것이 아니라, 오류로 인해 원래 프로필을 로드할 수 없을 때 나타나는 대피용입니다.[9]
Microsoft Learn에서는 오류 조건으로 원래 프로필을 로드할 수 없는 경우 Temporary profile이 발행되며, 세션이 종료되면 삭제되어 변경 내용이 사라진다고 설명하고 있습니다.[9]
flowchart TD
A[일반 프로필 로드 시작] --> B{로드 가능한가}
B -->|Yes| C[일반 로그온]
B -->|No| D[Temporary 프로필로 로그온]
D --> E[작업은 가능]
E --> F[로그아웃 시 변경 내용 소실]
즉, Temporary 프로필로 동작하고 있는 상태 자체가 비정상의 신호입니다.
4.5 FSLogix 프로필 컨테이너
FSLogix는 Microsoft Learn에서 Windows 사용자 프로필 경험을 가상 데스크톱 환경에서 일관되게 유지하는 방식이라고 설명하고 있습니다.[13]
FSLogix 프로필 컨테이너는 사용자 프로필 전체를 VHD / VHDX로 가지고 있다가, 로그인 시 이를 연결(attach)하여 네이티브 프로필처럼 보이게 하는 방식입니다.[13][14]
flowchart LR
A[VHD / VHDX상의 프로필] --> B[로그인 시 연결]
B --> C[세션 호스트에서 C:\Users\사용자로 보임]
C --> D[로그아웃 시 연결 해제]
Azure Virtual Desktop에서는 Microsoft가 FSLogix profile containers의 사용을 권장하고 있습니다.[14]
5. 로밍 프로필, Folder Redirection, FSLogix는 무엇이 다른가
이 세 가지는 같은 이야기로 묶여 언급되기 쉽지만, 역할이 다릅니다.
flowchart TD
A[사용자 상태를 유지하며 이동] --> B[로밍 프로필]
A --> C[Folder Redirection]
A --> D[FSLogix]
B --> B1[프로필 전체를 공유로]
C --> C1[알려진 폴더만 다른 위치로]
D --> D1[VHD/VHDX 연결]
Microsoft Learn의 정리에 맞추면, 차이는 이렇게 보면 이해하기 쉽습니다.[4][5][14]
| 방식 | 무엇을 가지고 다니나 | 적합한 상황 | 힘들어지기 쉬운 부분 |
|---|---|---|---|
| 로밍 프로필 | 프로필 전체 | 전통적인 도메인 환경 | 큰 프로필, 동기화 지연, 버전 차이 |
| Folder Redirection | Documents 등 알려진 폴더 | 문서를 중앙에서 관리하고 싶을 때 | 앱 설정까지는 챙기지 못함 |
| FSLogix | 프로필 전체를 컨테이너화 | RDS / VDI / AVD | 스토리지 설계, 동시 접속, 공유 권한 설계 |
5.1 Folder Redirection은 ‘알려진 폴더만’ 옮긴다
Microsoft Learn에서 Folder Redirection은 known folder의 경로를 다른 위치로 향하게 하는 방식입니다.[4]
예를 들어 Documents를 파일 공유로 옮기면, 사용자에게는 로컬과 똑같이 보이지만 실체는 다른 위치에 있습니다.[4]
flowchart LR
A[Documents] --> B[실체는 파일 공유]
C[Desktop] --> D[필요하면 별도 설정]
E[AppData] --> F[그대로 또는 다른 방식]
즉, Folder Redirection은 프로필 전체를 대체하는 것이 아니라, 폴더 단위의 배치 변경입니다.
5.2 로밍 프로필은 OS 세대를 넘나들며 함부로 섞지 않는다
Microsoft는 Windows 10 / Server 2016 이후의 로밍 프로필은 그 이전 버전의 Windows와 호환되지 않는다고 설명하고 있습니다.[6]
flowchart LR
A[Windows 7 / 8.1 계열] -.혼용 주의.-> B[동일한 공유]
C[Windows 10 / Server 2016 이후] -.혼용 주의.-> B
B --> D[불일치 / 시작 메뉴 오류 / 작업 표시줄 오류의 원인]
여기서 중요한 것은
- OS 세대별로 프로필 버전을 나눈다
- ‘같은 사용자니까 같은 폴더면 된다’고 생각하지 않는다
- 단말 배포나 교체 시에는 프로필 호환성을 마이그레이션 계획에 포함시킨다
는 점입니다.[6]
6. 개발자·운영 담당자가 먼저 결정해야 할 저장 위치
프로필 이야기는 결국 여기로 돌아옵니다. 무엇을 어디에 둘 것인가입니다.
flowchart TD
A[저장하려는 데이터] --> B{사용자가 만드는 결과물인가}
B -->|Yes| C[Documents 등]
B -->|No| D{그 PC 고유인가}
D -->|Yes| E[%LOCALAPPDATA%]
D -->|No| F{사용자별 설정인가}
F -->|Yes| G[%APPDATA%]
F -->|No| H{모든 사용자 공유의 가변 데이터인가}
H -->|Yes| I[ProgramData + ACL]
H -->|No| J[배치 위치 재검토]
6.1 사용자가 만드는 파일과 앱 내부 상태를 구분한다
이 부분을 섞으면 백업도 마이그레이션도 깨지기 쉬워집니다.
- 사용자가 의식적으로 다루는 결과물
Documents,Pictures, 업무용 저장 폴더 - 앱 내부의 상태 설정, 캐시, 썸네일, 세션 정보, 작업 파일
전자는 업무 데이터이고, 후자는 앱 편의를 위한 것입니다. 같은 ‘파일’이라도 다루는 방식은 구분하는 것이 좋습니다.
6.2 %APPDATA%에 두는 것
여기에 두는 것은 대략 다음과 같습니다.
- 작은 설정
- 사용자별 환경설정
- 여러 단말에서 동일하게 보이길 원하는 상태
- 프로필과 함께 가지고 다녀도 되는 것
Fast User Switching 문서에서도 앱 고유 데이터의 저장 위치로 FOLDERID_RoamingAppData가 안내되어 있습니다.[2]
6.3 %LOCALAPPDATA%에 두는 것
이쪽으로 몰아넣고 싶은 것은, 재생성이나 이동 관점에서 로컬에 한정되어야 하는 것들입니다.
- 재생성 가능한 캐시
- 로컬에서만 의미가 있는 상태
- 큰 작업 파일
- 성능을 중시해서 가지고 다니게 하고 싶지 않은 것
Known Folders 정의에서도 LocalAppData는 %USERPROFILE%\AppData\Local입니다.[3]
6.4 ProgramData에 두는 것
모든 사용자에게 공통이지만, 실행 중에 변하는 데이터는 ProgramData 쪽이 후보입니다.[3]
예를 들면,
- 공유 사전
- 모든 사용자 공통의 정의 파일
- 서비스와 여러 사용자가 공유하는 가변 데이터
다만, 여기는 ACL 설계까지 포함해서 생각할 필요가 있습니다.
‘공유니까 일단 ProgramData‘가 아니라, 누가 읽고 누가 쓸지를 정하는 것이 중요합니다.
6.5 기본 프로필을 세밀하게 구성하고 싶을 때
이미지 배포에서 ‘신규 사용자 전체에 동일한 초기 설정을 넣고 싶다’는 요구는 흔히 있습니다.
이 경우에는 Default를 함부로 손대지 말고, Microsoft가 지원하는 CopyProfile 기반 방법으로 구성하는 것이 안전합니다.[12]
flowchart LR
A[관리자 계정에서 초기 설정] --> B[Sysprep + CopyProfile]
B --> C[Default profile에 반영]
C --> D[이후 신규 사용자에게 적용]
‘어떤 PC의 C:\Users\A를 다른 PC의 Default에 수동으로 복사한다’와 같은 방식은, 보기에는 빨라도 나중에 문제가 생기기 쉽습니다.[12]
7. 손상되었거나, 임시 프로필이 되었거나, 동기화되지 않을 때 확인하는 방법
이 부분은 현장에서 가장 곤란해하는 부분입니다. 게다가 증상이 비슷하게 보이기 때문에, 원인 분리를 대충 하면 헛다리를 짚기 쉽습니다.
7.1 먼저 증상을 3가지로 나눈다
flowchart TD
A[프로필 문제로 보임] --> B{로그온이 되는가}
B -->|Yes| C{화면이 초기화되었나}
B -->|No| D[로드 실패 계열]
C -->|Yes| E[Temporary / 손상 / 다른 프로필]
C -->|No| F{일부만 설정이 되돌아가는가}
F -->|Yes| G[로밍 / 리디렉션 / 동기화 계열]
F -->|No| H[앱 개별 문제 가능성]
크게 나누면 다음 3가지 계통입니다.
- 로그온 시 실패한다
- 로그온은 되지만, 초기화된 것처럼 보인다
- 일부만 동기화되지 않는다
7.2 먼저 확인해야 할 로그
Microsoft Learn에서는 프로필 문제를 조사할 때 다음 순서로 확인하도록 안내하고 있습니다.[10]
- Application 로그
- User Profile Service의 Operational 로그
- 필요하면 Diagnostic 로그
- 더 필요하면 ETL 추적(trace)
구체적인 경로는 다음과 같습니다.[10]
- 이벤트 뷰어
Applications and Services Logs > Microsoft > Windows > User Profile Service > Operational - 더 자세히 보고 싶을 때
... > User Profile Service > Diagnostic
flowchart LR
A[Application 로그] --> B[Operational 로그]
B --> C[Diagnostic 로그]
C --> D[ETL 추적]
현장에서는 처음부터 레지스트리 복구나 폴더 삭제에 들어가기보다, 로그에서 ‘로드 실패’, ‘복사 실패’, ‘액세스 거부’, ‘긴 경로’, ‘공유에 쓸 수 없음’ 등의 방향성을 파악하는 쪽이 더 안전합니다.
7.3 흔한 원인
NTUSER.DAT / USRCLASS.DAT의 속성이나 권한
Microsoft는 NTUSER.DAT나 USRCLASS.DAT가 읽기 전용(Read-only)으로 되어 있거나, 필요한 액세스 권한이 없으면 프로필 로드가 실패할 수 있다고 설명하고 있습니다.[11]
눈에 잘 띄지 않지만, 놓치면 문제가 오래 끄는 원인이 됩니다.
flowchart LR
A[프로필 로드] --> B{DAT 파일에 액세스할 수 있는가}
B -->|No| C[로그온 실패 / 초기 데스크톱 / Temporary]
B -->|Yes| D[일반 로드]
로밍 복사 시의 긴 경로
Microsoft의 KB에서는 공유 경로 쪽의 서버 이름이나 공유 이름이 길어서 복사 대상 경로 전체가 너무 길어지는 경우, Event ID 1509와 함께 임시 프로필로 떨어지는 사례가 설명되어 있습니다.[16]
단순한 경로 길이 제약처럼 보이지만, 실제로는 로밍 대상의 설계 자체가 원인인 경우가 있는 것입니다.
불완전한 삭제로 남은 레지스트리 / 폴더 정보
Microsoft에는 레지스트리와 C:\Users에 남은 고립된 정보를 정리하여 TEMP 프로필을 방지하기 위한 예제 스크립트 문서가 있습니다.[15]
여기서 알 수 있는 것은, 폴더만 지우면 끝나는 것이 아니다라는 점입니다.
flowchart LR
A[예전 프로필을 대충 삭제] --> B[레지스트리 정보가 남음]
B --> C[다음 로그온에서 불일치 발생]
C --> D[TEMP 프로필이나 추가 폴더의 원인]
7.4 먼저 무엇을 확인할 것인가
| 증상 | 먼저 확인할 곳 | 대표적인 원인 |
|---|---|---|
| 로그온 실패 | Application / Operational | 하이브 로드 실패, 권한, 손상 |
| 초기화된 데스크톱 | Operational / Diagnostic | Temporary 프로필화 |
| 로밍이 저장되지 않음 | 공유 경로, 이벤트, 버전 | 공유 권한, 네트워크, 경로 길이, 버전 차이 |
| 신규 사용자만 이상함 | C:\Users\Default 기반 생성 |
기본 프로필 문제 |
| 공유 PC에서 잔재가 계속 쌓임 | 삭제 정책, Shared PC 설정 | 자동 정리 부족 |
8. 어떤 방식을 선택해야 하는가
여기는 ‘정답이 하나’가 아닙니다. 사용 형태에 따라 달라집니다.
flowchart TD
A[사용 형태] --> B[개인 전용 PC]
A --> C[도메인 가입 업무 PC]
A --> D[공유 PC / 교육용 단말]
A --> E[RDS / VDI / AVD]
B --> B1[로컬 중심]
C --> C1[필요에 따라 Folder Redirection / 로밍]
D --> D1[Mandatory / Shared PC / cleanup]
E --> E1[FSLogix 1순위]
8.1 개인 전용 PC
기본적으로는 로컬 프로필로 충분합니다.
- 사용자 설정은
AppData - 결과물은
Documents - 필요하면 OneDrive 등 별도 레이어에서 문서 동기화
이 구성이 가장 단순합니다.
8.2 도메인 가입 업무 PC
요구사항에 따라 다음을 조합합니다.
- 문서 데이터를 중앙에서 관리하고 싶다 → Folder Redirection
- 여러 PC에서 동일한 설정도 가지게 하고 싶다 → 로밍 프로필
- OS 혼재나 대형 프로필이 있다 → 신중한 설계, 또는 방식 재검토
Microsoft Learn에서도 Folder Redirection과 Roaming User Profiles는 중앙 집약, 오프라인 이용, 백업 용이화 등에 도움이 된다고 되어 있습니다.[4]
8.3 공유 PC / 교육용 단말 / 키오스크
이 용도에서는 ‘개인 맞춤 설정을 남기는 것’보다 매번 깨끗하게 되돌리는 것이 중요합니다.
후보는 다음 3가지입니다.
- Mandatory 프로필
- Shared PC 모드
- 오래된 프로필 자동 삭제 정책
Microsoft에는 Delete user profiles older than a specified number of days on system restart라는 정책이 있어, 지정한 일수 동안 사용되지 않은 프로필을 재부팅 시 삭제할 수 있습니다.[17]
또한 Shared PC 가이드에서도, 공유 단말에서는 계정 / 프로필의 자동 관리나 삭제를 조합하는 방식이 제시되어 있습니다.[18]
8.4 RDS / VDI / Azure Virtual Desktop
여기서는 기존의 로밍 프로필만으로는 부족한 상황이 많습니다.
Microsoft는 Azure Virtual Desktop에서 FSLogix profile containers를 권장하며, VHDX / VHD를 로그인 시 연결하여 네이티브 사용자 프로필처럼 다룬다고 설명하고 있습니다.[14]
flowchart LR
A[여러 세션 호스트] --> B[공유 스토리지]
B --> C[VHDX 사용자 프로필]
C --> D[연결된 호스트로 연결]
특히 다음과 같은 조건에서는 FSLogix를 먼저 검토할 가치가 높습니다.
- 세션 호스트가 매번 바뀐다
- Outlook / OneDrive / Microsoft 365 계열을 사용한다
- 비영구(non-persistent) VDI에서 프로필 유지가 필수이다
- 로밍 프로필의 로그인 지연이 문제가 된다
9. 흔한 오해
9.1 ‘계정을 만들면 프로필도 어디서나 똑같이 쓸 수 있다’
그렇지 않습니다. 계정은 식별자이고, 프로필은 그 단말 쪽의 실체입니다. 어디까지 가지고 다닐지는 로컬, 로밍, Folder Redirection, FSLogix 등의 방식에 따라 달라집니다.[4][14]
9.2 ‘C:\Users\사용자 이름을 복사하면 이전할 수 있다’
대충 하는 복사는 위험합니다.
- OS 버전 호환성
NTUSER.DAT- 권한
- 앱 고유 상태
- 기본 프로필과의 혼선
등이 있기 때문입니다. 특히 OS 세대 차이가 있는 로밍에서는, Microsoft도 프로필 버전 분리를 전제로 하고 있습니다.[6]
9.3 ‘Mandatory와 Temporary는 비슷한 것이다’
이 둘은 서로 다른 것입니다. Mandatory는 관리자가 의도적으로 만드는 읽기 전용 프로필이고, Temporary는 오류로 원래 프로필을 읽을 수 없을 때의 대피용입니다.[8][9]
9.4 ‘동기화하고 싶으면 전부 Roaming에 넣으면 된다’
그것은 위험합니다. 설정과 대용량 캐시를 같은 상자에 넣으면, 로그인 / 로그아웃이나 장애 시 처리가 무거워집니다. Roaming시키고 싶은 것과 Local에 한정해야 하는 것은 나누는 것이 운영하기 쉽습니다.[2][3]
9.5 ‘임시 프로필이 되어도, 그대로 사용하면 된다’
피하는 것이 좋습니다. Temporary profile은 로그아웃하면 사라지는 것을 전제로 하기 때문에, 그 상태로 계속 작업하면 나중에 사라질 위치에 중요한 데이터를 두게 되는 위험이 있습니다.[9]
10. 정리
Windows 사용자 프로필은 단순히 C:\Users 아래의 폴더를 가리키는 말이 아닙니다.
- 파일 그룹
NTUSER.DAT를 중심으로 한 사용자 레지스트리- 그 프로필을 어디에 두고, 어떻게 동기화하며, 어떻게 삭제할지에 대한 운영 방식
까지 포함해서 하나의 설계로 생각하면, 전체를 파악하기가 쉬워집니다.
실무에서 먼저 확실히 짚어두고 싶은 것은 다음 6가지입니다.
- 단독 PC라면 먼저 로컬 프로필을 기준으로 생각한다
- 앱의 저장 위치는
Roaming/Local/ProgramData로 구분한다 - 도메인 환경에서는 로밍 프로필과 Folder Redirection을 혼동하지 않는다
- 공유 단말에서는 Mandatory / cleanup / Shared PC를 검토한다
- RDS / VDI / AVD에서는 FSLogix를 1순위로 넣는다
- 손상되었을 때는 먼저 User Profile Service의 로그를 확인한다
결국 프로필 설계는 ‘어디에 저장할 것인가’가 아니라, ‘무엇을 누구의 것으로 하고, 어디까지 가지고 다닐 것인가’의 설계입니다. 이 부분이 확실히 잡혀 있으면, 단말 배포도, Windows 앱 설계도, 장애 조사도 훨씬 수월해집니다.
11. 관련 글
12. 이 주제와 연결되는 서비스
Windows 앱 개발
사용자 설정, 로그, 캐시, 공유 데이터의 저장 위치를 어떻게 나눌지는 Windows 앱의 운용성과 유지보수성을 크게 좌우합니다. 요구사항 정리부터 설계·구현·장기 운영까지 내다본다면, Windows 앱 개발이라는 맥락과 잘 맞는 주제입니다.
기술 상담・설계 리뷰
로컬 / 로밍 / FSLogix 중 무엇을 선택할지, 기존 단말의 운영을 어떻게 바꿀지, 저장 위치를 어떻게 나눌지는 구현 전 정리 단계에서 상당한 차이가 생깁니다. 방식 선정이나 경계 설계부터 정리하고 싶다면, 기술 상담・설계 리뷰로 분리해서 진행하기 좋은 주제입니다.
결함 조사・원인 분석
Temporary 프로필화, 로그온 실패, 로그아웃 시 저장 실패, 공유 경로 관련 원인 분리는 결함 조사와 상당히 잘 맞습니다. 재현하기 어려운 프로필 문제를 로그・이벤트・권한・공유 구성 관점에서 파고들고 싶을 때의 상담 입구가 됩니다.
13. 참고 자료
-
Microsoft Learn, About User Profiles (Windows) 사용자 프로필의 구성 요소,
NTUSER.DAT, Temporary profile의 기본 사항. -
Microsoft Learn, Fast User Switching 앱 고유 데이터에는
FOLDERID_RoamingAppData, 다른 컴퓨터에서 쓰지 않는 데이터에는FOLDERID_LocalAppData를 사용하는 정리 방식. -
Microsoft Learn, KNOWNFOLDERID, CSIDL
%APPDATA%,%LOCALAPPDATA%,LocalLow,ProgramData등 알려진 폴더의 정의. -
Microsoft Learn, Folder Redirection and Roaming User Profiles in Windows and Windows Server Folder Redirection과 Roaming User Profiles의 차이, 중앙 관리의 사고방식.
-
Microsoft Learn, Deploy roaming user profiles 로밍 프로필 배포, 공유 권한, GPO, 버전 관리의 실무 절차.
-
Microsoft Learn, Roaming user profiles of earlier versions of Windows are incompatible with Windows 10, Windows Server 2016, and later versions OS 세대 간 비호환성과 프로필 버전 관리.
-
Microsoft Learn, Create mandatory user profiles Mandatory user profile의 용도와 생성 방법.
-
Microsoft Learn, Mandatory User Profiles
NTUSER.MAN, Super-mandatory profile의 정의. -
Microsoft Learn, Temporary User Profiles Temporary profile의 정의와 특성.
-
Microsoft Learn, Troubleshoot user profiles with events Application / Operational / Diagnostic 로그를 이용한 원인 분리.
-
Microsoft Learn, Error occurs during desktop setup and desktop location is unavailable when you log on to Windows for the first time
C:\Users\Default를 기점으로 하는 신규 프로필 생성,NTUSER.DAT/USRCLASS.DAT의 속성・권한 문제. -
Microsoft Learn, Customize the default local user profile when you prepare an image of Windows
CopyProfile을 이용한, 지원되는 기본 프로필 커스터마이즈 방법. -
Microsoft Learn, What is FSLogix, Types of Containers FSLogix의 기본, Profile Container의 개념.
-
Microsoft Learn, User profile management for Azure Virtual Desktop with FSLogix profile containers, Configure profile containers using FSLogix Azure Virtual Desktop에서의 권장 사항, VHD / VHDX를 이용한 프로필 컨테이너 방식.
-
Microsoft Learn, Scripts: Clean up profile folder information and prevent TEMP user profiles from being created 고립된 프로필 정보와 TEMP profile의 관계.
-
Microsoft Learn, User profile cannot be loaded with Event ID 1509: DETAIL - The filename or extension is too long 로밍 프로필 저장 시의 긴 경로 문제.
-
Microsoft Learn, ADMX_UserProfiles Policy CSP
Delete user profiles older than a specified number of days on system restart등의 정책 정의. -
Microsoft Learn, Configure a shared or guest Windows device Shared PC 모드와 공유 단말의 계정 / 프로필 관리.
관련 기사
같은 태그를 공유하는 최신 기사입니다. 더 가까운 주제로 지식을 넓힐 수 있습니다.
Windows 앱의 중복 실행 방지 ── 네임드 Mutex와 재실행 시 창 활성화
업무용 Windows 앱의 정석 요건인 「같은 앱을 두 번 실행시키지 않는다」를 네임드 Mutex로 구현하는 방법을 정리합니다. Global\ 과 Local\ 네임스페이스의 차이로 인한 RDP 환경의 함정, 소유 스레드 제약과 AbandonedM...
Windows 앱 외주·수탁 개발을 의뢰하기 전에 정리해야 할 것
Windows 앱의 외주·수탁 개발을 의뢰하기 전에, 기존 소프트웨어 개수, 장치 연계, COM/ActiveX, 배포·업데이트, 보수와 관련해 정리해야 할 포인트를 설명합니다.
Windows에서 'Windows에 의해 PC가 보호되었습니다'가 나타나는 이유
Windows 앱 배포 시 SmartScreen 경고가 뜨는 이유를 코드 서명, EV/OV 증명서, Azure Artifact Signing, MSIX, Microsoft Store, ClickOnce, 사내 배포, App Control까지 실무...
ClickOnce란 무엇인가 - 구조, 업데이트, 어울리는 장면・어울리지 않는 장면을 실무 시점에서 정리
ClickOnce가 무엇이고 매니페스트, 캐시, 업데이트, 서명이 어떻게 맞물려 동작하는지를 Mermaid 그림과 함께 정리하고, 사내용 .NET 데스크톱 앱 배포에서 어울리는 안건과 어울리지 않는 안건을 실무 시점에서 판단할 수 있도록 도와드립니다.
Windows 샌드박스로 Windows 앱 개발의 검증을 빠르게 하는 방법 - 관리자 권한 문제, 클린 환경, 권한 부족・리소스 부족의 재현을 실무용으로 정리
Windows Sandbox로 Windows 앱의 클린 환경 검증을 빠르게 하는 실무 노하우를 정리합니다. .wsb 파일을 용도별로 나누고, 입력은 읽기 전용・출력만 쓰기 가능으로 분리하며, 표준 사용자나 메모리 부족, GPU 없는 상태의 재현까...
관련 토픽
이 기사와 가까운 토픽 페이지입니다. 기사를 출발점 삼아 관련 서비스와 다른 기사로 이어집니다.
Windows 기술 토픽
Windows 개발, 장애 조사, 기존 자산 활용에 관한 KomuraSoft LLC 기사를 모은 토픽 허브입니다.
이 주제와 연결되는 서비스
이 기사는 다음 서비스 페이지로 이어집니다. 가까운 입구부터 확인해 주세요.
Windows 앱 개발
상주 처리, 장비 연동, 운영 로그, 유지 보수 가능한 구조가 필요한 Windows 데스크톱 애플리케이션을 지원합니다.
자주 묻는 질문
이 기사 주제에 대해 상담 시 자주 나오는 질문을 모았습니다.
- NTUSER.DAT란 무엇인가요?
- NTUSER.DAT는 Windows 사용자 프로필에 포함된 사용자 레지스트리 하이브의 실체 파일입니다. C:\Users\사용자 이름 바로 아래에 있으며, 로그인 시 로드되어 HKEY_CURRENT_USER(HKCU)로 사용됩니다. 즉 사용자 프로필은 Desktop이나 AppData 같은 파일 그룹과, NTUSER.DAT를 중심으로 한 레지스트리 계층이라는 두 계층으로 구성됩니다. NTUSER.DAT가 읽기 전용 속성으로 되어 있거나 필요한 액세스 권한이 없으면 프로필 로드에 실패하여 로그온 실패나 임시 프로필화의 원인이 됩니다.
- Windows의 사용자 프로필이란 무엇인가요? 계정과는 다른 건가요?
- 계정은 '누가 로그인하는가'를 식별하는 것이고, 사용자 프로필은 그 사람의 작업 환경의 실체입니다. 프로필은 단순한 C:\Users\사용자 이름 폴더가 아니라, Desktop·Documents·AppData 같은 파일 그룹과 NTUSER.DAT라는 사용자 레지스트리 하이브의 집합입니다. 새 사용자가 해당 PC에 처음 로그인할 때는 C:\Users\Default를 바탕으로 새 프로필이 생성됩니다. 설정을 어디까지 가지고 다닐지는 로컬·로밍·Folder Redirection·FSLogix 같은 방식의 선택으로 결정됩니다.
- %APPDATA%와 %LOCALAPPDATA%는 어떻게 구분해서 사용해야 하나요?
- 사용자마다 가지고 다니고 싶은 설정은 %APPDATA%(AppData\Roaming)에, 해당 PC 전용 캐시나 일시적인 상태는 %LOCALAPPDATA%(AppData\Local)에 두는 것이 기본입니다. 재생성할 수 있는 캐시나 큰 작업 파일을 로밍시키면 로그인·로그아웃이 느려지기 쉬우므로 Local 쪽으로 몰아넣습니다. 모든 사용자가 공통으로 쓰는 가변 데이터는 ProgramData가 후보이지만, 누가 읽고 쓸지에 대한 ACL 설계와 함께 고려해야 합니다. 사용자별 실행 시 데이터를 Program Files에 두는 것은 피해야 합니다.
- 임시 프로필(Temporary profile)로 로그온된 경우에는 어떻게 해야 하나요?
- Temporary 프로필은 오류로 인해 원래 프로필을 로드할 수 없을 때 발행되는 긴급 대피용으로, 로그아웃 시 삭제되어 변경 내용이 사라집니다. 그대로 작업을 계속하면 중요한 데이터가 사라질 위험이 있으므로 피해야 하는 상태입니다. 조사할 때는 곧바로 C:\Users를 손대지 말고, Application 로그와 User Profile Service의 Operational 로그, 필요하다면 Diagnostic 로그를 먼저 확인합니다. 흔한 원인으로는 NTUSER.DAT / USRCLASS.DAT의 속성이나 권한 문제, 로밍 대상 경로가 너무 긴 문제, 불완전한 삭제로 남은 레지스트리 정보 등이 있습니다.
저자 프로필
기사 저자의 프로필 페이지입니다.
Go Komura
합동회사 코무라소프트 대표
Windows 소프트웨어 개발, 기술 상담, 장애 조사를 중심으로 재현이 어려운 장애 조사와 기존 자산이 남아 있는 프로젝트에 강점이 있습니다.
공개 링크