💾 멘붕 방지 - 백업

💾 멘붕 방지 - 백업
"실패를 준비하지 않는다면, 실패할 준비가 된 것이다." — 벤자민 프랭클린

처음 개발을 시작하다 보면 여러 가지 툴 🛠️, 라이브러리 📚, 그리고 설정 파일을 설치하고 수정하게 됩니다. 처음에는 깔끔하게 시작했지만, 시간이 지나면 시스템이 엉망이 되는 경우가 많아요. 😵‍💫

특히 여러 가지 실험을 하다 보면 삭제되지 않는 찌꺼기 파일 🗑️가 남거나, 중요한 설정이 꼬여서 결국 OS를 다시 설치해야 하는 상황이 발생할 수도 있어요. 그렇다면, 이런 상황을 대비하기 위해서는 백업이 필수입니다! ✅


📂 백업할 대상 정하기

개발 환경을 백업할 때는 두 가지 중요한 요소를 고려해야 해요.

  1. 데이터 백업 💾
    • 소스 코드 📜
    • 설정 파일 ⚙️
    • 문서 및 자료 📝
    • 프로젝트 관련 데이터 📊
  2. 시스템 백업 🖥️
    • 운영체제 설정 ⚡
    • 필수 프로그램 목록 📋
    • 시스템 환경 변수 🌎

데이터 백업은 매일 하는 것이 가장 좋고, 시스템 백업은 필요할 때마다 한 번씩 해두면 좋습니다.


🔄 증분 백업 vs 전체 백업

백업 방법은 여러 가지가 있지만, 대표적으로 전체 백업증분 백업이 있어요.

  • 전체 백업 🏠: 모든 데이터를 한 번에 백업하는 방식 (용량이 크고 시간 소요가 많음)
  • 증분 백업 📈: 변경된 파일만 추가로 백업하는 방식 (속도가 빠르고 효율적!)

개발 환경에서는 증분 백업이 가장 적합합니다. 매일 작업한 변경 사항만 저장하면서, 필요할 때 빠르게 복구할 수 있기 때문이에요. 💡


🛠️ rsync를 활용한 증분 백업 방법

rsync는 가장 널리 사용되는 백업 도구 중 하나로, 증분 백업이 가능하고 속도도 빠른 것이 장점입니다. 🚀

1. 처음 백업하기

rsync -av --progress /home/user/workspace/ /mnt/backup/workspace/
  • -a : 권한과 속성을 유지
  • -v : 진행 상황 표시
  • --progress : 복사 진행률 표시

2. 변경된 파일만 추가로 백업하기

rsync -av --delete /home/user/workspace/ /mnt/backup/workspace/
  • --delete 옵션을 사용하면 원본에서 삭제된 파일도 백업본에서 삭제됨 (동기화 효과) ❗

🌍 원격 서버에 백업하기 (ssh 사용)

백업을 외장 하드에만 하는 것도 좋지만, 원격 서버에도 백업해 두면 더욱 안전합니다. 🔐

1. 원격 서버에 rsync로 백업하기

rsync -av --progress -e "ssh" /home/user/workspace/ user@remote-server:/backup/workspace/
  • -e "ssh" : SSH 프로토콜을 사용하여 원격으로 전송

이제 원격 서버에도 안전하게 백업이 저장됩니다! 🏠


⏰ 자동 백업 설정 (크론탭 사용)

매일 자동으로 백업되게 설정하면 편하겠죠? 크론탭 (cron job) ⏳을 사용하면 정해진 시간마다 자동으로 백업할 수 있어요.

1. 크론탭 편집하기

crontab -e

2. 매일 밤 12시에 백업 실행하기

0 0 * * * rsync -av --delete /home/user/workspace/ /mnt/backup/workspace/

이제 매일 자정이 되면 자동으로 백업이 실행됩니다! 🌙


🚀 백업은 필수! 안전한 개발 환경을 위해

백업은 귀찮지만, 하지 않으면 반드시 멘탈이 붕괴되는 순간 😱이 찾아옵니다. 백업을 해두면 개발 환경이 망가져도 쉽게 복구할 수 있으니 꼭 실천하세요!

백업할 대상 정하기
증분 백업을 활용하기
자동 백업 설정하기
원격 서버에도 백업해 두기