날짜는 YYYY-MM-DD (KST), 최신이 위. 사용자가 체감하는 것만 적는다 — 내부 정리는 커밋 메시지에 있다.
다른 프로그램·앱·게임을 소개하는 링크입니다 (projectteamforyou.com). 누르면 브라우저가 열릴 뿐 이 프로그램이 직접 접속하지는 않습니다 — «무엇이 밖으로 나가는가» 는 그대로 새 판 확인 하나입니다. 창이 좁으면 문구를 접고 주소만 남깁니다. 12개 언어로 나옵니다. 같은 띠가 랜딩 페이지와 안드로이드 앱 홈에도 있습니다.
아무도 쓰지 않았습니다 — Tcl 의 시간대 자료(이 프로그램은 날짜를 전부 파이썬으로 다룹니다)와, 끌어다 놓기 라이브러리의 다른 운영체제용 열한 벌 (리눅스·맥·ARM·32비트). 이제 실행되는 그 PC 의 한 벌만 담습니다. 풀면 약 33 MB, 원파일 exe 도 그만큼 작아집니다. 하는 일은 같습니다.
꺼졌습니다. 이제 끌어다 놓기 없이 창을 열고, 안내 줄도 «위 버튼으로 담으세요» 로 바꿉니다.
저장된 것이 하나도 없을 때는 «빈 상자에 화살표 하나» 로만 보였습니다. 저장을 누르면 이름을 물어보기는 했지만 그 전까지는 «어디에 적나» 에 답이 없었습니다. 이제 칸에 바로 적어서 만들고, 화살표로는 이미 있는 것을 고릅니다. 저장된 것이 없으면 그 자리에 안내가 한 줄 붙습니다.
폴더에 풀어 실행하는 구조라 브라우저가 «의심스러운 다운로드» 로 막는 일이 있습니다. 폴더판에는 그 구조가 없습니다. 원파일도 그대로 둡니다 — 한 파일로 건네야 할 때가 있어서입니다.
복사만 «파일 이름이 너무 깁니다» 로 실패했습니다. 이어받기용 임시 파일 이름이 원래 이름 뒤에 붙는데, 이름이 상한에 꽉 차 있으면 붙을 자리가 없었습니다.
기다린 뒤에야 실패했습니다. 공유 폴더 주소가 «장치가 돌아왔나» 를 보는 자리를 비껴가고 있었습니다.
상한을 넘으면 읽는 쪽이 그 줄을 건너뛰어, 그 한 건만 사라지는 것이 아니라 뒤 줄까지 이어지지 않은 것으로 보였습니다.
파일 하나로 건네받은 분께는 알려드릴 다른 길이 없어서입니다. 여섯 시간에 한 번 판 번호만 물어보고 내려받거나 설치하지 않습니다. 그때 저희 서버에 닿는 것은 IP·시각·쓰고 계신 판 번호이고, 파일 이름이나 경로는 보내지 않습니다. 끄면 그 뒤로 아무 통신도 하지 않습니다 — 창 UI 의 «정보» 창, 관리자 콘솔의 «소식» 화면, 명령줄의 update --off 어디서나 끌 수 있고 다음 실행에도 지켜집니다. 공지와 통계 보내기는 전과 같이 꺼져 있습니다. 개인정보 처리방침에도 같이 적었습니다.
미리 읽습니다. 검증이 hash 면 해시도 읽는 쪽에서 계산해 쓰기와 겹칩니다. 같은 디스크 안에서 재 보니 검증 size 는 313 → 396 MB/s (1.26배), hash 는 115 → 131 MB/s (1.14배) 였습니다.
파일처럼 보이지만 내용이 이 컴퓨터에 없고, 읽는 순간 내려받기가 시작됩니다. 폴더를 통째로 백업하면 수십~수백 GB 가 조용히 흘러들어오던 자리입니다. 기본은 그대로 내려받되 시작 전에 «온라인 전용 N개 · M GB 를 내려받게 됩니다» 라고 알립니다. --cloud skip 은 건너뛰고 --cloud fail 은 실패로 적습니다.
D: 였던 USB 가오늘 E: 여도 프로필이 그 장치를 찾아갑니다. 장치를 못 찾으면 아무 데나 붙이지 않고 그대로 실패합니다 — 어디에 백업했는지 모르는 것보다 낫습니다.
조용하고 실패에만 소리가 납니다. 명령줄에는 --notify 가 있습니다.
--help 첫 줄이«SmartCopy 0.3.1 ? 작업 큐…» 였다. cp949 에 em dash 가 없어서다. 콘솔 코드 페이지를 올리는 것은 그 창에서 나중에 실행하는 다른 명령까지 건드리므로 하지 않고, 생김새가 같은 부호로 바꿔서 내보낸다(— → ―, … → ...).
--version 과 **파일 속성 →자세히**에 사이트 주소가 들어갔다. 파일 하나만 건네받은 사람은 프로그램을 돌리기 전에 속성밖에 볼 것이 없다. (창 UI 의 «정보» 창, 명령줄 도움말, 관리자 콘솔에는 전부터 있었다.)
→ 16개 16.6초), 받아서 그냥 쓰는 사람은 놓여 있는 이득을 버리고 있었다. 이제 매체를 보고 정한다 — 내장·네트워크 4, 이동식·모름 1. 받은 그대로 돌렸을 때 1.34배 빨라졌다. 사람이 고른 값은 그대로 쓴다.
tools/benchmark.py — robocopy 와 견주는 측정 도구. 차례를 섞고, 첫 회차를버리고, 불리한 항목도 같이 낸다. --dest 로 USB·NAS 까지 잴 수 있다.
주의할 것**을 같이 적었다. robocopy 보다 느리다는 사실을 숨기지 않는다 — 숨기면 첫 리뷰어가 대신 재서 쓴다.
사람이 없을 때 도는 길과, 증명서가 서로를 증언하는 길을 냈다.
(watch). 감시 폴더는 방아쇠일 뿐이고, 무엇을 옮길지는 프로필이 정한다. 쓰는 중인 파일에는 달려들지 않는다.
schedule). 관리자 권한이필요 없고, 윈도우 작업 스케줄러 화면에서 그대로 지울 수 있다.
창이 그 설정으로 채워지고, 시작은 사람이 누른다.
ledger) — 매니페스트를 남기는 작업마다 한 줄이 쌓이고,각 줄이 앞줄의 해시를 품는다. 지우기·고치기·순서 바꾸기가 드러난다.
--note) — 납품처·사건 번호를 증명서와 대장에 적는다.profile --export / --import).눌러도 세 주소가 지워졌다.
word-break: keep-all 을 모든 언어에 걸고 있었다. 띄어쓰기가 없는 일본어·중국어에서는 문장 하나가 낱말 하나가 되어, 360px 에서 중국어 랜딩이 500px 까지 밀려 나갔다. 이제 한국어에만 건다.
X-Frame-Options·COOP·CORP·Permissions-Policy.틀린 토큰을 세어 설정 화면에 보여준다.
X-Robots-Tag: noindex 와 Cache-Control: no-store.첫 공개 배포. smartcopy.dev 에서 받습니다.
불러옵니다. 작업 스케줄러에는 smartcopy-cli run "주간 백업" --quiet 한 줄. --newer-than 7d 같은 상대 날짜는 꺼낼 때마다 오늘 기준으로 다시 풀립니다.
--mirror report)지웁니다(delete). 기본은 꺼짐. 필터로 제외한 것·링크·다른 작업의 폴더는 건드리지 않고, 원본을 다 읽지 못했거나 실패·취소가 있으면 아무것도 지우지 않습니다.
verify --report 증명서.html 로 대조 결과를 한 장짜리문서(또는 CSV)로 남깁니다. 창 UI 의 증명서 저장, 콘솔의 무결성 검사 화면에서도.
있던 옛 파일이 그대로 남습니다 (전에는 새 것도 옛 것도 없이 빈손이 됐습니다).
"검증 통과" 라고 말하던 것을 고쳤습니다.
word-break: keep-all).첫 배포. 설치가 필요 없는 exe 두 개(SmartCopy.exe, smartcopy-cli.exe)와 12개 언어.
같은 드라이브 안에서는 이름만 바꿔 중간 상태를 만들지 않는다.
큰 파일 유지 · 그때그때 확인.
--manifest 로 목록을남겨두면 나중에 verify --manifest 로 대조한다.
끝난 파일은 건너뛰고 이어서 한다. 파일 하나 안에서도 이어받는다.
재연결 대기 로 멈추고, 다시 붙으면중단 지점부터 이어간다.
창 UI 의 통계 단추와 관리자 콘솔, 양쪽에서 본다. 경로와 파일 이름은 담지 않고, 이 컴퓨터 밖으로 나가지 않는다.
하지 않는다. https 만 받고, 받아온 글은 글자로만 다룬다.
무엇이 나가는지 보내기 전에 그대로 보여준다.
--manifest 로 남긴 SHA-256 목록을 다시 대조하고,그 결과를 한 장짜리 HTML(또는 CSV)로 남긴다. verify --report, 창의 증명서 저장, 콘솔의 무결성 검사 화면.
(integrity.py) — 같은 질문에 두 벌의 답이 있으면 한쪽만 고쳐진다.
report) 지운다(delete).기본은 꺼짐. 필터로 제외한 것·링크·다른 작업의 폴더는 건드리지 않는다.
실패한 파일이 있거나, 취소된 작업이면 그대로 두고 이유를 적는다.
--dry-run)에서도 무엇이 지워질지 찾아서 보여준다.창 UI 의 프로필 칸, 관리자 콘솔의 새 작업 화면, 명령줄의 --save-profile · profile · run.
smartcopy-cli run "주간 백업" --quiet 한 줄로 건다.--newer-than 7d 는 꺼낼 때마다 오늘을기준으로 다시 풀린다 — 저장하는 순간 굳으면 백업이 도는 줄 알고 몇 달을 보내게 된다.
탐색기 우클릭 연동(HKEY_CURRENT_USER).
127.0.0.1 에만 열리고 실행마다 새 토큰이 있어야 들어간다.
copy · move · run · profile · recover · verify · shell ·admin. 배치 파일과 작업 스케줄러용.
python tools/deploy_pages.py 한 줄.검사·배포·라이브 확인까지 하고, 빼먹기 쉬운 자리를 막는다.
landing/_headers 로 X-Frame-Options·nosniff·캐시 수명을 얹는다.python tools/connect_domain.py <도메인> 한 줄로 붙인다.한국어 · English · 日本語 · 简体中文 · 繁體中文 · Español · Français · Deutsch · Português · Русский · Bahasa Indonesia · Tiếng Việt.
창 UI·관리자 콘솔·명령줄 도움말·탐색기 메뉴 이름·랜딩 페이지까지 전부. 처음에는 Windows 표시 언어를 따라가고, --lang 이나 화면에서 바꿀 수 있다.
.scpart 임시 파일은 O_EXCL 로만 새로 만들고, 주인을 적어 두 작업이같은 자리를 덮지 않게 한다.
Host · Origin 을 모두 검사하고, 정적 파일도 web 폴더밖으로 나가지 못한다.
← 첫 화면으로