IDCDeploy Overview
사내 VSCode 확장 · 구조 요약

IDC Deploy — 한눈에 보기

IDC 서버(SFTP·FTP)의 파일을 VSCode에서 미리보고, 받아 편집하고, 저장하면 올려주는 확장. 아래는 전체 구조·흐름·기능 정리입니다.

ARCH구조 한눈에

로컬 (VSCode)

워크스페이스 = 원격 remotePath에 매핑

편집·저장하는 실제 파일
다운로드 기준선(mtime·size) 기록
저장 시 업로드 트리거
저장→업로드
열기→비교

확장 (IDC Deploy)

연결 풀 · 사이드탭 · 안전장치

사이드탭 트리 · 미리보기
업로드 방식/충돌/최신 판정
연결 풀 + 병렬 전송
SFTP / FTP
list·get·put

원격 (IDC 서버)

운영/개발 서버의 배포 파일

html·css·js·php·이미지…
여러 서버 등록·전환
폴더·파일 생성/삭제

UI화면 구성 — 이렇게 보입니다

왼쪽부터 액티비티 바 → IDC 사이드탭(원격 트리 + 사용법 패널) → 에디터(읽기전용 미리보기) → 상태바. 트리 우클릭에 생성·삭제 포함.

프로젝트 — index.php (미리보기) — IDC Deploy
🗎
🔍
🖥IDC
🧩
IDC
원격 폴더 구조 +📄 +📁 ⟳ ▤ ↻ ⬍ ⬇ 🖥
📁/var/www/html
📁css
📁inc
📄db.php1.2 KB
📄header.php
📄index.php3.4 KB
📁uploads
사용법 · 바로가기
📄 설정 파일
🖥 서버 선택
⬇ 서버 전체
↻ 재접속
❓ 전체 사용법
▤ 활동 로그
index.php
db.php
읽기전용 · 원격 미리보기
1 2 3 4 5 6 7
<?php $title = "IDC 운영"; include "inc/header.php"; // 미리보기: 로컬에 저장되지 않음 echo render($title); ?>
🖥 IDC: IDC-A ●⑂ main
☁ IDC 원격 · 읽기전용UTF-8PHP
👁미리보기 (읽기전용)
로컬로 다운로드 (편집)
📋경로 복사
+📁원격 폴더 생성
+📄원격 파일 생성
🗑원격에서 삭제

① 트리(파랑=원격, hover ⬇/📋/🗑) · ② 사용법 패널 · ③ ☁ 미리보기 · ④ 상태바 · ⑤ 우클릭 메뉴

로컬 ↔ 원격 비교 (diff)

header.php — 로컬 ↔ 원격(IDC-A)
로컬 · header.php (편집 가능)
<?php $nav = ["home","docs"]; ?> <h1>IDC 운영 콘솔</h1> <nav>메뉴</nav>
원격 · IDC-A (읽기전용)
<?php $nav = ["home","docs"]; ?> <h1>IDC 운영 관리자</h1> <nav>메뉴</nav>

충돌 경고 · 활동 로그

⚠️

업로드 충돌

다른 사람이 원격 파일을 수정했습니다. 그대로 올리면 그 변경이 사라질 수 있습니다.

/var/www/html/inc/header.php
원격과 비교덮어쓰기
출력 · IDC Deploy
=== 폴더 다운로드: 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개 실패 ===

FLOW작업 흐름

01서버 선택사이드탭/상태바
02탐색원격 폴더 트리
03미리보기읽기전용 ☁
04로컬로 다운로드편집 시작
05편집·저장⌘S
06업로드uploadMode
업로드 방식auto 바로 · confirm 확인 후 · manual 수동만
안전장치 — 업로드 전 충돌 감지(diff), 열 때 최신 확인(다시 받기)

FEATURES기능 맵

🗂️

전용 사이드탭

연결 풀로 빠른 원격 폴더 탐색. 상태바에 연결 상태 표시.

👁️

미리보기 vs 다운로드

클릭=읽기전용(로컬에 안 씀), 명시적 다운로드로 편집. ☁ 뱃지로 구분.

⬆️

업로드 방식

서버별 auto/confirm/manual. 저장 시 상태바에 방식 표시.

🛡️

충돌 방지

남이 먼저 바꿨으면 덮어쓰기 전 경고 + 로컬↔원격 diff.

🔄

최신 갱신

열 때 원격이 더 최신이면 다시 받기 안내(autoPull 자동).

병렬 다운로드

폴더/서버 전체를 전용 연결 여러 개로 동시 다운로드(기본 4).

📁

원격 생성·삭제

폴더·파일 생성, 삭제(항상 확인·폴더 재귀).

🖼️

바이너리 업로드

탐색기 우클릭으로 이미지·exe 등도 업로드(폴더 재귀).

🚫

제외(ignore)

기본 + 워크스페이스 + 서버별 glob 패턴 합산.

🧭

경로 복사·패널

경로 복사, 우측 경로 패널로 전체 경로 확인.

📜

활동 로그

탐색·다운로드·업로드 내역을 출력 패널에 실시간 기록.

🔐

안전한 인증

비밀번호는 OS 키체인 저장, SFTP 키 인증 지원.

CODE코드 구조

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        자동 업데이트

REF명령 · 설정

주요 명령
IDC: 설정 파일 생성 / 서버 선택
IDC: 접속된 서버 전체 로컬로 다운로드
IDC: 폴더 전체 다운로드 (우클릭)
IDC: 원격 폴더/파일 생성 · 원격에서 삭제
IDC: 원격으로 업로드 (탐색기 우클릭)
IDC: 제외 항목 선택 (창) — 체크박스로 다운로드 제외
IDC: 현재 파일 원격과 비교
IDC: 재접속 · 활동 로그 보기 · Help
설정기본
uploadMode (서버별)auto/confirm/manual
conflictChecktrue
checkRemoteOnOpentrue
autoPullfalse
downloadConcurrency4
ignore[]
updateUrl""
IDC Deploy v1.0.6 · 구조 요약자세한 사용법 보기