OneDrive 「파일 온디맨드」와 업무 앱 ── 플레이스홀더가 깨뜨리는 전제와 대처

· · OneDrive, 파일 온디맨드, KFM, Windows, 업무 앱, 클라우드 스토리지, 파일 시스템, 장애 조사, 정보 시스템

「데스크톱에 저장한 CSV를 업무 앱이 읽지 못한다」. 「PC를 바꾼 뒤, 잘 되던 가져오기가 『파일을 찾을 수 없습니다』로 실패한다」. 「탐색기에는 파일이 보이는데 앱에서 열면 오류가 난다」 ── 최근 몇 년, 고객으로부터 이런 상담이 정번이 되었습니다.

조사해 보면 원인은 앱 버그가 아니라 OneDrive의 「데스크톱·문서 자동 백업」(알려진 폴더 이동, KFM)과 「파일 온디맨드」인 경우가 많습니다. 실제 데스크톱은 C:\Users\<이름>\OneDrive\Desktop으로 옮겨졌고, 거기에 보이는 파일 중 일부는 로컬 내용이 없는 「플레이스홀더」입니다. 사용자와 IT는 이 변화를 알아차리지 못한 채 PC를 계속 씁니다.

「파일이 로컬 디스크에 있다」는 업무 앱의 암묵적 전제가, 아무도 결정하지 않은 채 「파일은 클라우드에 있고 로컬에는 겉모습만 있다」는 전제로 바뀌어 버린 것입니다. 중소기업 정보시스템 담당자와 Windows 앱 개발자를 대상으로, 이 글은 Microsoft Learn 1차 자료를 바탕으로 플레이스홀더의 동작, 파일 속성으로 상태를 판정하는 방법, 업무 앱이 빠지는 전형적인 함정, 개발 측과 IT 측이 각각 할 수 있는 일, 「파일이 열리지 않는다」는 상담을 받았을 때의 분류 절차를 정리합니다.

업무 앱의 암묵적 전제가 바뀌는 모습파일이 로컬 디스크에 있다는 업무 앱의 암묵적 전제가, 아무도 결정하지 않은 채, 실체는 클라우드에 있고 로컬에는 겉모습만 있다는 전제로 바뀌었다기존의 암묵적 전제로컬 디스크에 실체가 있다바뀐 전제실체는 클라우드에 있다로컬에는 겉모습만 있다플레이스홀더

그림 1: 「실체는 로컬에 있다」는 전제가, 아무도 결정하지 않은 채 「실체는 클라우드에 있고 로컬에는 겉모습만 있다」로 바뀌었다.

1. 먼저 결론

  • 데스크톱·문서·그림은 KFM으로 C:\Users\<이름>\OneDrive\ 아래로 옮겨져 있을 수 있습니다. 새 PC의 초기 설정에서 켜지기 쉽고, 조직은 정책으로 일괄 적용할 수도 있습니다. 고정 경로를 전제로 한 앱은 여기서 깨집니다.1
  • 현재 동기화 앱에서는 파일 온디맨드가 기본으로 켜져 있습니다. 다른 장치나 웹에서 만든 파일은 로컬 내용이 없는 「온라인 전용」 플레이스홀더로 보입니다.23
  • 플레이스홀더의 실체는 Cloud Files API가 관리하는 재분석 지점(cldflt.sys 미니필터)입니다. 탐색기와 파일 API 양쪽에서 평범한 파일처럼 보이고, 열면 자동으로 다운로드(하이드레이션)됩니다.4
  • 상태는 파일 속성으로 판정할 수 있습니다. FILE_ATTRIBUTE_OFFLINE, RECALL_ON_DATA_ACCESS, PINNED, UNPINNED 등이 표식이고, attrib 명령은 이를 O, P, U 글자로 보여 줍니다. 속성만 확인하는 것으로는 다운로드가 일어나지 않습니다.567
  • 업무 앱의 전형적인 사고는 「열리지 않음」, 「느림」, 「속성 오판」, 「감시 이벤트 폭풍」, 「동기화와의 충돌」의 조합입니다. 오프라인이거나 OneDrive가 멈추면 하이드레이션이 실패하고, 일괄 처리는 모든 파일의 다운로드를 유발합니다.48
  • 앱 측 대응은 「플레이스홀더를 존중하는 것」입니다. 열거 시 속성으로 판정하고 함부로 열지 않으며, 필요하면 FILE_FLAG_OPEN_NO_RECALL을 쓰고, 데이터 폴더를 OneDrive 아래에 두지 않는 것이 기본입니다.910
  • IT 측 대응은 「핀으로 운영」과 「정책으로 제어」입니다. 업무 폴더는 「이 장치에 항상 유지」로 실체를 보장하고, KFM과 파일 온디맨드는 그룹 정책 / Intune으로 의도적으로 구성하십시오. 스토리지 센스가 「쓰지 않는 파일을 온라인 전용으로 되돌릴」 수 있다는 점도 잊지 마십시오.1112

한 문장으로: 「탐색기에 보이는 파일」과 「로컬 디스크에 실체가 있는 파일」은 더 이상 같은 것이 아닙니다.

2. 무엇이 일어나고 있는가 ── KFM과 파일 온디맨드

2.1. 데스크톱이 더 이상 C:\Users\<이름>\Desktop이 아닐 수 있다

OneDrive 동기화 앱에는 알려진 폴더 이동(KFM)이라는 기능이 있습니다. 설정 화면에는 「백업」, 「중요한 폴더 백업」 등으로 보이며, 켜지면 실제 데스크톱·문서·그림이 OneDrive 폴더 아래로 이동(리디렉트)됩니다.1

사용자가 보는 위치 KFM 전 실제 경로 KFM 후 실제 경로
데스크톱 C:\Users\taro\Desktop C:\Users\taro\OneDrive\Desktop
문서 C:\Users\taro\Documents C:\Users\taro\OneDrive\Documents
그림 C:\Users\taro\Pictures C:\Users\taro\OneDrive\Pictures

새 PC의 초기 설정(OOBE)에서 Microsoft 계정이나 회사 계정으로 로그인하면 폴더 백업이 기본 제안으로 널리 나오고, 그대로 진행하면 켜집니다. 조직은 「Windows 알려진 폴더를 OneDrive로 자동 이동」(KFMSilentOptIn) 정책으로 사용자에게 아무것도 묻지 않고 일괄 적용할 수도 있습니다.111

