동기화 충돌을 해결하고
이전 설정으로 복구하기
Merge와 Replace Local의 차이, Show Conflicts, 이전 버전 복원, Synced Machines 관리, 동기화 제외 설정까지 현재 공식 문서 기준으로 따라 합니다.
어제 1부에서는 Settings Sync를 켜고 다른 PC에서 사용자 환경을 복원했습니다. 오늘 2부에서는 여러 컴퓨터에서 같은 설정을 서로 다르게 변경했을 때 어떤 값을 남길지 안전하게 판단하는 방법을 배웁니다. Merge와 충돌 비교부터 이전 버전 복원, 장비 관리, 동기화 제외 설정까지 하나의 흐름으로 따라갑니다.
1. 동기화 충돌은 왜 발생하는가
Settings Sync는 사용자 설정, 단축키, Snippet, User Tasks, UI State, Extensions, Profiles를 여러 컴퓨터에서 공유합니다. 한 컴퓨터가 오프라인인 동안 두 컴퓨터에서 같은 설정을 서로 다르게 변경하면, 다시 연결됐을 때 어떤 값을 유지해야 할지 자동으로 판단하기 어려울 수 있습니다.
| 용어 | 의미 | 예시 |
|---|---|---|
| Local | 현재 컴퓨터에 저장된 데이터 | 회사 PC의 editor.fontSize가 14 |
| Remote | Settings Sync 서비스에 저장된 데이터 | 클라우드의 editor.fontSize가 18 |
| Conflict | 같은 항목에 서로 다른 변경이 존재하는 상태 | Local은 14, Remote는 18 |
2. Merge·Replace Local·Merge Manually 차이
이미 다른 컴퓨터에서 동기화를 사용한 계정으로 새 컴퓨터의 Settings Sync를 켜면 로컬과 원격 데이터 처리 방식을 선택하는 화면이 나타날 수 있습니다.
| 선택지 | 동작 | 추천 상황 | 주의점 |
|---|---|---|---|
| Merge | 로컬 설정과 원격 설정을 합칩니다. | 두 컴퓨터의 변경을 모두 살리고 싶을 때 | 같은 키의 값이 다르면 충돌 가능 |
| Replace Local | 원격 설정으로 현재 컴퓨터의 로컬 설정을 덮어씁니다. | 새 PC이고 보존할 로컬 설정이 없을 때 | 현재 PC에만 있던 설정이 사라질 수 있음 |
| Merge Manually... | Merges 뷰에서 항목별로 직접 비교하고 병합합니다. | 기존 PC이거나 중요한 로컬 설정이 있을 때 | 시간은 더 걸리지만 가장 안전함 |
3. 실습 환경 준비하기
1부에서 만든 vscode-sync-lab 프로젝트와 두 개의 VS Code 환경을 사용합니다.
- PC A: 회사 노트북 또는 기존 환경
- PC B: 개인 데스크톱 또는 두 번째 환경
- 계정: 두 PC 모두 동일한 Microsoft 또는 GitHub 계정
- 테스트 설정:
editor.fontSize,editor.minimap.enabled
- 명령 팔레트를 엽니다. Windows·Linux는 Ctrl + Shift + P, macOS는 ⇧ + ⌘ + P입니다.
- Settings Sync: Show Synced Data를 실행합니다.
- Settings 항목에 이전 버전이 존재하는지 확인합니다.
- Settings Sync: Open Local Backups Folder를 실행해 로컬 백업 폴더도 열어 둡니다.
4. 두 PC에 서로 다른 설정 만들기
4-1. PC A 설정
Preferences: Open User Settings (JSON)을 실행하고 다음 값을 추가합니다.
{
"editor.fontSize": 14,
"editor.minimap.enabled": true
}
4-2. PC B 설정
PC B에서는 같은 설정에 다른 값을 사용합니다.
{
"editor.fontSize": 18,
"editor.minimap.enabled": false
}
정상 결과 PC A는 글꼴 크기 14와 Minimap 표시, PC B는 글꼴 크기 18과 Minimap 숨김 상태가 됩니다.
4-3. 충돌이 바로 나타나지 않아도 정상이다
두 컴퓨터가 모두 온라인이면 먼저 저장된 변경이 빠르게 다른 컴퓨터에 반영되어 충돌이 발생하지 않을 수 있습니다. 실제 충돌은 한 컴퓨터가 오프라인인 동안 양쪽에서 같은 항목을 수정한 뒤 다시 동기화할 때 더 자주 발생합니다.
5. Show Conflicts로 차이 비교하기
충돌이 발생하면 VS Code는 Accept Local, Accept Remote, Show Conflicts 옵션을 제공합니다. 어느 쪽이 최신인지 확실하지 않다면 Show Conflicts를 선택합니다.
- 충돌 알림에서 Show Conflicts를 선택합니다.
- Source Control diff와 유사한 비교 편집기에서 Local과 Remote를 확인합니다.
editor.fontSize와editor.minimap.enabled의 차이를 찾습니다.- 필요하면 로컬 설정 파일을 원하는 최종 값으로 직접 수정합니다.
- 수동 수정이 끝나면 로컬 파일을 수락해 원격 데이터에 반영합니다.
예를 들어 글꼴은 PC B 값을 사용하고 Minimap은 PC A 값을 사용하려면 다음처럼 병합할 수 있습니다.
{
"editor.fontSize": 18,
"editor.minimap.enabled": true
}
정상 결과 충돌 표시가 사라지고 최종 설정이 원격 데이터와 다른 동기화 컴퓨터에 반영됩니다.
6. Accept Local과 Accept Remote 선택 기준
| 선택 | 기준 데이터 | 실제 결과 | 선택하기 좋은 상황 |
|---|---|---|---|
| Accept Local | 현재 컴퓨터 | 현재 PC 설정으로 원격 데이터를 덮어씀 | 현재 PC가 가장 최신이고 다른 PC를 이 상태에 맞추려는 경우 |
| Accept Remote | 클라우드 | 원격 데이터로 현재 PC를 덮어씀 | 현재 PC의 변경을 버리고 기존 동기화 환경으로 복구하려는 경우 |
| Show Conflicts | Local과 Remote 모두 | 차이를 확인하고 항목별로 판단 | 어느 쪽이 최신인지 불확실하거나 두 값을 섞어야 하는 경우 |
7. 이전 버전과 로컬 백업으로 복구하기
7-1. 원격 이전 버전 복원
- 명령 팔레트에서 Settings Sync: Show Synced Data를 실행합니다.
- Settings, Keybindings, Snippets, Extensions 등 복원할 항목을 엽니다.
- 타임스탬프가 표시된 이전 버전을 선택합니다.
- 내용을 확인한 뒤 복원 작업을 실행합니다.
7-2. 로컬 백업 폴더 사용
- Settings Sync: Open Local Backups Folder를 실행합니다.
- 리소스 종류와 저장 시각을 기준으로 파일을 찾습니다.
- 복구하려는 JSON 내용을 확인합니다.
- 필요한 항목만 현재
settings.json에 복사합니다.
7-3. 복구 후 확인
- 설정 검색창에
@modified를 입력해 변경된 설정을 확인합니다. - View → Output에서 Log (Settings Sync) 채널을 확인합니다.
- 다른 컴퓨터에서도 같은 값이 적용되는지 확인합니다.
8. Synced Machines 관리하기
각 동기화 컴퓨터에는 VS Code 종류와 운영체제를 기준으로 기본 이름이 부여됩니다. Show Synced Data 화면에서 이름을 바꾸거나 다른 컴퓨터의 Settings Sync를 원격으로 끌 수 있습니다.
- Settings Sync: Show Synced Data를 실행합니다.
- Synced Machines를 찾습니다.
- 각 장비의 이름, Stable·Insiders 구분, 운영체제를 확인합니다.
- 편집 액션으로 이름을 알아보기 쉽게 변경합니다.
- 사용하지 않는 장비의 메뉴에서 Turn off Settings Sync를 선택합니다.
Home-Desktop-WindowsWork-Laptop-WindowsPersonal-MacBookTest-PC
정상 결과 현재 사용하는 장비만 Synced Machines에 남고, 원격으로 끈 장비에서는 더 이상 변경 사항이 동기화되지 않습니다.
9. 동기화 제외 설정과 확장 지정하기
9-1. 컴퓨터마다 달라야 하는 설정 제외
machine 또는 machine-overridable 범위의 설정은 기본적으로 동기화되지 않습니다. 그 밖에 직접 제외할 설정은 settingsSync.ignoredSettings에 추가합니다.
{
"settingsSync.ignoredSettings": [
"editor.fontSize",
"window.zoomLevel"
]
}
이렇게 하면 화면 크기가 다른 PC에서 글꼴 크기와 창 확대 수준을 독립적으로 유지할 수 있습니다.
9-2. 단축키의 플랫폼별 동기화
키보드 단축키는 플랫폼별 동기화가 기본입니다. 플랫폼에 상관없이 같은 단축키 데이터를 사용하려면 다음 값을 사용할 수 있습니다.
{
"settingsSync.keybindingsPerPlatform": false
}
9-3. 특정 확장 제외
Extensions 뷰에서 개별 확장의 동기화를 제외하거나 settingsSync.ignoredExtensions에 확장 ID를 추가합니다.
{
"settingsSync.ignoredExtensions": [
"publisher.extension-name"
]
}
SSH, Dev Container, WSL 같은 Remote 창의 확장은 로컬 창과 Settings Sync로 동기화되지 않습니다. 로컬 확장과 원격 확장을 구분해 확인해야 합니다.
10. Stable과 Insiders 동기화 이해하기
현재 공식 문서에 따르면 VS Code Stable과 Insiders는 기본적으로 서로 다른 Settings Sync 서비스를 사용합니다. 따라서 같은 계정으로 로그인해도 기본 상태에서는 데이터를 공유하지 않습니다.
- Insiders에서 Settings Sync를 켤 때 Stable 동기화 서비스를 선택할 수 있습니다.
- Insiders가 Stable보다 새 버전이므로 데이터 호환 문제가 발생할 수 있습니다.
- 호환 문제가 감지되면 데이터 손상을 막기 위해 Stable의 동기화가 자동으로 비활성화될 수 있습니다.
- 새 Stable 버전으로 업데이트한 뒤 다시 동기화를 켤 수 있습니다.
11. 자주 하는 실수와 복구 방법
| 문제 | 가능한 원인 | 확인 방법 | 복구 방법 |
|---|---|---|---|
| Accept Remote 후 설정이 사라짐 | 로컬 변경을 원격 데이터로 덮어씀 | Show Synced Data에서 이전 버전 확인 | 이전 버전 복원 후 다시 동기화 |
| 충돌 알림이 반복됨 | 여러 PC가 같은 키를 계속 다르게 수정 | Show Conflicts로 동일 키 확인 | 한 번 수동 병합하고 모든 PC의 동기화 완료 확인 |
| 특정 설정만 따라오지 않음 | machine 범위 또는 ignoredSettings | 설정 범위와 제외 목록 확인 | 제외 목록 수정 또는 컴퓨터별 값으로 유지 |
| 확장이 설치되지 않음 | ignoredExtensions, Remote 창, 조직 정책 | Extensions와 설정 목록 확인 | 로컬 창에서 제외 해제 후 다시 동기화 |
| 오래된 PC가 계속 보임 | 장비 동기화를 끄지 않음 | Synced Machines 확인 | 해당 장비의 Turn off Settings Sync 실행 |
| 인증 오류가 반복됨 | OS 키체인·키링·자격 증명 문제 | Account와 Log (Settings Sync) 출력 확인 | 계정 재로그인 후 OS 자격 증명 저장소 점검 |
| Workspace 설정이 복원되지 않음 | User 설정과 프로젝트 설정을 혼동 | User·Workspace 탭 비교 | .vscode 폴더를 프로젝트 저장소로 관리 |
모든 클라우드 데이터를 삭제하려면
Manage 메뉴에서 Settings Sync is On을 선택해 동기화를 끌 때 클라우드 데이터를 삭제하는 옵션을 사용할 수 있습니다. 이 옵션을 선택하면 다음 동기화 활성화는 처음 로그인하는 상태처럼 시작됩니다.
12. 직접 따라 하기와 연습 과제
직접 따라 하기 체크리스트
- Show Synced Data에서 복원 가능한 이전 버전을 확인했다.
- PC A와 PC B에 서로 다른 테스트 설정을 만들었다.
- Merge·Replace Local·Merge Manually의 차이를 설명할 수 있다.
- Show Conflicts에서 Local과 Remote를 비교했다.
- Accept Local과 Accept Remote가 어느 데이터를 덮어쓰는지 이해했다.
- 원격 이전 버전과 로컬 백업 폴더를 모두 확인했다.
- Synced Machines의 장비 이름을 정리했다.
settingsSync.ignoredSettings를 사용했다.settingsSync.ignoredExtensions의 용도를 이해했다.- Stable과 Insiders가 기본적으로 다른 동기화 서비스를 사용한다는 점을 이해했다.
연습 과제 1 — PC별 글꼴 크기 유지
editor.fontSize를 ignoredSettings에 추가합니다.- PC A는 14, PC B는 18로 설정합니다.
- 다른 사용자 설정 하나를 변경해 정상적으로 동기화되는지 확인합니다.
- 글꼴 크기만 PC별로 유지되는지 확인합니다.
연습 과제 2 — 이전 버전 복원
- 테스트 설정 하나를 변경합니다.
- Show Synced Data에서 변경 전 버전을 찾습니다.
- 이전 버전을 복원합니다.
- 다른 PC에도 복원된 값이 적용되는지 확인합니다.
연습 과제 3 — 장비 목록 정리
- Synced Machines를 엽니다.
- 각 장비 이름에 용도와 운영체제를 표시합니다.
- 사용하지 않는 테스트 장비의 동기화를 원격으로 끕니다.
13. 다음 편 예고
프론트엔드·Python·데이터 분석 환경을 Profiles로 분리하고, 여러 PC에서 필요한 프로필과 확장만 안전하게 동기화하는 방법을 다룹니다.
공식 참고 자료
- Visual Studio Code 1.130 릴리스 노트 — 2026년 7월 22일
- VS Code Settings Sync 공식 문서
- User and Workspace Settings 공식 문서
2026년 7월 30일 기준 최신 안정 버전 VS Code 1.130에서 확인했으며, Settings Sync의 동작과 메뉴 설명은 현재 공식 문서를 기준으로 작성했습니다.
'개발 > Visual Studio Code' 카테고리의 다른 글
| VS Code 커맨드 팔레트 2부|파일·심볼·줄 이동과 단축키 지정 (0) | 2026.08.01 |
|---|---|
| VS Code 커맨드 팔레트 초보자 가이드|모든 기능을 키보드로 빠르게 실행하기 (0) | 2026.08.01 |
| VS Code Workspace Trust 2부|신뢰 폴더와 제한 모드 안전하게 관리하기 (0) | 2026.07.29 |
| VS Code Workspace Trust 초보자 가이드: 낯선 프로젝트 안전하게 열기 (0) | 2026.07.28 |
| VS Code Profiles 3부: 설정·확장 문제를 안전하게 해결하는 방법 (0) | 2026.07.27 |