1
2
3
4
5
6
7
<?php
$title = "IDC 운영";
include "inc/header.php";
// 미리보기: 로컬에 저장되지 않음
echo render($title);
?>
IDC 서버(SFTP·FTP)의 파일을 VSCode에서 미리보고, 받아 편집하고, 저장하면 올려주는 확장. 아래는 전체 구조·흐름·기능 정리입니다.
워크스페이스 = 원격 remotePath에 매핑
연결 풀 · 사이드탭 · 안전장치
운영/개발 서버의 배포 파일
왼쪽부터 액티비티 바 → IDC 사이드탭(원격 트리 + 사용법 패널) → 에디터(읽기전용 미리보기) → 상태바. 트리 우클릭에 생성·삭제 포함.
① 트리(파랑=원격, hover ⬇/📋/🗑) · ② 사용법 패널 · ③ ☁ 미리보기 · ④ 상태바 · ⑤ 우클릭 메뉴
다른 사람이 원격 파일을 수정했습니다. 그대로 올리면 그 변경이 사라질 수 있습니다.
=== 폴더 다운로드: inc (48개, 동시 4) === [발견] /var/www/html/inc/db.php [발견] /var/www/html/inc/header.php 스캔 완료: 48개 파일. 다운로드 시작… ✓ inc/db.php (1.2 KB) ✓ inc/header.php (2.0 KB) ✓ inc/lib/util.php (840 B) ✗ inc/big.zip — timeout === 완료: 47개 성공, 1개 실패 ===
auto 바로 · confirm 확인 후 · manual 수동만연결 풀로 빠른 원격 폴더 탐색. 상태바에 연결 상태 표시.
클릭=읽기전용(로컬에 안 씀), 명시적 다운로드로 편집. ☁ 뱃지로 구분.
서버별 auto/confirm/manual. 저장 시 상태바에 방식 표시.
남이 먼저 바꿨으면 덮어쓰기 전 경고 + 로컬↔원격 diff.
열 때 원격이 더 최신이면 다시 받기 안내(autoPull 자동).
폴더/서버 전체를 전용 연결 여러 개로 동시 다운로드(기본 4).
폴더·파일 생성, 삭제(항상 확인·폴더 재귀).
탐색기 우클릭으로 이미지·exe 등도 업로드(폴더 재귀).
기본 + 워크스페이스 + 서버별 glob 패턴 합산.
경로 복사, 우측 경로 패널로 전체 경로 확인.
탐색·다운로드·업로드 내역을 출력 패널에 실시간 기록.
비밀번호는 OS 키체인 저장, SFTP 키 인증 지원.
src/ ├── extension.ts 진입점 · 명령 · 상태바 · 이벤트 ├── config/ │ ├── config.ts 설정 로드 · uploadMode/충돌 해석 │ └── ignore.ts 제외 glob 매칭 ├── connection/ │ ├── types.ts sftp.ts ftp.ts index.ts SFTP/FTP 구현 │ ├── manager.ts 연결 풀 · 직렬화 · 병렬용 createRaw │ └── secrets.ts 비밀번호 키체인 ├── remote/ │ ├── session.ts 활성 서버 · 경로 매핑 │ ├── explorer.ts 트리 · 다운로드(병렬) · 생성/삭제 │ ├── content.ts 읽기전용 미리보기 │ ├── sync.ts 업로드 · 충돌 감지 │ ├── state.ts 다운로드 기준선 │ └── pull.ts 최신 확인 · 비교(diff) └── ui/ ├── pathPanel.ts decorations.ts 경로 패널 · 뱃지 ├── helpView.ts helpPanel.ts 사이드탭/도움말 └── updater.ts 자동 업데이트
| 주요 명령 |
|---|
| IDC: 설정 파일 생성 / 서버 선택 |
| IDC: 접속된 서버 전체 로컬로 다운로드 |
| IDC: 폴더 전체 다운로드 (우클릭) |
| IDC: 원격 폴더/파일 생성 · 원격에서 삭제 |
| IDC: 원격으로 업로드 (탐색기 우클릭) |
| IDC: 제외 항목 선택 (창) — 체크박스로 다운로드 제외 |
| IDC: 현재 파일 원격과 비교 |
| IDC: 재접속 · 활동 로그 보기 · Help |
| 설정 | 기본 |
|---|---|
uploadMode (서버별) | auto/confirm/manual |
conflictCheck | true |
checkRemoteOnOpen | true |
autoPull | false |
downloadConcurrency | 4 |
ignore | [] |
updateUrl | "" |