제6장: 가상 파일 시스템 및 네트워크¶
최신 파일 관리가 단일 물리적 하드 드라이브의 경계에서 끝나는 경우는 거의 없습니다. 소프트웨어 개발자는 SFTP를 통해 원격 스테이징 환경을 유지합니다. 시스템 관리자는 SMB/CIFS를 통해 기업 파일 공유를 관리합니다. 콘텐츠 제작자는 WebDAV를 통해 클라우드 스토리지 및 미디어 서버에 액세스합니다. 고급 사용자는 기가바이트 규모의 압축 아카이브를 정기적으로 검사, 편집 및 패키지합니다.
기존 데스크탑 환경에서는 사용자가 zip 아카이브의 압축을 풀고 다시 압축하는 독립형 아카이브 유틸리티, 서버 자산을 관리하는 외부 FTP/SFTP 클라이언트, 연결이 끊긴 Finder 창에 원격 볼륨을 분산시키는 운영 체제 마운트 대화상자 등 분리된 애플리케이션을 저글링해야 합니다.
ATBCmder는 가상 파일 시스템(VFS) 엔진을 통해 이러한 조각화를 제거합니다. 통합 vfs:// URI 추상화 계층을 기반으로 구축된 ATBCmder는 원격 서버와 압축 아카이브를 표준 로컬 폴더와 똑같이 처리합니다. .tar.gz 아카이브로 이동하고, F3로 코드 파일을 미리 보고, F4으로 중첩된 구성 파일을 편집하고(저장 시 자동 라이브 재압축 사용), 표준 F5 키를 사용하여 보안 SFTP 세션을 통해 온프레미스 SMB NAS로 직접 자산을 복사할 수 있습니다. 이 모든 작업은 중간 파일을 추출하지 않고도 수행할 수 있습니다. 디스크로 이동하거나 별도의 도구 간에 전환할 수 있습니다.
1. 시각적 빠른 시작: VFS 아키텍처 및 명령 매트릭스¶
ATBCmder는 통합 추상화 계층을 통해 모든 파일 시스템 액세스를 라우팅합니다. 경로가 Apple APFS SSD 파티션을 가리키든, 중첩된 .zip 아카이브 내부 구성원을 가리키든, 지구 반대편에 있는 Linux SFTP 서버에서 호스팅되는 원격 디렉터리를 가리키든 상관없이 듀얼 패널 인터페이스는 동일한 작동 모델을 제공합니다.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ ATBCMDER DUAL-PANEL GUI │
│ Left Panel (Active) Right Panel (Inactive / Target) │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ [1] Local File System │ [2] Archive Virtual File System (VFS) │
│ file:///Users/brain/projects/ │ vfs:///Users/brain/backup.tar.gz/src/ │
│ Direct POSIX / APFS access │ In-place browse, F3 view, F4 live edit │
│ │ │
│ [3] Remote Network VFS (SFTP/SSH) │ [4] Remote Storage VFS (SMB / WebDAV) │
│ vfs://sftp://deploy@aws.prod/app/ │ vfs://smb://admin@truenas/Pool/Media/ │
│ Paramiko / SSH Keys / Keychain │ Kernel mount_smbfs / WebDAVClient3 │
│ │ │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ UNIFIED VFS DISPATCH ENGINE (vfs://) │
│ FileSystemModel ➔ VFSManager ➔ SessionCache ➔ StreamCopyWorker / RepackWorker │
└────────────────────────────────────────────────────────────────────────────────────────┘
듀얼 매트릭스 VFS 및 네트워크 치트 시트¶
| 액션 | macOS 바로가기 | 클래식 커맨더 단축키 | 명령 ID | 설명 |
|---|---|---|---|---|
| 파일을 아카이브에 압축 | Alt+F5 / ⌥F5 |
Alt+F5 |
cm_PackFiles |
형식, 압축 및 비밀번호 옵션이 포함된 아카이브 팩 대화 상자를 엽니다. |
| 아카이브에서 파일 추출 | Alt+F9 / ⌥F9 |
Alt+F9 |
cm_ExtractFiles |
충돌 해결을 통해 선택한 아카이브의 압축을 풉니다. |
| 빠른 네트워크 연결 | 메뉴: 네트워크 | cm_NetworkConnect |
cm_NetworkConnect |
빠른 임시 연결 대화 상자를 엽니다. |
| 연결 관리자 | 메뉴: 네트워크 | cm_ManageConnections |
cm_ManageConnections |
저장된 연결 프로필을 사용하여 전체 CRUD 네트워크 관리자를 엽니다. |
| FTP 연결 | Ctrl+S / ⌃S |
Ctrl+S |
cm_FTPConnect |
FTP 연결 세션을 트리거하는 빠른 바로가기. |
| 아카이브/폴더 입력 | Enter / ⏎ |
Enter |
cm_Open |
.zip, .tar, .7z 또는 원격 디렉터리 내에서 직접 탐색합니다. |
| 상위 폴더로 올라가기 | Backspace / ⌫ |
Backspace |
cm_GoToParent |
아카이브 또는 원격 디렉토리에서 상위 수준으로 다시 올라갑니다. |
| 가상/원격 파일 보기 | F3 / Fn+F3 |
F3 |
cm_View |
원격 또는 아카이브 파일을 Universal Lister로 스트리밍합니다. |
| 가상/원격 파일 편집 | F4 / Fn+F4 |
F4 |
cm_Edit |
편집기에서 파일을 엽니다. 저장 시 자동으로 다시 압축하거나 다시 업로드합니다. |
| 패널 간 복사/VFS | F5 / Fn+F5 |
F5 |
cm_Copy |
로컬, 아카이브 또는 네트워크 엔드포인트에서 선택한 항목을 복사합니다. |
| 백그라운드 작업 패널 | 메뉴: 표시 | cm_OperationsPanel |
cm_OperationsPanel |
백그라운드 전송 큐, 속도 및 활성 스레드를 모니터링합니다. |
2. 통합 vfs:// URI 추상화¶
기존 파일 관리자는 원격 서버와 아카이브를 2급 시민으로 취급하므로 외부 마운트 유틸리티, 임시 추출 폴더 또는 타사 전송 클라이언트가 필요합니다. ATBCmder는 잘 정의된 단일 URI 사양으로 모든 파일 소스를 통합합니다.
2.1 가상 경로의 분석¶
운영 도메인에 따라 vfs:// URI는 두 가지 표준 형식 중 하나를 사용합니다.
-
아카이브 가상 경로:
-
외부 접두사:
vfs://는FileSystemModel에 경로 탐색을 차단하도록 지시합니다. - 컨테이너 경로:
/Users/brain/Documents/release_v1.7.zip은 로컬 스토리지의 물리적 컨테이너 아카이브를 식별합니다. -
내부 구성원:
src/main.py은 아카이브 내부에 중첩된 가상 리소스를 찾아냅니다. -
네트워크 서버 경로:
-
체계 지정자: 전송 드라이버를 식별합니다(
sftp,ftp,ftps,smb,webdav,webdavs,gdrive). - 인증: 사용자 자격 증명 및 대상 포트를 인코딩합니다.
- 원격 대상: 원격 호스트의 절대 디렉터리 및 파일 경로를 확인합니다.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ VFS URI ROUTING IN ACTION │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Input URI: vfs://sftp://deploy@aws.infra:22/var/log/nginx/access.log │
│ │ │ │ │ └────────────────────► Remote Path │
│ │ │ │ └────────────────────────► Port (Default 22) │
│ │ │ └─────────────────────────────────► Host / Server │
│ │ └──────────────────────────────────────────► Username │
│ └─────────────────────────────────────────────────► Protocol Scheme │
│ │
│ Input URI: vfs:///Volumes/Data/Archive.zip/docs/manual.pdf │
│ │ │ └─────────────────► Archive Member │
│ │ └──────────────────────────► Physical Archive │
│ └─────────────────────────────────────────────────► Virtual Scheme │
└────────────────────────────────────────────────────────────────────────────────────────┘
2.2 원활한 듀얼 패널 통합¶
가상 경로는 ATBCmder 내부의 표준 디렉터리 구조를 따르므로 완전한 이중 패널 패리티를 누릴 수 있습니다.
- 탭으로 구분된 가상 작업 공간: 탭 1에서 원격 SFTP 폴더를 열고, 탭 2에서 암호화된 로컬 ZIP 아카이브를 열고, 탭 3에서 로컬
~/Downloads폴더를 엽니다. - 방향 복사(
F5): 로컬 활성 패널에서 파일을 선택하고F5을 눌러 비활성 패널에 표시된 원격 서버 또는 압축 아카이브에 직접 업로드합니다. - 드래그 앤 드롭 상호 운용성: 중간 준비 없이 로컬 디스크, 네트워크 공유 및 아카이브 계층 사이의 패널에서 항목을 드래그합니다.
- 대화형 이동 경로 표시줄: 이동 경로 표시줄은 가상 URI를 클릭 가능한 세그먼트로 구문 분석합니다. 트리 위로 즉시 이동하려면 상위 폴더나 루트 서버 배지를 클릭하세요.
3. 아카이브 VFS: 현장 탐색 및 검사¶
ATBCmder에서 아카이브를 열려면 수동 추출이나 타사 압축 해제 도구가 필요하지 않습니다. 지원되는 아카이브를 강조 표시하고 Enter을 누르거나 두 번 클릭하면 됩니다. ATBCmder는 아카이브를 제자리에 마운트하여 패널을 고속 가상 디렉터리 브라우저로 변환합니다.
그림 6.1: 압축되지 않은 크기, 타임스탬프 및 하위 디렉터리를 표시하는 가상 폴더로 다중 중첩된 압축 아카이브 내부를 탐색합니다.
3.1 지원되는 아카이브 형식¶
ATBCMder에는 모든 업계 표준 아카이브 및 압축 형식을 위한 내장 드라이버가 있습니다.
| 형식 | 파일 확장자 | 지원 읽기 | 쓰기/포장 | 암호화 지원 |
|---|---|---|---|---|
| 우편번호 | .zip |
예 | 예 | 표준 및 AES-256(pyzipper) |
| GZip 타르볼 | .tar.gz, .tgz |
예 | 예 | POSIX 표준 타르 스트리밍 |
| BZip2 타르볼 | .tar.bz2, .tbz2 |
예 | 예 | 높은 비율의 bzip2 블록 압축 |
| XZ 타르볼 | .tar.xz, .txz |
예 | 예 | 고효율 LZMA2 압축 |
| 일반 TAR | .tar |
예 | 예 | 압축되지 않은 UNIX 테이프 아카이브 |
| 7-Zip | .7z |
예 | 예(py7zr을 통해) |
LZMA / LZMA2 솔리드 압축 |
3.2 내부 탐색 작업 흐름¶
아카이브 내부를 탐색할 때:
- 하위 디렉터리 입력: 아카이브 내의 폴더에서
Enter을 눌러 중첩된 트리를 탐색합니다. - 상위(
..)로 상승:Backspace(⌫)을 누르거나.. [Parent Directory]항목을 두 번 클릭하여 상승합니다. 아카이브 루트에 도달한 후Backspace을 누르면 아카이브 파일이 포함된 실제 디렉터리로 완전히 돌아갑니다. - 즉시 미리보기(
F3/Fn+F3): 아카이브 내의 문서, 이미지 또는 소스 파일을 강조 표시하고F3을 누릅니다. ATBCmder는 자동으로 대상 파일을 안전한 임시 샌드박스로 추출하여 Universal Lister 내부에 렌더링합니다. - 선택적 복사(
F5/Fn+F5): 하나 또는 두 개의 파일을 검색하기 위해 전체 수 기가바이트 아카이브의 압축을 푸는 대신 필요한 특정 구성원을 선택하고F5을 누르십시오. ATBCmder는 선택한 항목만 비활성 패널에 직접 압축을 풉니다.
Note
아카이브에서 개별 파일을 미리 보거나 복사할 때 ATBCmder는 요청된 파일 바이트만 컨테이너 스트림에서 직접 스트리밍합니다. 선택되지 않은 형제 파일의 압축을 풀 때 디스크 공간이나 시간을 낭비하지 않습니다.
4. 라이브 리패킹: 아카이브 내부의 내부 편집¶
ATBCmder의 가장 강력한 워크플로우 중 하나는 Live Repacking입니다. 역사적으로 압축된 아카이브 내에 중첩된 단일 파일을 수정하려면 지루한 6단계 순서가 필요했습니다. 전체 아카이브 추출, 대상 파일 찾기, 편집 및 저장, 디렉터리를 새 아카이브로 다시 압축, 원본 아카이브 삭제, 임시 폴더 정리.
ATBCmder를 사용하면 표준 로컬 파일을 편집하는 것만큼 쉽게 아카이브 내부의 파일을 편집할 수 있습니다.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ LIVE REPACKING LIFECYCLE │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. User presses F4 on "config.json" inside "package.zip" │
│ │ │
│ ├──► ATBCmder extracts "config.json" to sandbox: /tmp/dc_repack_xyz/config.json │
│ └──► Opens internal EditorDialog with window title: "config.json — Editor" │
│ │
│ 2. User modifies file and presses Cmd+S (Save) │
│ │ │
│ ├──► Editor emits file_saved signal │
│ └──► RepackWorker checks original archive size vs ArchiveRepackWarningMB threshold │
│ │
│ 3. Atomic Repack Execution │
│ │ │
│ ├──► Writes modified stream to staging archive: /tmp/package.zip.tmp │
│ ├──► Validates container integrity via archive driver │
│ ├──► Atomic swap: os.replace("/tmp/package.zip.tmp", "/original/package.zip") │
│ └──► Refreshes active file panel and cleans up sandbox /tmp/dc_repack_xyz/ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
4.1 단계별: 보관된 구성 파일 편집¶
Enter을 눌러 아카이브(예:application_bundle.zip)로 이동합니다.- 수정하려는 파일을 찾습니다(예:
settings.yaml). F4(Fn+F4)을 누릅니다. ATBCmder는 파일을 임시 캐시로 추출하고 내장 편집기를 시작합니다.- 편집기에서 수정합니다.
Cmd+S(⌘S)을 눌러 저장합니다.Cmd+W(⌘W) 또는Esc을 사용하여 편집기를 닫습니다.- ATBCmder의
RepackWorker은 내부 멤버를 자동으로 업데이트하고, 업데이트된 구조를 임시 파일로 압축하고, 원본 아카이브를 원자적으로 대체하고, 패널 보기를 새로 고칩니다.
Caution
대형 기록 보관소 안전 가드(ArchiveRepackWarningMB)
압축된 아카이브를 다시 압축하려면 컨테이너 스트림의 압축을 풀고 다시 인코딩해야 합니다. 20GB .tar.gz 비디오 아카이브 내에서 10KB 파일을 수정하면 컴퓨터가 20GB의 데이터를 모두 다시 쓰게 됩니다.
우발적인 디스크 정지를 방지하기 위해 ATBCmder에는 보호 안전 임계값(ArchiveRepackWarningMB, 기본값: atbcmder.xml의 100MB)이 포함되어 있습니다. 이 제한보다 큰 아카이브 내의 파일을 편집하거나 삭제하려고 하면 ATBCmder가 확인 메시지를 표시합니다.
"이 아카이브를 수정하려면 전체 파일을 다시 압축해야 하므로 시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?"
5. 아카이브 생성 및 추출(Alt+F5 / Alt+F9)¶
ATBCmder는 아카이브 생성 및 추출을 위한 전용 백그라운드 작업자를 제공하여 장시간 실행되는 압축 작업 중에도 파일 패널의 응답성을 유지합니다.
그림 6.2: 대상 경로, 형식 선택, 압축 수준 및 비밀번호 암호화를 보여주는 아카이브 매개변수 대화상자(Alt+F5 / cm_PackFiles).
5.1 파일 압축(Alt+F5 / ⌥F5 / cm_PackFiles)¶
새 아카이브를 생성하려면:
- 활성 패널에서 번들로 묶으려는 파일이나 디렉터리를 선택합니다.
Alt+F5(⌥F5)을 누르거나 메뉴 모음에서 **파일 ➔ 압축...**을 선택합니다.- 파일 압축 대화 상자가 나타납니다.
- 아카이브 파일 생성: 대상 파일 경로입니다. 기본적으로 ATBCmder는 초점이 맞춰진 항목의 이름을 딴 비활성 패널의 디렉터리에 아카이브를 배치할 것을 제안합니다.
- 아카이브 형식:
ZIP,TAR,TAR.GZ,TAR.BZ2,TAR.XZ또는7Z중에서 선택합니다. - 압축 수준:
Store: 0 압축; 사전 압축된 미디어(MP4, JPEG)를 즉시 패키징합니다.Fast: 낮은 CPU 오버헤드; 빠른 전송에 이상적입니다.Normal (Deflated): 균형 잡힌 속도와 압축 비율(일반 용도에 권장)Maximum: 최고 밀도 압축(해당되는 경우 LZMA/Bzip2 활용)- 비밀번호(ZIP만): 아카이브를 암호화하려면 비밀 비밀번호 문구를 입력하세요.
- 시작을 클릭합니다(또는
Enter을 누릅니다). 작업은 진행률 표시줄 및 파일별 상태 표시기가 있는 비차단 백그라운드 스레드에서 실행됩니다.
군용 등급 AES-256 비밀번호 암호화¶
표준 ZIP 암호화(레거시 ZipCrypto)는 암호화 방식으로 손상되어 일반 텍스트 사전 공격에 취약합니다. ZIP 아카이브에 대한 비밀번호를 지정하면 ATBCmder는 pyzipper(WZ_AES 표준의 pyzipper.AESZipFile)으로 구동되는 AES-256 암호화를 활용합니다. 이를 통해 macOS, WinZip 및 7-Zip과의 호환성을 보장하는 동시에 무차별 암호 해독으로부터 민감한 데이터를 보호합니다.
다중 볼륨 세트에 걸쳐 거대한 아카이브 분할¶
파일 크기 제한이 있는 이메일 첨부 파일, FAT32 드라이브 또는 클라우드 업로드 경계에 걸쳐 아카이브를 배포해야 하는 경우:
Alt+F5(cm_PackFiles)을 사용하여 파일을 묶습니다.- 결과
.zip또는.tar아카이브를 강조 표시하고Alt+F6(cm_FileSpliter)을 통해 파일 분할기를 트리거합니다. - 미리 설정된 분할 크기(예:
100 MB,4.7 GB DVD,CD 700 MB또는 사용자 정의 바이트 크기)를 선택합니다. - ATBCmder는 CRC32 확인 매니페스트와 함께 번호가 매겨진 분할 조각(
archive.zip.001,archive.zip.002등)을 생성합니다. 수신자는 언제든지cm_FileLinker(cm_Combine)을 사용하여 원래 컨테이너를 재조립할 수 있습니다.
5.2 아카이브 추출(Alt+F9 / ⌥F9 / cm_ExtractFiles)¶
디스크에 아카이브를 추출하려면:
- 활성 패널에서 하나 이상의 아카이브를 강조 표시합니다.
Alt+F9(⌥F9)을 누르거나 메뉴 모음에서 **파일 ➔ 추출...**을 선택합니다.- 파일 추출 대화 상자가 표시됩니다.
- 추출할 아카이브: 선택한 컨테이너 소스 경로입니다.
- 디렉터리로 추출: 대상 디렉터리(기본값은 비활성 패널)입니다.
- 미리보기 콘텐츠: 아카이브 멤버를 실시간으로 로드하는 대화형 목록 상자입니다.
- 비밀번호: 비밀번호로 보호된 아카이브를 위한 입력 필드입니다.
- 시작을 클릭합니다. 대상 폴더에 대상 파일이 이미 있는 경우 ATBCmder는 작업자를 일시 중지하고 대화형 충돌 대화 상자를 표시합니다.
- 덮어쓰기: 충돌하는 대상 파일을 대체합니다.
- 건너뛰기: 기존 파일을 그대로 두고 다음 항목으로 진행합니다.
- 모두 덮어쓰기: 이후의 모든 충돌을 자동으로 덮어씁니다.
- 모두 건너뛰기: 기존 대상 파일을 모두 자동으로 건너뜁니다.
- 취소: 추출 과정을 안전하게 중단합니다.
6. 원격 네트워크 VFS: 프로토콜 및 원격 저장소¶
ATBCmder에는 이중 패널 작업 공간 내에서 직접 원격 서버를 마운트, 탐색 및 조작할 수 있는 다중 프로토콜 네트워크 클라이언트 엔진이 포함되어 있습니다.
그림 6.3: 라이브 파일 속성, 소유권 권한 및 이중 패널 전송을 사용하여 보안 SFTP를 통해 원격 Linux 서버 디렉터리 검색.
그림 6.4: 지원되는 네트워크 연결 유형: FTP/FTPS, 보안 SFTP, WebDAV 클라우드 스토리지 및 SMB 네트워크 공유.
6.1 지원되는 네트워크 프로토콜¶
| 프로토콜 체계 | 기본 포트 | 전송 계층 | 인증 모드 | 최고의 용도 |
|---|---|---|---|---|
sftp:// |
22 |
SSH-2(파라미코) | 비밀번호, SSH 키(id_rsa, id_ed25519) |
Linux 서버, 클라우드 인스턴스, 스테이징 호스트 |
ftp:// |
21 |
일반 RFC 959 | 익명, 일반 텍스트 사용자 이름 및 비밀번호 | 레거시 웹 호스팅, 로컬 랩 장치 |
ftps:// |
990 |
TLS 암호화 FTP | SSL/TLS를 사용한 사용자 이름 및 비밀번호 | 안전한 상업용 FTP 서버 |
smb:// |
445 |
CIFS/SMB3 | Windows NT/Kerberos/로컬 계정 | Windows 공유, NAS 기기, Samba 서버 |
webdav:// |
80 |
HTTP 웹DAV | 기본, 다이제스트 인증 | 웹 서버, 로컬 네트워크 스토리지 |
webdavs:// |
443 |
HTTPS WebDAV | SSL 암호화 기본/다이제스트 인증 | Nextcloud, ownCloud, 상용 클라우드 스토리지 |
gdrive:// |
443 |
구글 드라이브 API | OAuth2 토큰 인증 | Google Drive 클라우드 드라이브 및 공유 폴더 |
6.2 프로토콜 기능 및 심층 분석¶
SFTP(SSH 파일 전송 프로토콜)¶
업계 표준 paramiko SSH 엔진을 기반으로 하는 ATBCmder의 SFTP 드라이버는 포트 22를 통해 암호화된 터널을 설정합니다.
- 호스트 키 안전(
WarningPolicy): 엄격한 보안 요구 사항에 따라 ATBCmder는 자동으로 로컬~/.ssh/known_hosts파일을 참조합니다. 알려진 호스트에 연결할 때 호스트 키는 암호화 방식으로 확인됩니다. 알 수 없는 서버가 발견되면 ATBCmder는 예상치 못한 공개 키를 자동으로 신뢰하는 대신 안전 경고를 표시합니다. - SSH 키 인증: ATBCmder는 표준 비밀번호 인증 외에도 SSH 개인 키 파일(
~/.ssh/id_rsa,~/.ssh/id_ed25519)을 지원합니다. - UNIX 속성 매핑: 원격 8진수 파일 모드(
chmod), 사용자/그룹 소유권 문자열 및 정확한 POSIX 수정 타임스탬프를 보존합니다.
FTP 및 FTPS(명시적/암시적 SSL)¶
Python의 ftplib에 의해 구동되는 FTP 드라이버는 다음을 지원합니다.
- 패시브 모드(PASV): 제한적인 NAT 라우터 및 소비자 방화벽을 통해 안정적인 연결을 보장하기 위해 기본적으로 활성화됩니다.
- 구성 가능한 인코딩:
UTF-8,ISO-8859-1,GB18030및Windows-1252문자 집합 간 전환을 허용하여 비ASCII 파일 이름 표시 문제를 해결합니다.
SMB/Samba(Windows 공유 및 NAS 어플라이언스)¶
전송 속도가 느린 순진한 사용자 공간 Python SMB 라이브러리와 달리 ATBCmder는 하이브리드 아키텍처를 사용합니다.
- macOS 기본 커널 가속(
mount_smbfs): macOS에서 ATBCmder의SambaMounter은 Apple의 기본/sbin/mount_smbfs하위 시스템을 활용합니다. 원격 공유를 macOS VFS 트리(/Volumes/또는 격리된 마운트 디렉터리)에 직접 마운트하여 전체 하드웨어 가속 SMB3 읽기/쓰기 처리량을 잠금 해제합니다. - 기존 마운트 감지: macOS Finder 또는 시스템 스크립트가 대상 SMB 공유를 이미 마운트한 경우 ATBCmder는 OS
mount테이블에서 활성 마운트 지점을 자동으로 감지하고 즉시 탐색하여 중복 네트워크 연결을 방지합니다.
Important
SMB 공유 이름 요구 사항 SMB 서버는 기본 호스트 이름 수준에서 탐색할 수 없습니다. SMB URI는 반드시 경로에 대상 공유 또는 내보내기 이름을 포함해야 합니다.
- ❌ 유효하지 않음:
vfs://smb://nas.local/ - ✅ 유효함:
vfs://smb://nas.local/StoragePool또는vfs://smb://192.168.1.100/Media
WebDAV 및 WebDAVS(Nextcloud/클라우드 스토리지)¶
webdavclient3을 기반으로 구축된 이 드라이버는 최신 클라우드 스토리지 솔루션과 양방향 파일 동기화를 제공합니다.
- SSL 인증서 확인: 개인 홈랩 설정에서 자체 서명된 인증서에 대한 재정의 토글을 사용하여 공개 WebDAVS 호스트에 대해 엄격한 SSL 인증서 검증을 지원합니다.
- 재귀 디렉터리 생성(
makedirs): 대량 업로드 작업 중에 누락된 중첩 원격 디렉터리 경로를 자동으로 생성합니다.
7. 빠른 연결과 연결 관리자¶
ATBCmder는 원격 호스트에 연결하기 위한 두 가지 유연한 메커니즘을 제공합니다. 빠른 임시 세션을 위한 빠른 연결과 영구적이고 분류된 서버 북마크를 위한 연결 관리자입니다.
7.1 빠른 연결(cm_NetworkConnect)¶
영구 구성을 복잡하게 하지 않고 서버에 빠르게 액세스해야 하는 경우:
- **네트워크 ➔ 빠른 연결...**을 선택합니다(또는
cm_NetworkConnect명령 실행). - 경량 연결 프롬프트가 나타납니다.
- 프로토콜:
sftp,ftp,ftps,smb,webdav,webdavs또는gdrive을 선택합니다. - 호스트 및 포트: 서버 주소를 입력합니다(포트는 기본값을 자동으로 입력합니다).
- 사용자 이름 및 비밀번호: 연결 자격 증명을 입력합니다.
- 원격 경로: 원격 디렉터리를 시작합니다(기본값:
/). - 비밀번호 기억: 단일 세션 임시 연결의 경우 선택하지 않은 상태로 둡니다.
- 연결 테스트를 클릭하여 연결하기 전에 네트워크 핸드셰이크와 자격 증명을 확인합니다.
- 연결을 클릭합니다. ATBCmder는 원격 서버를 가리키는 활성 패널의 새 탭을 즉시 엽니다.
7.2 연결 관리자(cm_ManageConnections)¶
정기적으로 액세스하는 서버의 경우 연결 관리자는 완전한 구성 대시보드를 제공합니다.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CONNECTION MANAGER DIALOG │
├──────────────────────────────┬─────────────────────────────────────────────────────────┤
│ Saved Connections │ Connection Details │
│ ┌────────────────────────┐ │ Label: [ Staging Web Server (AWS) ] │
│ │ 🔐 AWS Staging Server │ │ Protocol: [ SFTP (port 22) ▼ ] │
│ │ 🖧 Synology Office NAS │ │ Host: [ ec2-54-210-10-2.compute.amazonaws.com] │
│ │ 🌐 Nextcloud Personal │ │ Port: [ 22 ] │
│ │ 📂 Legacy Archive FTP │ │ Username: [ ubuntu ] │
│ │ │ │ Password: [ •••••••••••••••••• ] │
│ │ │ │ Remote Path: [ /var/www/production ] │
│ │ │ │ [✓] Remember password in macOS Keychain │
│ └────────────────────────┘ │ │
│ [➕ New] [⧉ Dup] [🗑 Del] │ [🔍 Test Connection] [💾 Save] [🔗 Connect] │
└──────────────────────────────┴─────────────────────────────────────────────────────────┘
서버 프로필 관리¶
- 새로 만들기(
➕ New): 새 서버 구성을 정의하려면 오른쪽 양식을 지웁니다. - 복제(
⧉ Duplicate): 선택한 연결 프로필을 복제합니다. 동일한 호스트 구성에서 여러 환경(개발, 스테이징, 프로덕션)을 관리하는 데 적합합니다. - 삭제(
🗑 Delete): 연결 프로필을 제거하고 시스템 키체인에서 연결된 자격 증명을 삭제합니다. - 연결 테스트(
🔍 Test Connection): 연결, 인증 및 연결 해제를 위해 백그라운드 작업자(ConnectionTestWorker)를 파견하여 다른 곳으로 이동하지 않고도 서버 응답성을 확인합니다. - 연결(
🔗 Connect): 보류 중인 필드 편집 내용을 저장하고, 원격 세션을 설정하고, 원격 디렉터리를 새 활성 패널 탭에 로드합니다.
동적 저장된 연결 메뉴¶
저장된 연결은 네트워크 ➔ 저장된 연결 아래 상단 메뉴 표시줄에 자동으로 통합됩니다. 한 번의 클릭으로 북마크된 서버를 마운트할 수 있습니다.
Network ➔ Saved Connections ➔ 🔐 AWS Staging ServerNetwork ➔ Saved Connections ➔ 🖧 Synology Office NAS
8. 자격 증명 안전 및 키체인 통합¶
파일 관리자 구성 파일은 자격 증명 수집 악성 코드의 주요 대상입니다. 많은 레거시 파일 관리자는 사용자의 홈 디렉터리에 있는 일반 텍스트 XML 또는 INI 구성 파일에 FTP/SFTP 비밀번호를 저장합니다.
ATBCmder는 일반 텍스트 자격 증명 저장을 보장하지 않습니다.
8.1 보안 아키텍처¶
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CREDENTIAL STORAGE ARCHITECTURE │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Connection Configuration XML Apple System Keychain │
│ (~/.config/atbcmder/atbcmder.xml) (service: "ATBCmder_VFS") │
│ ┌─────────────────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ <connection> │ │ Label: "AWS Staging Server" │ │
│ │ <label>AWS Staging</label> │ │ Key: Encrypted Secret │ │
│ │ <scheme>sftp</scheme> │ │ Access: Controlled by macOS │ │
│ │ <host>aws.infra.net</host> │ │ Hardware Security Enclave│ │
│ │ <user>deploy</user> │ └──────────────────────────────────┘ │
│ │ <password></password> │ ▲ │
│ │ </connection> │ │ │
│ └─────────────────────────────────────┘ │ │
│ ▲ │ │
│ │ Password stripped on save │ Stored via │
│ └─────────────────── ConnectionManager ─────────────────────┘ Python keyring │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
- 일반 텍스트 XML 스크러빙: 연결 프로필이 디스크(
atbcmder.xml)에 직렬화될 때마다ConnectionManager.save()루틴은 쓰기 전에 명시적으로d["password"] = ""을 강제합니다. 권한이 없는 당사자가 구성 XML을 검사하더라도 서버 비밀번호는 공개되지 않습니다. - macOS 시스템 키체인 암호화: 비밀번호 기억 확인란을 선택하면 비밀번호는 보안 서비스 식별자
ATBCmder_VFS아래 시스템keyringAPI를 통해 macOS 키체인에 직접 저장됩니다. 키 파생 및 저장은 Apple의 하드웨어 Secure Enclave로 보호됩니다. - 임시 메모리 내 세션: "비밀번호 기억"을 선택 취소하면 자격 증명은 현재 애플리케이션 수명 주기 동안 동적 메모리(
VFSSessionCache)에 엄격하게 보관되며 ATBCmder가 종료되는 순간 삭제됩니다.
9. ⚡ 전문가 팁: 고성능 원격 작업¶
팁 1: 비차단 백그라운드 전송 대기열(cm_OperationsPanel)¶
원격 서버를 통해 대규모 디렉토리를 복사하거나 SFTP를 통해 수 기가바이트 ISO를 다운로드할 때 작업 공간을 동결하지 마십시오. ATBCmder의 모든 네트워크 파일 작업은 백그라운드 작업 대기열과 자동으로 통합됩니다.
F5을 눌러 전송을 시작한 다음 백그라운드를 클릭합니다(또는 자동으로 대기하도록 설정).- 표시 ➔ 작업 패널(
cm_OperationsPanel)을 통해 작업 패널을 열어 실시간 대역폭 차트, 파일별 바이트 수 및 남은 전송 추정치를 모니터링합니다. - 두 패널에서 로컬 파일을 계속 탐색하면서 대기 중인 네트워크 전송을 일시 중지, 재개 또는 재정렬할 수 있습니다.
팁 2: 이기종 프로토콜을 통한 스트림 복사¶
ATBCMder의 stream_copy_file 엔진은 직접적인 서버 간 스트리밍을 가능하게 합니다. 왼쪽 패널의 SFTP 서버에서 오른쪽 패널의 SMB 네트워크 공유로 폴더를 드래그하는 경우:
- ATBCmder는 다시 업로드하기 전에 전체 디렉터리를 로컬 Mac 하드 드라이브에 다운로드하지 않습니다.
- 데이터는 메모리 내 버퍼 링을 통해 청크되어 소스 소켓의 바이트를 대상 소켓으로 직접 스트리밍합니다. 이렇게 하면 로컬 디스크 마모가 제거되고 사용 가능한 로컬 SSD 용량보다 큰 전송을 수용할 수 있습니다.
팁 3: 네트워크 연결 유지 및 연결 끊김 방지¶
상태 저장 네트워크 방화벽과 NAT 게이트웨이는 60~300초 동안 활동이 없으면 유휴 TCP 연결을 끊는 경우가 많습니다. 대규모 원격 트리를 탐색할 때 연결이 끊긴 세션을 방지하려면 다음을 수행하십시오.
- ATBCmder의
BaseNetworkVFS계층은 유휴 연결 전반에 걸쳐 세션 하트비트를 자동으로 유지합니다. - 일시적인 네트워크 중단이 발생하는 경우 내부
_retry()메커니즘은 연결 실패를 보고하기 전에 지수 백오프(2^attempt초 간격)를 사용하여 최대 3번의 재시도를 실행합니다.
팁 4: 자동 업로드 수명 주기로 원격 파일 편집하기¶
원격 서버에서 직접 nginx.conf 또는 Python 스크립트를 편집해야 합니까?
- SFTP 또는 WebDAV 패널 보기에서 원격 파일을 강조 표시합니다.
F4(Fn+F4)을 누릅니다.- ATBCmder는 파일을 격리된 임시 샌드박스(
/tmp/)에 다운로드하고 내장 편집기에서 엽니다. Cmd+S(⌘S)을 누를 때마다 ATBCmder는_upload_vfs_temp()을 트리거하여 업데이트된 파일을 비동기적으로 원격 서버로 다시 스트리밍하고 상태 표시줄에 확인 메시지를 표시합니다.- 편집기를 닫으면 임시 파일이
/tmp/에서 안전하게 연결 해제됩니다.
10. 시스템 및 보안 경고¶
Warning
SSH 호스트 키 확인 불일치
SFTP 서버가 호스트 키를 재생성하는 경우(예: OS 재설치 후) 또는 중간자 네트워크 차단이 시도되는 경우 ATBCmder는 서버 키가 ~/.ssh/known_hosts에 등록된 지문과 일치하지 않음을 감지합니다.
시스템 관리자에게 서버의 공개 키 지문을 독립적으로 확인하지 않고 신뢰할 수 없는 공개 Wi-Fi 네트워크에서 호스트 키 경고를 우회하지 마십시오.
Important
대형 원격 파일을 위한 임시 캐시 공간
원격 VFS 서버에 저장된 멀티 기가바이트 파일을 보거나(F3) 편집(F4)할 때 ATBCmder는 대상 항목을 로컬 /tmp 볼륨으로 스트리밍합니다. 대용량 원격 비디오 또는 데이터베이스 파일을 열기 전에 Mac의 기본 APFS 컨테이너에 여유 저장 공간이 충분한지 확인하세요.
Caution
원격 네트워크 공유 마운트 해제
macOS mount_smbfs을 통해 마운트된 SMB 공유의 경우 연결을 끊지 않고 네트워크 연결을 종료하면 /Volumes/에 오래된 마운트 핸들이 남을 수 있습니다. 랩톱을 닫거나 Wi-Fi 네트워크를 변경하기 전에 항상 패널 드라이브 메뉴를 사용하거나 연결 끊기 작업을 수행하십시오.
11. 마스터 듀얼 매트릭스 키보드 참조 표¶
| 카테고리 | 작업 설명 | macOS 바로가기 | 클래식 커맨더 단축키 | 명령 ID |
|---|---|---|---|---|
| 아카이브 작업 | 선택한 파일/폴더 압축 | Alt+F5 / ⌥F5 |
Alt+F5 |
cm_PackFiles |
| 아카이브 작업 | 선택한 아카이브 추출 | Alt+F9 / ⌥F9 |
Alt+F9 |
cm_ExtractFiles |
| 아카이브 작업 | 내부 아카이브 컨테이너 찾아보기 | Enter / ⏎ |
Enter |
cm_Open |
| 아카이브 작업 | 상위 디렉토리로 아카이브 종료 | Backspace / ⌫ |
Backspace |
cm_ChangeDirToParent |
| 아카이브 작업 | 아카이브 내 파일 미리보기 | F3 / Fn+F3 |
F3 |
cm_View |
| 아카이브 작업 | 아카이브 내에서 파일 편집(라이브) | F4 / Fn+F4 |
F4 |
cm_Edit |
| 아카이브 작업 | 선택한 항목만 추출 | F5 / Fn+F5 |
F5 |
cm_Copy |
| 아카이브 작업 | 대용량 아카이브를 볼륨으로 분할 | Alt+F6 / ⌥F6 |
Alt+F6 |
cm_FileSpliter / cm_Split |
| 아카이브 작업 | 분할 볼륨 조각 재조립 | 메뉴: 파일 ➔ 파일 결합 | — | cm_FileLinker / cm_Combine |
| 네트워크 연결 | 빠른 네트워크 연결 대화 상자 | 메뉴: 네트워크 | — | cm_NetworkConnect |
| 네트워크 연결 | 네트워크 연결 관리 | 메뉴: 네트워크 | — | cm_ManageConnections |
| 네트워크 연결 | FTP 서버에 빠른 연결 | Ctrl+S / ⌃S |
Ctrl+S |
cm_FTPConnect |
| 네트워크 연결 | 원격 네트워크 공유 연결 끊기 | 메뉴: 네트워크 | — | cm_NetworkDisconnect |
| 이체 관리 | 공개 작업 전송 대기열 | 메뉴: 표시 | — | cm_OperationsPanel |
| 이체 관리 | 활성 대기열 일시 중지/재개 | Space(큐에 있음) |
Space |
— |
시스템 리소스를 모니터링하고 디스크 사용량을 분석하며 캐시를 안전하게 정리할 준비가 되셨습니까?