KFM이 켜지는 두 경로새 PC 초기 설정에서 계정으로 로그인하면 폴더 백업이 기본 제안으로 나오고 그대로 진행하면 켜지며, 조직에서는 KFMSilentOptIn 정책이 사용자에게 묻지 않고 일괄 적용한다새 PC의 초기 설정계정으로 로그인백업이 기본으로 제안됨그대로 진행하면 켜짐조직 정책KFMSilentOptIn묻지 않고 일괄 적용KFM 켜짐

그림 2: KFM은 초기 설정의 기본 제안이나 조직의 무응답 적용 정책으로, 아무도 모르게 켜진다.

어색한 점은 탐색기의 겉모습이 거의 바뀌지 않는다는 것입니다. 셸 알려진 폴더 API(SHGetKnownFolderPath와 .NET의 Environment.GetFolderPath)는 이동 후 올바른 경로를 반환하므로, 규칙을 지키는 앱은 계속 동작합니다. 깨지는 것은 설정 파일이나 코드에 C:\Users\%USERNAME%\Desktop 같은 고정 경로를 박아 넣은 앱입니다. PC 교체 후 가져오기가 「파일을 찾을 수 없습니다」로 실패하는 전형적인 패턴이 이것입니다.

KFM 이후 앱의 경로 해석KFM이 실제 데스크톱 등을 OneDrive 아래로 옮긴 뒤, 알려진 폴더 API를 쓰는 앱은 이동 후 올바른 경로로 계속 동작하지만, 고정 경로를 박아 넣은 앱은 파일을 찾지 못한다알려진 폴더 API하드코딩된 고정 경로KFM이 켜짐실제 데스크톱 등이 OneDrive 아래로 이동앱은 경로를 어떻게 해석하는가?이동 후 올바른 경로를 얻어 계속 동작파일을 찾을 수 없음

그림 3: KFM 이후 알려진 폴더 API를 쓰는 앱은 계속 동작하지만, 고정 경로를 하드코딩한 앱은 여기서 깨진다.

2.2. 파일 온디맨드 ── 보이지만 실체는 없다

다른 축은 파일 온디맨드입니다. 켜진 환경에서는 OneDrive의 모든 파일이 탐색기에 보이지만, 파일을 열 때까지 내용은 내려받지 않습니다. 이 기능은 현재 동기화 앱에서 기본으로 켜져 있고, Microsoft도 켠 채로 둘 것을 권장합니다.23

상태는 탐색기의 상태 아이콘으로 구분할 수 있습니다.13

아이콘 상태 로컬 내용
구름 표시 온라인 전용 없음(플레이스홀더만)
흰 배경의 체크 로컬에서 사용 가능 있음(나중에 자동으로 비워질 수 있음)
초록 배경의 흰 체크 이 장치에 항상 유지(핀) 있음(자동 공간 확보 대상 밖)

여기서 중요한 것은 가운데 상태입니다. 한 번 열어 로컬 내용이 생긴 파일은, 사용자의 「공간 확보」나 뒤에서 다룰 스토리지 센스로 다시 온라인 전용이 될 수 있습니다. 「지난달에는 됐는데」 식의 재현하기 어려운 장애의 원인 중 하나입니다.312

파일 온디맨드 세 상태와 전이온라인 전용 파일은 열면 로컬에서 사용 가능해지지만, 공간 확보나 스토리지 센스가 다시 온라인 전용으로 되돌릴 수 있고, 핀된 파일만 자동 공간 확보 대상 밖이다열기(하이드레이션)공간 확보스토리지 센스이 장치에 항상 유지이 장치에 항상 유지핀 해제온라인 전용(구름 표시)로컬에서 사용 가능핀(이 장치에 항상 유지)

그림 4: 파일 온디맨드의 세 상태. 「로컬에서 사용 가능」은 자동으로 온라인 전용으로 돌아갈 수 있고, 핀은 그 대상 밖이다.

3. 플레이스홀더의 실체 ── Cloud Files API와 재분석 지점

파일 온디맨드는 Windows 10 버전 1709에서 도입된 OS 메커니즘, Cloud Files API 위에 구현됩니다. 파일 시스템 쪽 작업 단위는 cldflt.sys라는 파일 시스템 미니필터(서비스 이름 CldFlt, 「Windows Cloud Files Filter Driver」)이고, OneDrive는 이 API를 쓰는 「동기화 공급자」 중 하나입니다.47

플레이스홀더는 기술적으로 재분석 지점입니다. 파일 시스템에는 파일 이름, 크기, 타임스탬프 같은 메타데이터만 있고(약 1KB) 내용 데이터는 없습니다. 앱이 파일을 열고 읽으면 미니필터가 요청을 감지하고, 동기화 공급자에게 데이터 전송을 지시하고, 다운로드가 끝날 때까지 기다린 뒤에 읽기가 진행됩니다. 이 가져오기를 하이드레이션, 로컬 내용을 버리고 플레이스홀더로 되돌리는 일을 디하이드레이션이라고 합니다.4

플레이스홀더를 열 때의 하이드레이션앱이 플레이스홀더를 열고 읽으면 cldflt.sys 미니필터가 요청을 감지하고, 동기화 공급자에게 데이터 전송을 지시한 뒤, 다운로드가 끝날 때까지 기다리고 나서 읽기가 진행된다동기화 공급자cldflt.sys 미니필터업무 앱동기화 공급자cldflt.sys 미니필터업무 앱열기 및 읽기 요청데이터 전송을 지시다운로드 완료읽기가 진행됨

그림 5: 플레이스홀더 읽기는 미니필터가 동기화 공급자에게 데이터를 가져오게 한 뒤에 진행된다.

「재분석 지점」이라는 말을 들으면 「재분석 지점을 감지하면 특별 취급하는」 기존 코드와의 호환성이 걱정되지만, 호환을 위해 Cloud Files API는 동기화 엔진과 %systemroot% 아래 프로세스를 제외한 모두에게 재분석 지점이라는 사실을 숨깁니다. 평범한 앱에서는 「열기만 조금 느린 평범한 파일」로 보입니다. 그 철저한 투명성이 편리한 동시에, 「앱이 알아차리지 못한 채 전제를 깨뜨리는」 이유이기도 합니다.4 재분석 지점 자체의 메커니즘은 「NTFS 내부 구조」에서 설명합니다.

