IDC Deploy 사용 가이드
IDC 서버(SFTP·FTP)의 파일을 VSCode에서 받아 보고, 편집·저장하면 자동으로 올려주는 사내 전용 확장입니다. 다운로드 없이 미리보고, 필요할 때만 로컬로 받아 편집합니다.
01 — 시작하기빠른 시작
- 설정 만들기 — Cmd/Ctrl + Shift + P → “IDC: 설정 파일 생성”. 열린
.vscode/idc-deploy.json에 서버 정보를 입력합니다. - 서버 선택 — 왼쪽 액티비티 바의 IDC 탭에서 상단 “서버 선택”, 또는 하단 상태바의
IDC: …를 클릭합니다. - 열기 · 편집 — 트리에서 파일 클릭 = 미리보기, “로컬로 다운로드”를 눌러 편집한 뒤 저장하면 서버로 올라갑니다.
02 — 설정서버 설정
프로젝트 루트의 .vscode/idc-deploy.json에 서버를 등록합니다. 서버마다 프로토콜·경로가 달라도 됩니다.
{
"ignore": [".vscode", "*.map"],
"uploadMode": "confirm",
"servers": [
{
"name": "IDC-A (운영)",
"protocol": "sftp",
"host": "10.0.1.10",
"port": 22,
"username": "company",
"remotePath": "/var/www/html",
"uploadMode": "confirm",
"ignore": ["tmp", "*.bak"]
}
]
}서버 파라미터
각 서버 객체에 넣을 수 있는 값입니다. 필수 표시가 없는 항목은 생략 가능합니다.
| 파라미터 | 필수 | 값 / 예시 | 설명 |
|---|---|---|---|
name | ✔ | "IDC-A (운영)" | 서버 표시 이름. “서버 선택” 목록과 상태바에 나옵니다. |
protocol | ✔ | "sftp" · "ftp" | 접속 프로토콜. |
host | ✔ | "10.0.1.10" | 서버 IP 또는 도메인. |
username | ✔ | "company" | 접속 계정. 비밀번호는 최초 접속 시 입력 → 키체인 저장. |
remotePath | ✔ | "/var/www/html" | 원격 루트 경로. 이 경로가 로컬 워크스페이스 루트에 대응됩니다. |
port | 22 / 21 | 포트. 생략 시 SFTP=22, FTP=21. | |
uploadMode | "auto"·"confirm"·"manual" | 저장 시 업로드 방식(③ 참고). 생략 시 파일 기본값을 따름. | |
privateKeyPath | "/Users/you/.ssh/id_rsa" | SFTP 키 인증용 개인키 경로. 지정 시 비밀번호 대신 키로 접속. | |
secure | true / false | FTP 전용. 명시적 TLS(FTPS) 사용 여부. 기본 false. | |
ignore | ["tmp", "*.bak"] | 이 서버에서 추가로 제외할 glob 패턴(⑦ 참고). |
파일 최상위 옵션 (모든 서버 공통)
| 파라미터 | 값 / 예시 | 설명 |
|---|---|---|
servers | 배열 | 서버 정의 목록. 항목을 추가하면 여러 서버를 등록할 수 있습니다. |
uploadMode | "confirm" | 모든 서버의 기본 업로드 방식. 서버별 uploadMode가 있으면 그쪽이 우선. |
ignore | [".vscode"] | 모든 서버에 공통 적용할 제외 패턴. |
여러 서버 등록
servers 배열에 객체를 더 넣으면 됩니다. 등록 후 “IDC: 서버 선택”에서 전환할 수 있습니다.
"servers": [
{ "name": "IDC-A (운영)", "protocol": "sftp", "host": "10.0.1.10", "username": "company", "remotePath": "/var/www/html", "uploadMode": "confirm" },
{ "name": "IDC-B (개발)", "protocol": "ftp", "host": "10.0.2.20", "username": "company", "remotePath": "/home/www", "uploadMode": "auto" }
]경로 매핑
remotePath의 내용물이 워크스페이스 루트에 그대로 대응됩니다 — 원격 /var/www/html/inc/db.php ↔ 로컬 <워크스페이스>/inc/db.php.
i비밀번호는 설정 파일에 넣지 않습니다. 최초 접속 시 입력창이 뜨고 OS 키체인에 암호화 저장됩니다. SFTP는
privateKeyPath로 키 인증도 가능합니다.03 — 설정저장 시 업로드 방식
uploadMode로 서버별 동작을 정합니다. 지금 보는 파일의 방식은 우측 하단 상태바에 표시됩니다.
| 값 | 동작 |
|---|---|
"auto" | 저장하면 바로 업로드 |
"confirm" | 저장 시 확인 후 업로드 |
"manual" | 저장해도 안 올라감 (수동 업로드만) |
04 — 안전충돌 방지 · 최신 갱신 · 비교
다운로드 시점의 원격 상태(수정시각·크기)를 기록해 두고 비교합니다.
- 덮어쓰기 사고 방지 — 저장·업로드 직전에 원격을 확인해, 내가 받은 뒤 다른 사람이 수정했으면 덮어쓰기 전에 경고하고 비교(diff)를 제공합니다.
- 오래된 로컬 갱신 — 파일을 열거나 전환할 때 원격이 더 최신이면 다시 받기를 안내합니다.
autoPull을 켜면 로컬 변경이 없을 때 자동으로 갱신됩니다. - 직접 비교 — Cmd/Ctrl + Shift + P → “IDC: 현재 파일 원격과 비교”. 왼쪽=로컬, 오른쪽=원격으로 diff가 열립니다.
i끄기 — 워크스페이스 전체는 설정
idcDeploy.conflictCheck·idcDeploy.checkRemoteOnOpen으로, 서버별로는 idc-deploy.json의 서버 객체 안에 "checkRemoteOnOpen": false 등을 넣어 끕니다(서버 설정 우선).05 — 설정설정 파일 위치
설정은 프로젝트 폴더의 .vscode/idc-deploy.json에 저장됩니다. “IDC: 설정 파일 생성” 명령으로 만들고, servers 배열에 여러 서버를 등록할 수 있습니다.
06 — 사용열기 · 다운로드
- 클릭 → 읽기전용 미리보기 (로컬에 파일이 생기지 않음). 탭에 ☁ 뱃지로 로컬과 구분됩니다.
- 로컬로 다운로드 (미리보기 상단 버튼·우클릭) → 실제 저장 + 편집 가능.
- 트리 우측 상단 ☁⬇ 버튼 = 서버 전체(remotePath 시작점부터) 다운로드.
- 폴더 우클릭 → “폴더 전체 다운로드” = 그 폴더만 재귀 다운로드(제외 규칙 적용).
i폴더/서버 다운로드 시 출력(Output) 로그가 자동으로 뜨며 스캔·다운로드되는 파일이 실시간으로 기록됩니다. 트리 상단 출력 버튼으로도 열 수 있어요. · 로컬 파일을 지워도 원격은 영향이 없습니다.
07 — 편집원격 생성 · 삭제 · 업로드
- 폴더/파일 생성 — 폴더 우클릭 또는 트리 상단 새 폴더 / 새 파일 버튼. 하위 경로도 가능(예:
assets/img). - 삭제 — 파일·폴더 우클릭 → “원격에서 삭제”. 항상 확인창이 뜨며, 폴더는 하위 전체가 삭제됩니다(되돌릴 수 없음).
- 바이너리 업로드 — 로컬 탐색기에서 파일/폴더 우클릭 → “IDC: 원격으로 업로드”. 이미지·exe 등도 업로드(여러 개·폴더 재귀 지원).
08 — 설정제외 규칙 (ignore)
트리 표시·업로드·다운로드에서 제외됩니다. 세 곳이 합쳐집니다:
- 기본 —
node_modules,.git,.svn,.hg,.DS_Store,Thumbs.db,.vscode,*.log - 워크스페이스 설정 —
idcDeploy.ignore(모든 서버 공통) - 서버별 —
idc-deploy.json의 각 서버 객체 안ignore(설정 파일 최상위 ignore는 지원 안 함)
패턴: node_modules(어느 깊이든), *.bak(어느 위치든), logs/**(remotePath 기준 하위 전체).
제외 항목 선택 (창)
트리 상단의 제외 선택 아이콘 또는 “IDC: 제외 항목 선택 (창)” → 모달 창이 열립니다.
- 실제 서버 디렉터리 트리를 폴더별로 펼쳐가며 체크(폴더 체크 = 하위 전체 제외).
- 자주 쓰는 프리셋 체크박스 + 직접 추가 입력.
- 현재 제외 항목은 미리 체크된 상태로 표시 → 저장 시 활성 서버
ignore에 반영·트리 갱신.
09 — 참고자주 묻는 것
| 질문 | 답 |
|---|---|
| 로컬 파일을 지우면 원격도 지워지나요? | 아니요. 저장 시 업로드만 합니다. 원격 삭제는 “원격에서 삭제”로만 됩니다. |
| 큰 파일이 안 받아져요. | 전송에는 타임아웃이 없습니다. 데이터가 흐르는 한 계속 진행됩니다. |
| 비밀번호는 어디 저장되나요? | OS 키체인(SecretStorage)에 암호화 저장. 설정 파일엔 넣지 않습니다. |
| 미리보기에서 편집이 안 돼요. | 미리보기는 읽기전용입니다. “로컬로 다운로드” 후 편집하세요. |
| 탐색·재접속이 멈춰요. | 트리 상단 “재접속”을 누르세요. 메타 작업은 20초 후 자동 재시도됩니다. |
IDC Deploy · 사내 배포 도구 · 문제 또는 기능 요청은 담당자에게 알려주세요.