SFTP : 로컬 내 프로젝트에서 원격서버로 SFTP 자동 동기화 설정

Ruah·2025년 7월 14일
0

개발자라면 한 번쯤 경험해봤을 상황이다. 로컬 환경에서는 편리하게 코딩하고 싶지만, 실제 실행은 GPU가 장착된 원격 서버에서 해야 하는 경우 말이다. 매번 파일을 수동으로 전송하는 것은 번거롭고 비효율적이다. 이런 문제를 해결해주는 것이 바로 SFTP 자동 동기화다.

SFTP vs SCP 비교

많은 개발자들이 SCP와 SFTP를 혼동한다. 둘 다 SSH 기반의 안전한 파일 전송 방법이지만, 사용 목적과 방식에서 명확한 차이가 있다.

구분SCPSFTP
작동 방식단순 복사 명령대화형 파일 전송 세션
연결 유형일회성 전송지속적인 세션 연결
사용 방법명령줄 한 번 실행대화형 명령어 또는 GUI
자동화스크립트 자동화에 적합에디터 연동 및 실시간 동기화에 적합

개발 환경에서 SFTP가 압도적으로 유리한 이유가 있다. 세션을 계속 유지하면서 파일이 변경될 때마다 즉시 업로드할 수 있고, 변경된 파일만 선택적으로 전송하기 때문에 효율적이다. 반면 SCP는 매번 새로운 연결을 생성해야 하므로 자동 동기화에는 적합하지 않다.

1. SFTP 확장 프로그램 설치

VSCode/Cursor에서 확장 설치

  1. Extensions 탭을 연다 (Ctrl+Shift+X)
  2. "SFTP"를 검색한다
  3. Natizyskunk에서 개발한 SFTP 확장을 설치한다
  4. 설치 완료 후 에디터를 재시작한다

2. SFTP 설정 파일 생성

설정 파일 생성 방법

  1. Ctrl+Shift+P로 Command Palette를 연다
  2. "SFTP: Config"를 입력하여 선택한다
  3. 프로젝트 루트에 .vscode/sftp.json 파일이 생성된다

기본 설정 예시

{
    "name": "my-server",
    "host": "192.168.1.100",
    "protocol": "sftp",
    "port": 22,
    "username": "your_username",
    "remotePath": "/home/your_username/project/",
    "uploadOnSave": true,
    "useTempFile": false,
    "openSsh": true,
    "ignore": [
        "**/__pycache__/**",
        "**/*.pyc",
        "**/node_modules/**",
        "**/.git/**",
        "**/.DS_Store"
    ]
}

여기서 가장 중요한 설정은 uploadOnSave: true다. 이 옵션 하나로 저장할 때마다 자동으로 원격 서버에 파일이 업로드된다. 마치 마법처럼 말이다.

주요 설정 옵션 설명

옵션설명권장값
uploadOnSave저장 시 자동 업로드true
useTempFile임시 파일 사용 여부false
openSshOpenSSH 사용true
ignore업로드 제외 파일/폴더캐시, 로그 파일 등

3. 연결 테스트 및 초기 설정

연결 확인

설정을 완료했다면 이제 실제로 연결이 되는지 확인해야 한다.

  1. Ctrl+Shift+P"SFTP: List"를 선택한다
  2. 설정한 서버 이름을 선택한다
  3. 비밀번호를 입력한다
  4. 원격 서버 파일 목록이 나타나면 성공이다

전체 프로젝트 업로드

최초 설정 시에는 기존 프로젝트 파일들을 모두 업로드해야 한다.

  1. Ctrl+Shift+P → "SFTP: Upload Project"
  2. 서버를 선택하고 비밀번호를 입력한다
  3. 하단 상태바에서 업로드 진행상황을 확인한다

이 과정은 프로젝트 크기에 따라 시간이 걸릴 수 있다. 특히 머신러닝 프로젝트의 경우 데이터셋이 포함되어 있다면 상당한 시간이 소요될 수 있다.

4. 자동 동기화 사용법

기본 작업 흐름

설정이 완료되면 이제 진짜 편리한 개발 환경이 시작된다.

  1. 로컬에서 코드를 작성하고 수정한다
  2. Ctrl+S로 저장한다 → 자동으로 원격 서버에 업로드된다
  3. SSH로 원격 서버에 접속하여 실행한다

이렇게 간단하다. 더 이상 매번 파일을 수동으로 전송할 필요가 없다.

유용한 SFTP 명령어

명령어기능
SFTP: Upload Project전체 프로젝트 업로드
SFTP: Download Project전체 프로젝트 다운로드
SFTP: Sync Remote → Local원격에서 로컬로 동기화
SFTP: Sync Local → Remote로컬에서 원격으로 동기화
SFTP: Sync Both Directions양방향 동기화

선택적 업로드

때로는 특정 파일이나 폴더만 업로드하고 싶을 때가 있다. 이럴 때는 Explorer에서 해당 파일이나 폴더를 우클릭하고 "Upload File" 또는 "Upload Folder"를 선택하면 된다.

profile
집요한 주니어 개발자의 호되게 당했던 기록

0개의 댓글