재분석 지점의 은폐와 보이는 모습의 차이플레이스홀더의 실체는 재분석 지점이지만 Cloud Files API는 동기화 엔진 외 프로세스에게 그 사실을 숨기므로, 평범한 앱에서는 열기만 조금 느린 평범한 파일로 보인다동기화 엔진 등그 외 앱플레이스홀더(재분석 지점)어느 프로세스가 열었는가?재분석 지점으로 보임평범한 파일처럼 보임열기만 조금 느려 보임

그림 6: 재분석 지점이라는 사실은 동기화 엔진을 제외한 모두에게 숨겨지고, 평범한 앱에는 평범한 파일로 보인다.

탐색기 속성에서 플레이스홀더는 「크기」는 원래 크기를 보여 주고 「디스크 할당 크기」는 거의 0이라는 특징이 있습니다. 「크기가 있으니 실체가 있을 것」이라는 가정은 여기서 성립하지 않습니다.

속성에서 플레이스홀더가 보이는 모습탐색기 속성에서 플레이스홀더는 크기에 원래 크기를 보여 주고 디스크 할당 크기는 거의 0이므로, 크기가 있으니 실체가 있을 것이라는 가정은 성립하지 않는다플레이스홀더 속성크기는 원래 크기디스크 할당 크기는 거의 0실체가 있을 것이라는 가정로컬 내용이 없다

그림 7: 플레이스홀더는 「크기」에 원래 크기를 보여 주고 「디스크 할당 크기」는 거의 0이다.

4. 파일 속성이 상태를 말해 준다

플레이스홀더 상태는 평범한 파일 속성으로 공개됩니다. 주요한 것은 다음과 같습니다.5

속성 의미
FILE_ATTRIBUTE_OFFLINE 0x00001000 데이터를 즉시 쓸 수 없음(계층형 스토리지 관리의 전통 속성)
FILE_ATTRIBUTE_RECALL_ON_OPEN 0x00040000 물리적인 로컬 내용이 없음. 디렉터리 열거 결과에만 나타남
FILE_ATTRIBUTE_PINNED 0x00080000 사용자가 「항상 로컬에 유지」하려는 의도(핀)
FILE_ATTRIBUTE_UNPINNED 0x00100000 로컬 내용을 유지할 필요가 없음(온라인 전용으로 만들려는 의도)
FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 0x00400000 내용의 일부 또는 전부가 로컬이 아님. 읽으면 원격에서 가져옴

명령 프롬프트의 attrib 명령은 이를 한 글자로 표시하고 설정할 수 있습니다. O는 오프라인 속성, P는 핀, U는 핀 해제입니다.6 OneDrive 파일 온디맨드 상태와의 대응은 Microsoft 문서에 다음과 같이 정리되어 있습니다.7

파일 온디맨드 상태 속성 설정 명령
항상 사용 가능(핀) Pinned(P가 표시됨) attrib +p <path>
로컬에서 사용 가능 P도 U도 아님 attrib -p <path>
온라인 전용 Unpinned(U가 표시됨) attrib +u <path>

주의점 하나. 상태 전환에는 순서가 있습니다. 온라인 전용(U) 파일을 「로컬에서 사용 가능」으로 만들고 싶을 때 -p만 실행하면 U가 남고 실체는 가져와지지 않습니다. Microsoft 문서도 먼저 +p(항상 사용 가능)로 실체를 내려받은 뒤 -p하는 절차를 보여 줍니다.7 기존 상태를 확실히 바꿔야 하는 스크립트에서는 attrib +p -u처럼 반대 속성을 동시에 지우는 편이 안전합니다.

온라인 전용에서 로컬 사용 가능으로 바꾸는 순서온라인 전용 파일에 attrib -p만 실행하면 U 속성이 남고 실체는 가져와지지 않으며, 먼저 attrib +p로 실체를 내려받은 뒤 -p하는 절차가 필요하다attrib -p만attrib +pattrib -p온라인 전용(U)U가 남고 실체는 가져와지지 않음핀(실체 다운로드)로컬에서 사용 가능

그림 8: 온라인 전용에서 바꾸려면 먼저 +p로 실체를 가져온 뒤 -p하는 순서가 필요하다.

PowerShell에서 판정하는 예입니다. 속성만 보는 것으로는 하이드레이션이 일어나지 않으므로, 조사와 일괄 확인에 안심하고 쓸 수 있습니다.

function Test-CloudPlaceholder {
    param([Parameter(Mandatory)][string]$Path)

    $value = [int](Get-Item -LiteralPath $Path -Force).Attributes

    [pscustomobject]@{
        Path               = $Path
        Offline            = ($value -band 0x00001000) -ne 0  # FILE_ATTRIBUTE_OFFLINE
        RecallOnDataAccess = ($value -band 0x00400000) -ne 0  # 내용이 전부 로컬이 아님
        Pinned             = ($value -band 0x00080000) -ne 0  # 이 장치에 항상 유지
        Unpinned           = ($value -band 0x00100000) -ne 0  # 온라인 전용
    }
}

# 문서 폴더 아래 CSV를 일괄 확인한다(내용은 내려받지 않음).
# 경로는 알려진 폴더 API로 해석한다. 표시 이름
# "Documents"를 하드코딩하면 실제 폴더 이름
# (Documents vs. 지역화된 이름)과 KFM 구성에 따라
# 존재하지 않는 경로가 될 수 있다
Get-ChildItem ([Environment]::GetFolderPath('MyDocuments')) -Recurse -Filter *.csv |
    ForEach-Object { Test-CloudPlaceholder $_.FullName } |
    Where-Object RecallOnDataAccess |
    Format-Table -AutoSize

[int]로의 캐스트는 .NET의 FileAttributes 열거형에 RECALL_ON_DATA_ACCESS 같은 이름이 정의되어 있지 않기 때문입니다. 숫자 값에 대한 비트 연산으로 문제 없이 판정할 수 있습니다.

5. 업무 앱이 빠지는 함정

여기가 본론입니다. 플레이스홀더의 투명성은 대개 편리하지만, 전형적인 업무 앱 처리 패턴과 겹치면 다음 여섯 가지 모양으로 드러납니다.

5.1. 열면 바로 다운로드가 시작된다 ── 오프라인에서는 「열리지 않음」

온라인 전용 파일을 열면 그 자리에서 하이드레이션이 시작됩니다. 온라인이고 작은 파일이면 알아차리지 못할 만큼 빠르지만, OneDrive가 멈추었거나 로그아웃·일시 중지되었거나, 네트워크가 불안정하거나, 파일이 크면 「존재하지만 열리지 않는 파일」이 됩니다. 오류는 ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING(0x8007016A, “The cloud file provider is not running”) 같은 클라우드 파일 계열 코드로 돌아오거나, 앱 쪽에서 타임아웃으로 관측될 수 있습니다.8

