본문 바로가기

카테고리 없음

macOS의 숨겨진 파일, .DS_Store 삭제해도 될까?

0. 들어가며

왜 .DS_Store에 대한 글을 쓰는가?

Git을 사용하며 .DS_Store 파일이 Unstage 상태로 표시되는 것을 확인하게 되었습니다. 그럼에도 Finder에서 이 파일을 볼 수 없어서 무엇인지, 왜 생성되었는지 궁금해졌습니다. 이 글을 통해 .DS_Store 파일에 대한 설명과 그 처리 방법을 공유하고자 합니다.

넌 누구냐..

1. .DS_Store 파일이란 무엇인가?

.DS_Store는 "Desktop Services Store"의 약자입니다. macOS에서는 폴더의 아이콘 위치나 배경색과 같은 사용자 지정 뷰 설정 정보를 저장하기 위해 이 파일을 사용합니다.

.DS_Store는 macOS에서 폴더의 아이콘 위치나 배경색 등의 사용자 지정 뷰 설정 정보를 저장하는 파일입니다. 폴더 내의 아이템 위치를 Finder에서 조정하면, 그 설정이 이 파일에 저장되어 폴더를 열 때마다 동일한 뷰로 보여집니다. 각 폴더마다 별도의 .DS_Store파일이 생성되므로, 폴더별로 다른 뷰 설정을 가질 수 있습니다.

2. .DS_Store 파일은 지우는 게 좋은가?

앞서 말한대로 .DS_Store는 폴더 뷰 설정을 유지하기 위한, 즉 사용자 경험을 개선하기 위한 파일이기 때문에 시스템 작동에 필수적인 파일이 아닙니다. 단지, 해당 파일을 삭제하게 되면 Finder에서 해당 폴더의 뷰 설정이 초기화되어 Mac 파일 시스템의 기본 정렬 방식에 맞추어 표시되고, 파일 태그와 메타 데이터들이 지워집니다. 해당 파일은 크기가 크지 않기 때문에 성능에 이점이 없기 때문에 지울 필요가 없고, 지운다고 해도 Finder를 통해 폴더를 열어 설정을 바꿀때마다 재생성되기 때문에 파일을 지우는 것은 좋은 방법이 아닙니다.

3. 파일을 어떻게 관리할 것인가?

앞서 이야기했듯 일반적인 상황에서 .DS_Store 파일은 문제가 되지 않지만 만약 .DS_Store 파일이 Git과 같은 버전 관리 시스템에 포함되면, 이 파일은 자주 변경될 수 있기에 불필요한 커밋이나 변경 내역이 발생할 수 있습니다. 이는 협업 시 혼란을 초래할 수 있으며, 저장소의 크기가 불필요하게 증가할 수 있습니다. 따라서, 해당 상황에서는 .gitignore 파일에 해당 파일을 추가하여, 관리하는 것이 바람직합니다.

 

만일 구글 드라이브 같이 공유 드라이브를 사용하는 경우에는 해당 명령어를 입력하면 드라이브에 해당 파일이 업로드 되는 일을 방지할 수 있습니다. 

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

하지만, 해당 명령어를 사용한다고 해서 .DS_Store 파일 자체의 생성을 막지는 못합니다.

 

Git과 같은 버전 관리 시스템에서 프로젝트를 생성하거나, 기존의 프로젝트를 가져와 작업을 시작할 때 의도치 않은 커밋 변경 내역을 방지하기 위해서 자신이 하는 프로젝트의 스택이나 OS에 맞는 .gitignore의 초기 설정을 잘 해야할 것 같습니다.

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

gitignore.io를 통해 OS, 언어, 프레임워크에 맞는 .gitignore 파일을 생성할 수 있으니 참고하시길 바랍니다.

4. 마무리

.DS_Store 파일은 사용자 지정 뷰 설정 정보를 저장하는 파일로 성능에 지장이 없을 뿐더러, Finder로 폴더를 열어 설정을 수정할 때 마다 다시 생성되기 때문에 굳이 지우지 않는 것이 좋습니다. 다만, 버전 관리 시스템이나 클라우드 공유 서비스를 이용할 때는, .gitignore나 OS 설정을 통해 해당 파일이 공유되지 않도록 설정하는 것이 좋습니다.