로컬 폴더랑 외장 드라이브 간에 동기화 돌리려고 함.
기본적인 sync는 되는데, 몇 가지 파일/폴더는 빼고 하고 싶음.
예를 들어, .git 폴더나 특정 로그 파일 같은 건 아예 무시하고 싶은데, 이거 고급 설정으로 제외 리스트 관리하는 방법 아는 사람?
어떤 툴 쓰는지, 설정 파일 구조 같은 거 간략히 공유 부탁함.
-
-
와, 이거 꽤 실무적인 질문이네요.
로컬이랑 외장 드라이브 동기화하면서 불필요한 파일들까지 같이 옮기면 용량 낭비도 심하고, 오히려 원치 않는 파일까지 덮어쓰기 이슈 생길 수도 있어서 제외 규칙 설정하는 게 정말 중요하죠.
제가 직접 여러 번 겪어보면서 써봤던 경험이랑, 일반적으로 많이 쓰이는 툴들 기준으로 몇 가지 방법을 정리해서 말씀드릴게요.
어떤 툴을 쓰느냐에 따라 방법이 좀 다르거든요.
--- ### 1.
툴별 제외 규칙 적용 방법 비교 일단, 어떤 동기화 툴을 쓰시는지에 따라 접근 방식이 완전히 달라집니다.
혹시 특정 툴을 염두에 두고 계신가요?
만약 툴을 정하지 않으셨다면, 주로 많이 쓰이는 세 가지 시나리오를 기준으로 설명드릴게요.
A.
전문 동기화/백업 툴 사용 시 (예: GoodSync, FreeFileSync 등) 이런 전문 툴들은 보통 GUI(그래픽 인터페이스)에서 제외 규칙(Exclusion List)을 관리할 수 있는 전용 메뉴를 제공해요.
이게 가장 직관적이고 실패 확률이 적습니다.- 작동 원리: 사용자가 동기화할 '소스' 폴더를 지정하고, 그 안에서 제외하고 싶은 파일/폴더 패턴(예:
*.tmp,.git,node_modules/)을 리스트 형태로 입력합니다. - 장점: 별도의 스크립트 지식이 거의 필요 없고, 시각적으로 어떤 파일이 빠지는지 확인하기 쉬워요.
- 팁 (가장 중요):
node_modules같은 건 폴더 구조가 깊고 파일 수도 어마어마해서, 이걸 제외하는 게 동기화 시간을 획기적으로 줄여주고 용량도 아껴줍니다. - 주의점: 툴마다 제외 패턴 문법이 다를 수 있어요.
예를 들어, 어떤 건!*.log처럼 느낌표를 쓰거나, 어떤 건 와일드카드(*)만 쓰게 되어 있어서, 툴 매뉴얼을 한 번 훑어보는 게 좋습니다.
B.
Rsync (리눅스/맥OS 환경에서 많이 쓰이는 CLI) 만약 어느 정도 리눅스나 macOS 환경에 익숙하시거나, 가장 안정적이고 강력한 CLI 기반의 동기화를 원하신다면rsync가 정답입니다.
이건 단순한 '동기화' 개념을 넘어서 '증분 백업'의 표준처럼 쓰여요. - 핵심 옵션:
--exclude옵션을 사용합니다. - 사용 예시:
rsync -av --exclude='.git/' --exclude='*.log' /local/ /remote/* 여기서.git/는 폴더 전체를 제외한다는 의미가 강하고,*.log는 확장자가.log인 모든 파일을 제외한다는 의미입니다. - 장점: 속도가 매우 빠르고, 전송된 파일의 변경된 부분만 효율적으로 전송하기 때문에 네트워크 환경에서 최고예요.
- 단점: 명령어 기반이라서 초보자에게는 진입 장벽이 높아요.
- 실무 팁:
rsync는 옵션 조합이 생명입니다.
-a(archive 모드)는 권한, 시간 정보 등을 유지해주니 꼭 넣으시고,--delete옵션을 쓸지 말지를 신중하게 결정해야 해요.
--delete를 쓰면 소스에 없는 파일은 타겟에서도 지워지니, 테스트할 땐 꼭 백업 폴더에 먼저 돌려보세요.
C.
Syncthing 또는 클라우드 서비스 연동 툴 사용 시 만약 지속적인 '양방향' 동기화가 목적이라면, Syncthing 같은 P2P 기반의 파일 동기화 툴을 고려해볼 수 있습니다. - 제외 규칙 설정: 이 툴들 역시 설정 UI 내에서 'Ignore Patterns' 같은 섹션을 제공합니다.
- 특징: 이들은 실시간으로 감지해서 동기화하기 때문에, 제외 목록에 빠지는 파일은 애초에 동기화 과정에서 인지조차 안 하도록 막아줍니다.
- 추천 기준: '한 번 설정하고 잊어버리고 싶다'거나, '여러 장치(PC, 랩탑, NAS 등)에 걸쳐 동기화하고 싶다'면 이쪽이 좋습니다.
--- ### 2.
제외 규칙 작성 시 흔히 하는 실수 및 고급 팁 어떤 방법을 쓰시든, 제외 규칙(Exclusion Pattern)을 다룰 때 몇 가지 함정이 있습니다.
️ 실수 1: 폴더와 파일 구분 안 하기 예를 들어, .git폴더를 제외하고 싶을 때 그냥*.git이라고 적으면, 이름이.git인 모든 파일만 제외할 수도 있어요.
폴더 자체를 제외하고 싶다면, 보통 경로 끝에 슬래시(/)를 붙여서 **"이 경로 자체를 통째로 제외해라"**라는 명시적인 의미를 주는 게 안전합니다.
(rsync의 경우 이게 중요해요.)
️ 실수 2: 패턴의 우선순위 문제 만약 A라는 폴더 안에 B라는 이름의 파일이 있고, A 폴더 전체를 제외하고 싶은데, 규칙을 잘못 쓰면 B 파일이 포함된 다른 폴더까지 영향을 받을 수 있어요.
규칙을 가장 구체적인 것부터, 가장 포괄적인 순서로 작성하는 것이 좋습니다.
실무 팁: '필수 제외 목록' 미리 만들어 두기 어떤 프로젝트든 공통적으로 무조건 제외해야 할 목록이 있어요.
이걸 템플릿으로 만들어두면 다음에 다른 프로젝트를 할 때 시간을 아낄 수 있습니다.
버전 관리 폴더:
.git/,.svn/(버전 관리 시스템 폴더는 로컬 환경에서 작업 기록만 가지고, 백업용으로는 필요 없음) 2.
빌드/임시 폴더:build/,dist/,target/(컴파일 결과물 폴더) 3.
의존성 라이브러리:node_modules/(가장 용량이 크고, 재설치가 필요하므로 제외하는 게 일반적입니다.) 4.
로컬 설정 파일:.DS_Store(macOS),Thumbs.db(Windows) 등 운영체제에서 생성하는 메타데이터 파일.
추가 고려 사항: 심볼릭 링크(Symlink) 처리 만약 프로젝트 구조 내에 심볼릭 링크가 포함되어 있다면, 동기화 툴이 이 링크를 어떻게 처리할지 확인해야 합니다.
일부 툴은 링크 자체를 무시할 수 있고, 일부는 링크가 가리키는 '원본'까지 재귀적으로 동기화할 수 있어요.
원하는 동작 방식에 맞게 툴 옵션을 확인해주세요.
--- ### 요약 및 최종 조언 질문자님의 상황을 종합해 볼 때, 가장 적은 노력으로 높은 안정성을 원하신다면, GoodSync 같은 GUI 기반의 전문 툴을 사용하시면서, 제외 규칙 목록을 명확하게 관리하시는 것을 추천합니다.
만약 성능과 자동화 스크립팅이 주 목적이라면, rsync의--exclude옵션 조합을 익히는 것이 장기적으로 가장 강력한 무기가 될 겁니다.
결론: 사용하시는 툴의 '제외 패턴(Exclusion Pattern)' 문법 가이드를 최우선으로 찾아보시고, 위에 언급드린 필수 제외 목록(특히node_modules,.git)을 적극적으로 활용해 보세요.
궁금한 점 있으시면 언제든지 다시 질문해주세요.
동기화 작업은 한 번 잘못되면 데이터 유실로 이어질 수 있으니, 반드시 테스트용 폴더에 먼저 돌려보고 규칙을 수정하는 습관 들이시는 거 잊지 마시고요! - 작동 원리: 사용자가 동기화할 '소스' 폴더를 지정하고, 그 안에서 제외하고 싶은 파일/폴더 패턴(예:
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
등록 로그인