더 함정인 것은 File.Exists()에 해당하는 존재 확인과, 속성이나 크기 가져오기는 성공한다는 점입니다. 「존재 확인은 통과했는데 읽기는 실패했다」는, 로컬 디스크 직관으로는 설명되지 않는 오류 패턴이 됩니다.

온라인 전용 파일에 접근할 때의 분기존재 확인과 속성·크기 가져오기는 성공하지만, 내용을 읽으면 하이드레이션이 시작되고, OneDrive가 동작 중이고 네트워크가 정상이면 다운로드 후 읽을 수 있으며 그렇지 않으면 0x8007016A 등의 오류나 타임아웃으로 실패한다아니요존재 확인, 또는 속성·크기 가져오기성공내용 읽기하이드레이션 시작OneDrive 동작 중이고 네트워크가 정상인가?다운로드 후 읽을 수 있음0x8007016A 등의 오류, 또는 타임아웃

그림 9: 존재 확인은 성공하고 읽기는 실패할 수 있다. 성패는 OneDrive가 동작 중인지와 네트워크에 달렸다.

5.2. 일괄 처리가 모든 파일의 다운로드를 유발한다

폴더의 모든 파일을 읽는 일괄 처리, 해시 계산, 전문 검색, 자체 제작 백업을 OneDrive 아래 트리에 겨누면 건드린 모든 파일의 하이드레이션이 유발됩니다. 수 GB짜리 폴더에서는 처리가 비정상적으로 느려지고, 다운로드가 디스크를 채우며, 용량이 작은 PC에서는 빈 공간 부족이 다른 장애를 부릅니다. 파일 온디맨드가 아끼려던 용량이 한 번의 전체 스캔으로 사라집니다.

또한 앱이 사용자의 명시적 조작 없이 하이드레이션을 일으키면 Windows가 토스트를 띄우고 사용자에게 차단 선택을 줄 수 있습니다. 한 번 차단되면 그 앱은 이후 다운로드가 계속 실패합니다(설정에서 「자동 파일 다운로드」로 해제할 수 있습니다). 「특정 PC에서만 가져오기가 실패한다」의 원인 중 하나입니다.4

일괄 처리가 모든 파일의 다운로드를 유발하는 과정OneDrive 아래의 일괄 처리는 건드린 모든 파일의 하이드레이션을 유발해 처리 지연과 디스크 압박을 일으키고, 사용자가 토스트에서 차단하면 이후 다운로드가 계속 실패한다아니요OneDrive 아래의 일괄 처리건드린 모든 파일을 하이드레이션처리 지연과 디스크 압박토스트가 뜰 수 있음사용자가 차단했는가?이후 다운로드가 계속 실패다운로드가 계속됨

그림 10: 일괄 처리는 모든 파일의 하이드레이션을 유발하고, 토스트에서 차단되면 이후에도 실패가 이어진다.

5.3. 속성을 예상하지 않은 코드의 오동작

FILE_ATTRIBUTE_OFFLINE이나 RECALL_ON_DATA_ACCESS를 모르는 코드는 예상 밖의 곳에서 오동작합니다.

  • 속성을 완전 일치로 검사(attributes == FileAttributes.Archive 등)하므로 플레이스홀더가 「예상 밖 파일」로 제외되거나 오류로 처리됨
  • 백업·동기화 도구의 제외 판단이 OFFLINE 속성을 「이미 테이프로 보냄」으로 해석하고 건너뛰거나(반대로, 제외했어야 할 모든 파일을 가져옴)
  • 읽기 전용 검사나 아카이브 비트 조작이 속성 조합을 깨뜨림
속성을 예상하지 않은 코드의 오동작 패턴플레이스홀더 속성을 모르는 코드는 완전 일치 속성 검사로 제외·오류 처리하거나, OFFLINE을 오해해 건너뛰거나 전부 가져오거나, 속성 조작이 조합을 깨뜨리는 식으로 오동작한다속성을 예상하지 않은 코드완전 일치 검사OFFLINE을 오해속성 조작이 조합을 깨뜨림예상 밖으로 제외되거나 오류건너뛰기, 또는 전부 가져오기

그림 11: OFFLINE이나 RECALL 계열 속성을 모르는 코드는 제외, 잘못된 건너뛰기, 속성 파괴로 오동작한다.

미니필터 개발자를 위한 Microsoft 지침은 RECALL_ON_DATA_ACCESS가 있는 파일에 함부로 읽기나 쓰기를 내지 말라고 분명히 말합니다. 문서는 커널 드라이버를 대상으로 하지만, 「이 속성이 있는 파일의 내용을 건드리는 것 = 가져오기 비용이 발생한다」는 원칙은 사용자 모드 앱에도 그대로 적용됩니다.10

5.4. FileSystemWatcher와 동기화의 상호작용

OneDrive 아래 폴더를 FileSystemWatcher로 감시하면 사용자 조작뿐 아니라 동기화 앱 활동에서 오는 대량의 이벤트를 받습니다. 다른 장치의 변경이 동기화될 때마다, 하이드레이션이나 디하이드레이션이 속성이나 크기를 바꿀 때마다 Changed 이벤트가 날 수 있습니다. 더하여, 감시해서 가져온 결과를 같은 폴더에 다시 쓰는 설계는 쓰기 → 업로드 → 속성 갱신 → 또 다른 이벤트의 루프로 「변경 알림의 폭풍」이 됩니다. 이벤트 솎기와 실체 확인의 설계는 「FileSystemWatcher 실무 가이드」에서 다루지만, OneDrive 아래에서는 그 필요성이 한 단계 높아집니다.

감시와 되쓰기로 생기는 변경 알림 루프변경 이벤트를 받은 감시 앱이 가져오기 결과를 같은 폴더에 되쓰면, 동기화 앱의 업로드와 속성 갱신이 또 다른 이벤트를 일으키고, 변경 알림의 폭풍이라는 루프가 된다변경 이벤트감시 앱이 가져오기같은 폴더에 되쓰기동기화 앱이 업로드속성 또는 크기가 갱신됨다른 장치 변경의 동기화

그림 12: 가져오기 결과를 같은 폴더에 되쓰면 동기화 앱의 활동이 또 다른 이벤트를 만드는 루프가 된다.

5.5. 배타 잠금 중의 동기화 충돌과 「복사본」 파일

업무 앱이 배타 잠금으로 파일을 연 동안, 동기화 앱은 그 파일을 업로드하거나 갱신할 수 없습니다. 오래 잠금을 쥐는 앱(Access .accdb, 자체 형식 데이터 파일, 로그 파일 등)을 OneDrive 아래에 두면 동기화 오류가 일상 상태가 됩니다. 반대로 같은 파일을 여러 PC에서 편집하면 동기화 앱은 양쪽 판을 지키려 하고 PC 이름이 붙은 중복 파일이나 「— 복사본」 같은 충돌 복사본을 만듭니다. 「한 폴더, 한 파일」을 전제로 한 가져오기는 이 중복에서 오동작합니다. 잠금 설계의 기초는 「파일 연계의 배타 제어 기초 지식」을 보십시오.

배타 잠금과 다중 PC 편집이 일으키는 동기화 문제앱이 배타 잠금으로 파일을 연 동안 동기화 앱은 갱신할 수 없어 동기화 오류가 일상이 되고, 같은 파일을 여러 PC에서 편집하면 충돌 복사본이 생겨 한 폴더 한 파일 전제가 무너진다앱이 배타 잠금으로 연다동기화 불가, 오류가 일상같은 파일을 여러 PC에서 편집충돌 복사본이 생김PC 이름 또는 복사본 중복한 폴더 한 파일 전제가 무너짐

그림 13: 배타 잠금은 동기화 오류를 일상으로 만들고, 여러 PC에서의 편집은 충돌 복사본으로 오동작을 부른다.

5.6. 바이러스 백신과 검색 인덱서가 하이드레이션을 유발한다

파일 내용을 읽는 것은 업무 앱만이 아닙니다. 바이러스 백신의 전체 검사와 검색 인덱서도 플레이스홀더의 내용을 건드리면 하이드레이션을 유발합니다. Microsoft Defender 등은 주문형 검사 때 RECALL_ON_DATA_ACCESS 속성이 있는 파일을 건너뛰지만, 그것은 제품 측 대응이며 모든 보안 제품이 같은 배려를 한다고 가정할 수 없습니다. 「검사 시간마다 밤마다 네트워크와 디스크가 꽉 찬다」거나 「온라인 전용이어야 할 파일이 아침이면 모두 실체화되어 있다」는 증상이 보이면 이 계열을 의심하십시오.14

보안 제품이나 검색 인덱서가 유발하는 하이드레이션전체 검사나 검색 인덱서가 플레이스홀더 내용을 건드리면, RECALL 속성을 존중하는 제품은 건너뛰지만 그렇지 않은 제품은 모든 파일을 하이드레이션해 야간 대역 압박이나 아침 실체화를 일으킨다존중하는 제품존중하지 않는 제품전체 검사 또는 검색 인덱서RECALL 속성을 존중하는가?플레이스홀더를 건너뜀내용을 건드리고 하이드레이션밤에 대역과 디스크가 꽉 참아침이면 파일이 모두 실체화됨

그림 14: 속성을 존중하지 않는 검사는 모든 파일의 하이드레이션을 유발하고, 야간 부하나 아침 실체화로 나타난다.

6. 앱 개발 측 대응 ── 플레이스홀더를 존중하라

개발자로서의 기본 방침은 플레이스홀더를 「깨진 파일」이 아니라 「가져오기 비용이 있는 파일」로 다루는 것입니다.

  • 열거 시 속성으로 판정하고, 함부로 열지 마십시오. 폴더 스캔에서는 먼저 속성(4장의 판정)으로 온라인 전용인지 확인하고, 내용이 필요한 파일만 여십시오. 「없어도 치명적이지 않은」 처리 ── 로그 수집, 해시 계산, 미리보기 생성 ── 에는 플레이스홀더를 건너뛰는 선택지를 주십시오.
// .NET의 FileAttributes에 정의되지 않은 값을 숫자로 정의
const FileAttributes RecallOnDataAccess = (FileAttributes)0x00400000;
const FileAttributes RecallOnOpen       = (FileAttributes)0x00040000;

static bool IsCloudPlaceholder(FileAttributes attributes) =>
    (attributes & (RecallOnDataAccess | RecallOnOpen | FileAttributes.Offline)) != 0;

foreach (var file in new DirectoryInfo(watchFolder).EnumerateFiles("*.csv"))
{
    if (IsCloudPlaceholder(file.Attributes))
    {
        log.Warn($"{file.Name}은(는) 온라인 전용이므로 이번에는 건너뜀");
        continue;
    }
    Import(file.FullName);
}
열거 시 속성으로 판정한 뒤 여는 경로폴더 스캔에서는 먼저 열거 시 속성을 확인하고, 플레이스홀더이면 건너뛰고 경고 로그를 남기며, 나머지 파일만 가져오기를 실행해 함부로 하이드레이션하지 않는다아니요열거 시 속성을 확인플레이스홀더인가?건너뛰고 경고 로그를 남김가져오기를 실행내용이 필요한 파일만 여는 방침

그림 15: 열거 시 속성으로 판정하고 플레이스홀더는 열지 않고 건너뛰어, 함부로 하이드레이션하지 않는다.

  • FILE_FLAG_OPEN_NO_RECALL은 「다운로드하지 않는다」의 보장이 아닙니다. CreateFile에 이 플래그를 지정하면 「얻은 데이터를 원격 쪽에 남겨 로컬 스토리지에 되쓰지 않는다」는 의도를 나타낼 수 있습니다. 그러나 이것은 얻은 데이터를 로컬에 상주시키지 않기 위한 플래그일 뿐, 내용을 읽으면 데이터 전송 자체는 일어납니다. 대역과 지연 자체를 피하고 싶다면 속성, 크기, 타임스탬프만으로 끝내십시오 ── 읽기 액세스를 요청하지 마십시오(액세스 권한 0으로 열거나, 열거 결과의 메타데이터를 쓰십시오). 그것이 가장 안전합니다.9
FILE_FLAG_OPEN_NO_RECALL의 효과와 한계FILE_FLAG_OPEN_NO_RECALL은 얻은 데이터를 로컬에 상주시키지 않는 플래그이며, 내용을 읽으면 데이터 전송 자체는 일어나므로, 전송을 피하려면 속성 같은 메타데이터만으로 끝내는 것이 가장 안전하다NO_RECALL 플래그로 열기내용을 읽음데이터 전송이 일어남로컬에 상주하지 않음메타데이터만으로 끝냄전송이 없음, 가장 안전

그림 16: FILE_FLAG_OPEN_NO_RECALL은 로컬 상주만 막을 뿐, 전송 자체를 피하려면 메타데이터만으로 끝내라.

  • 오류 메시지에 「이것은 OneDrive 아래입니다」를 넣으십시오. 읽기 실패 때 대상 경로가 %OneDrive% 아래인지 확인하고 메시지에 넣기만 해도 현장과 헬프데스크의 분류 시간이 크게 줄어듭니다. 0x8007016A 같은 클라우드 파일 계열 오류를 감지하면 「OneDrive 상태를 확인해 주십시오」라고 사용자에게 알리는 것이 이상적입니다.
  • 앱의 데이터 폴더를 OneDrive 아래에 두지 마십시오. KFM 환경에서는 「문서」도 OneDrive 아래입니다. 앱의 설정, 데이터베이스, 작업 파일은 %ProgramData%%LocalAppData%에 두고, 기본 저장 위치나 기본 가져오기 폴더로 데스크톱이나 문서를 고르지 마십시오. 무엇을 어디에 둘지는 「Windows 앱 데이터 저장 위치를 고르는 방법」에 정리되어 있습니다.
  • 사용자가 OneDrive 아래 위치를 골랐을 때의 동작을 정하십시오. 저장 위치를 사용자가 고르게 하는 앱이라면, 고른 경로가 OneDrive 아래(OneDrive / OneDriveCommercial 환경 변수의 경로 아래)일 때 경고하거나, 잠금 파일이나 DB 배치만 거부하는 식의 설계 결정을 사전에 명세에 넣으십시오.

7. IT 측 대응 ── 핀과 정책으로 제어하라

IT 입장에서 현실적인 운영은 「파일 온디맨드를 통째로 끄는 것」이 아니라 업무에 필요한 곳에만 실체를 보장하는 것입니다.

  • 업무 앱이 읽는 폴더를 핀하십시오. 탐색기 오른쪽 클릭 메뉴에서 「이 장치에 항상 유지」를 고르거나, 이미징 스크립트에서 attrib +p -u <folder> /s /d를 실행하십시오(이미 온라인 전용인 파일이 섞여 있어도 확실히 핀으로 바꾸려면 -u를 동시에 지정합니다). 핀된 파일은 로컬에 실체가 보장되고, 뒤에서 다룰 자동 온라인 전용 변환의 대상 밖이기도 합니다.72
  • KFM과 파일 온디맨드는 「어느새 켜져 있었다」가 아니라 「의도적으로」 구성하십시오. 주요 정책(그룹 정책 / Intune)은 다음과 같습니다.111
목적 정책(레지스트리 값) 효과
파일 온디맨드 제어 Use OneDrive Files On-Demand (FilesOnDemandEnabled) 켜짐: 새 사용자는 기본이 온라인 전용. 꺼짐: 고전적 전체 동기화
KFM 일괄 적용 Silently move Windows known folders to OneDrive (KFMSilentOptIn) 사용자 조작 없이 데스크톱 등을 이동
KFM 금지 Prevent users from moving their Windows known folders to OneDrive (KFMBlockOptIn) 알려진 폴더 이동을 금지
KFM 끄기 금지 Prevent users from redirecting their Windows known folders to their PC (KFMBlockOptOut) 사용자가 끄는 것을 금지
팀 사이트 용량 절감 Convert synced team site files to online-only (DehydrateSyncedTeamSites) 동기화된 팀 사이트를 온라인 전용으로(실체가 사라지는 방향임에 주의)
  • 스토리지 센스가 어떻게 움직이는지 아십시오. 스토리지 센스에는 며칠 동안 열지 않은 클라우드 파일을 자동으로 온라인 전용으로 되돌리는 기능이 있고, 일수는 정책(ConfigStorageSenseCloudContentDehydrationThreshold)으로 구성할 수 있습니다. 기본값은 0(자동으로 되돌리지 않음)이지만, 사용자가 설정 화면에서 켰거나 조직이 저용량 장치에 구성했다면 「지난주에 열었던 파일이 구름 아이콘으로 돌아왔다」가 정상 동작으로 일어납니다. 핀된 파일은 대상 밖이므로 「업무 폴더를 핀한다」는 여기서도 통합니다.122
스토리지 센스의 자동 온라인 전용 변환 분기스토리지 센스의 자동 공간 확보에서 핀된 파일은 대상 밖이라 실체가 유지되고, 핀되지 않은 채 며칠 열지 않은 파일은 온라인 전용으로 되돌아간다아니요아니요스토리지 센스 자동 공간 확보핀되어 있는가?대상 밖, 실체 유지며칠 동안 열지 않았는가?온라인 전용으로 되돌림실체 유지기본 0은 자동으로 되돌리지 않음

그림 17: 스토리지 센스는 며칠 열지 않은 파일을 온라인 전용으로 되돌리지만, 핀은 대상 밖이다.

  • 파일 온디맨드를 끄기 전에 영향을 추정하십시오. FilesOnDemandEnabled를 끄면 고전적 전체 다운로드 동기화가 되지만, 디스크 소비와 첫 동기화의 대역 부하가 급증합니다. Microsoft는 켠 채로 둘 것을 권장하며, 끄는 일은 「대상 사용자의 데이터 양이 적다」와 「디스크 여유가 있다」를 확인한 뒤의 한정 조치로 보아야 합니다.112
  • 지원 절차에 넣으십시오. 다음 장의 분류 절차를 「데스크톱의 파일이 열리지 않는다」 문의 템플릿에 넣으면, 담당자가 바뀌어도 대응 품질이 유지됩니다.

8. 분류 절차 ── 「파일이 열리지 않는다」는 상담을 받았을 때

상담을 받으면 위에서부터 확인하십시오.

# 확인할 것 방법 알게 되는 것
1 경로가 OneDrive 아래인가? echo %OneDrive%로 동기화 루트를 확인하고 대상 경로와 맞춘다. 탐색기 주소 표시줄에서 「데스크톱」의 실제 경로도 확인 KFM / OneDrive가 관여하는지
2 파일의 상태 attrib <path>로 U(온라인 전용), P(핀), O를 확인. 속성에서 「디스크 할당 크기」도 본다 실체가 로컬인지, 플레이스홀더인지
3 OneDrive가 동작 중인가 작업 표시줄 아이콘(로그인, 일시 중지, 오류), Get-Process OneDrive 하이드레이션이 가능한지. 0x8007016A는 전형적으로 중지 또는 잘못된 구성8
4 네트워크 사내 프록시, 대역, OneDrive 서비스 도달성 다운로드 자체가 가능한지
5 디스크 여유 대상 볼륨의 빈 공간. 용량이 낮으면 OneDrive가 다운로드를 막는 정책도 있다 하이드레이션 실패의 다른 요인
6 실패 기록 앱의 오류 코드와 발생 시각을 적고, 동기화 앱의 오류 표시와 맞춘다 앱 측 문제인지 OneDrive 측 문제인지

응급은 대상 폴더를 오른쪽 클릭하고 「이 장치에 항상 유지」를 고르는 것(또는 attrib +p /s /d)입니다. 그러면 실체가 로컬에 맞춰지고 업무를 재개할 수 있습니다. 그 위에서 본질 원인이 앱 측(6장)인지 IT 측(7장)인지 정하고 항구 대응으로 가십시오.

응급에서 항구 대응으로 가는 경로응급으로 대상 폴더를 이 장치에 항상 유지로 두면 실체가 로컬에 맞춰져 업무를 재개할 수 있고, 그 위에서 본질 원인이 앱 측인지 IT 측인지 정해 항구 대응으로 간다앱 측IT 측응급으로 핀실체가 로컬에 맞춰짐업무 재개본질 원인은 어디인가?6장 대응으로7장 대응으로

그림 18: 응급은 핀해서 실체를 맞추고 업무를 재개하는 것이고, 항구 대응은 앱 측인지 IT 측인지 정한 뒤에 진행한다.

여기까지 확인했는데 「경로가 OneDrive 아래가 아니고」 「플레이스홀더도 아니라면」, 공유 폴더나 경로 길이 같은 다른 정번 원인으로 갑니다. 「네트워크 드라이브와 UNC 경로의 함정」과 「MAX_PATH와 Windows 경로·파일 이름의 함정」이 그다음 지도입니다.

9. 정리

  • KFM은 실제 데스크톱·문서·그림을 C:\Users\<이름>\OneDrive\ 아래로 옮겼을 수 있습니다. 고정 경로를 전제로 한 앱은 여기서 깨집니다. 알려진 폴더 API로 해석하는 것이 첫걸음입니다.
  • 파일 온디맨드는 기본으로 켜져 있고, 로컬 내용이 없는 플레이스홀더는 당연하게 존재합니다. 플레이스홀더는 Cloud Files API(cldflt.sys)의 재분석 지점이며, 열면 자동으로 하이드레이션됩니다.
  • 상태는 파일 속성(OFFLINE / RECALL_ON_DATA_ACCESS / PINNED / UNPINNED)으로 판정할 수 있고, attrib에서는 O, P, U로 보입니다. 속성만 확인하는 것으로는 다운로드가 일어나지 않습니다.
  • 업무 앱 사고는 오프라인 시 하이드레이션 실패, 일괄 처리의 전체 다운로드, 속성을 예상하지 않은 코드, FileSystemWatcher와 동기화의 상호작용, 배타 잠금과 동기화의 충돌, 보안 제품이 유발하는 하이드레이션으로 나타납니다.
  • 앱 측의 기본은 「속성으로 판정하고 함부로 열지 않기」, 「데이터 폴더를 OneDrive 아래에 두지 않기」, 「오류 때 OneDrive 아래라고 말하기」입니다.
  • IT 측에서는 「업무 폴더 핀」과 「KFM·파일 온디맨드·스토리지 센스의 정책 제어」로 의도한 상태를 만듭니다.
  • 분류는 경로 → attrib → OneDrive 동작 → 네트워크 → 여유 공간 → 기록 순으로 기계적으로 걸을 수 있습니다.

다음에 「파일은 있는데 열리지 않는다」는 상담을 받으면, 먼저 이것을 물으십시오.

그 파일은 정말 로컬 디스크에 있습니까? 아니면 클라우드의 겉모습만 앉아 있습니까?

관련 기사

관련 상담 영역

합동회사 코무라소프트는 OneDrive와 클라우드 스토리지가 얽힌 업무 앱 장애 ── 「잘 되던 가져오기가 PC 교체 뒤 안 된다」, 「특정 PC에서만 파일이 열리지 않는다」 ── 의 조사, 플레이스홀더를 전제로 한 파일 처리·감시 처리의 설계와 수정, KFM / 파일 온디맨드 환경의 저장 위치 설계 리뷰를 다룹니다. 증상을 나누는 단계부터여도 괜찮습니다 ── 부담 없이 연락해 주십시오.

참고 링크

  1. Microsoft Learn, Redirect and move Windows known folders to OneDrive. KFM이 데스크톱·문서·그림을 OneDrive 아래로 옮긴다는 점, 그리고 제안·무응답 적용·끄기 금지·이동 금지 정책에 대해.  2 3 4

  2. Microsoft Learn, Recommended sync app configuration. 파일 온디맨드가 기본으로 켜져 있고 켠 채로 두는 것이 권장된다는 점, 스토리지 센스가 「핀되지 않은 로컬 사용 가능 파일」을 정리한다는 점에 대해.  2 3 4 5

  3. Microsoft Support, Save disk space with OneDrive Files On-Demand for Windows. 파일 온디맨드의 세 상태와 「이 장치에 항상 유지」, 「공간 확보」 조작에 대해.  2 3

  4. Microsoft Learn, Build a Cloud Sync Engine that Supports Placeholder Files. Cloud Files API 개요, 플레이스홀더가 약 1KB의 메타데이터만 갖고 열면 자동 하이드레이션된다는 점, 재분석 지점이 동기화 엔진과 %systemroot% 아래 외 프로세스에게 숨겨진다는 점, 백그라운드 하이드레이션의 토스트와 차단에 대해.  2 3 4 5 6

  5. Microsoft Learn, File Attribute Constants. FILE_ATTRIBUTE_OFFLINE, RECALL_ON_OPEN, RECALL_ON_DATA_ACCESS, PINNED, UNPINNED의 정의와 값에 대해.  2

  6. Microsoft Learn, attrib. attrib 명령 구문과 O(오프라인), P(핀), U(핀 해제)를 포함한 속성 플래그에 대해.  2

  7. Microsoft Learn, Query and set Files On-Demand states in Windows. attrib으로 파일 온디맨드 상태를 확인하고 +p, -p, +u로 설정하는 점, CldFlt 서비스에 대해.  2 3 4 5

  8. Microsoft Learn, Error 0x8007016a when copying files in OneDrive. 오류 0x8007016A “The cloud file provider is not running”이 OneDrive가 잘못 구성되었거나 멈춘 때 발생한다는 점과 해결 단계에 대해.  2 3

  9. Microsoft Learn, CreateFileW function (fileapi.h). FILE_FLAG_OPEN_NO_RECALL이 「요청한 데이터를 원격 쪽에 남겨 로컬 스토리지로 되돌리지 않는다」는 플래그라는 점(데이터 획득 자체를 막지 않음), 액세스 권한 0으로 열어 속성을 얻는 점에 대해.  2

  10. Microsoft Learn, Handling placeholders. 플레이스홀더에 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS를 설정해야 한다는 점, 이 속성이 있는 파일에 대한 부주의한 읽기·쓰기가 불필요한 하이드레이션이나 데이터 손상을 부른다는 점에 대해.  2

  11. Microsoft Learn, IT Admins - Use OneDrive policies to control sync settings. GPO/Intune으로 OneDrive 동기화 앱을 구성하는 정책, 그중 FilesOnDemandEnabled, KFMSilentOptIn, KFMBlockOptIn, KFMBlockOptOut, DehydrateSyncedTeamSites에 대해.  2 3 4

  12. Microsoft Learn, Policy CSP - Storage. 스토리지 센스가 며칠 열지 않은 클라우드 파일을 온라인 전용으로 만들 수 있다는 점, 기본값 0(자동으로 되돌리지 않음), 0–365일 구성에 대해.  2 3

  13. Microsoft Support, What do the OneDrive icons mean?. 탐색기에 보이는 구름·체크 등 상태 아이콘의 의미에 대해. 

  14. Microsoft Learn, Plan for an Azure File Sync deployment. 바이러스 백신 검사가 RECALL_ON_DATA_ACCESS 속성이 있는 파일의 리콜을 일으킬 수 있다는 점, Microsoft Defender 등이 주문형 검사 때 이 속성이 있는 파일을 건너뛴다는 점에 대해. 

같은 태그를 공유하는 최신 기사입니다. 더 가까운 주제로 지식을 넓힐 수 있습니다.

이 기사와 가까운 토픽 페이지입니다. 기사를 출발점 삼아 관련 서비스와 다른 기사로 이어집니다.

이 기사는 다음 서비스 페이지로 이어집니다. 가까운 입구부터 확인해 주세요.

자주 묻는 질문

이 기사 주제에 대해 상담 시 자주 나오는 질문을 모았습니다.

데스크톱에 둔 CSV를 업무 앱이 「파일을 찾을 수 없습니다」라고 하며 읽지 못합니다. 왜인가요?
많은 경우 데스크톱 폴더 자체가 OneDrive의 알려진 폴더 이동(KFM)으로 C:\Users\<사용자명>\OneDrive\Desktop 아래로 옮겨졌거나, 파일이 온라인 전용 플레이스홀더가 된 상태입니다. C:\Users\<사용자명>\Desktop 같은 고정 경로를 전제로 한 앱은 이동 뒤에 파일을 찾지 못합니다. 경로가 맞아도 OneDrive가 멈추었거나 네트워크가 불안정하면 온라인 전용 파일은 열리지 않을 수 있습니다. 먼저 대상 경로가 OneDrive 아래인지 확인하고, attrib 명령으로 U(온라인 전용)가 붙어 있는지 보십시오. 응급으로는 오른쪽 클릭 메뉴의 「이 장치에 항상 유지」로 실체를 로컬에 확보할 수 있습니다.
프로그램에서 파일이 온라인 전용인지 판정할 수 있나요?
있습니다. 온라인 전용 플레이스홀더에는 FILE_ATTRIBUTE_OFFLINE과 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS(0x00400000) 같은 속성이 붙으므로, 내용을 다운로드하지 않고도 파일 속성만으로 상태를 판정할 수 있습니다. 속성을 읽거나 폴더를 열거하는 것만으로는 하이드레이션(다운로드)이 일어나지 않습니다. .NET에서는 FileAttributes에 정의되지 않은 값이 있으므로 정수로 캐스트한 뒤 비트 연산으로 검사합니다. 내용을 읽지 않고 열어야 한다면 CreateFile의 FILE_FLAG_OPEN_NO_RECALL 같은 수단도 있습니다.
파일 온디맨드를 끄면 문제가 해결되나요?
끄는 일은 최후의 수단으로 보십시오. 끄면 동기화 범위의 모든 파일이 로컬로 내려가므로 디스크 용량과 첫 동기화의 네트워크 부하가 커지고, Microsoft도 켠 채로 둘 것을 권장합니다. 실무에서는 업무 앱이 읽는 폴더만 「이 장치에 항상 유지」(핀)하는 편이 유연합니다. 더 근본적으로는 앱의 데이터 폴더와 가져오기 폴더를 OneDrive 관리 아래에 두지 않도록 다시 설계하는 것이 확실한 수정입니다.
「이 장치에 항상 유지」로 했는데 일부 파일이 결국 구름 아이콘으로 돌아갑니다. 왜인가요?
먼저 attrib 명령으로 파일에 정말 핀(P 속성)이 붙어 있는지 확인하십시오. 핀된 파일은 스토리지 센스의 자동 온라인 전용 변환 대상이 아니지만, 한 번 열어서 「로컬에서 사용 가능」만 된 파일은 스토리지 센스 설정과 정책에 따라 일정 기간 뒤에 온라인 전용으로 돌아갈 수 있습니다. 사용자 자신의 「공간 확보」 조작과, 팀 사이트 파일을 온라인 전용으로 만드는 정책(DehydrateSyncedTeamSites)도 구름 아이콘을 되돌립니다. 업무상 반드시 로컬에 있어야 하는 폴더는 폴더 단위로 핀해서 운영하십시오.

저자 프로필

기사 저자의 프로필 페이지입니다.

Go Komura

합동회사 코무라소프트 대표

Windows 소프트웨어 개발, 기술 상담, 장애 조사를 중심으로 재현이 어려운 장애 조사와 기존 자산이 남아 있는 프로젝트에 강점이 있습니다.

블로그 목록으로 돌아가기