기록

[issue] .Ds_store 파일 관리하기 본문

DevOps

[issue] .Ds_store 파일 관리하기

youngyin 2024. 2. 26. 16:40

개발 프로젝트를 진행하면서, 메이븐을 활용한 프로젝트 구성에서 발생한 .DS_Store 파일 관리에 대한 경험을 공유하고자 한다.

들어가면서

오프라인 환경에서 메이븐 프로젝트를 관리하던 중, 윈도우 환경에서 개발하는 상황에서 인터넷이 되는 PC에서 메이븐 라이브러리를 다운로드하고 개발용 PC로 옮겨야 했다. 이때, 윈도우로 옮겨온 라이브러리 파일들을 확인하니 .DS_Store 파일들이 숨겨져 있었다.
윈도우에서는 필요하지 않은  .DS_Store 파일들을 깔끔하게 제거하고, 라이브러리 파일을 개발자들 간에 깃으로 공유하기 위해 이 파일들을 깃에서 추적하지 않도록 설정하려고 했다.

해결방법

A) 터미널 명령어로 모든 경로의 .DS_Store 파일 삭제
# Windows
cd /d C:\path\to\your\folder
del /s /q /f .DS_Store

# macOS(참고)
find /path/to/your/folder -name .DS_Store -delete
B) gitignore를 활용하여 추적 방지

Git 저장소에서 .DS_Store 파일을 추적하지 않도록 하기 위해 .gitignore 파일을 사용

# .gitignore 파일 내부에 추가
.DS_Store

 

더 고민한 내용

.DS_Store 파일을 제거하는 행위의 적절성

 

왜 이 작업을 시작하게 되었는지 다시 고민해보다가 작업의 필요성에 대한 고민을 하게 되었다. 단순하게 윈도우에서 .ds_store 파일이 없는 것이 내눈에 '깔끔해' 보였기 때문이 아닌가? .ds_store 파일을 제거하는 것이 필요한 행위였는가? 이 행위가 어떤 의미를 갖는지 확인해보고 싶었다.

 

[.DS_Store 파일의 역할]

.DS_Store 파일은 macOS에서 폴더의 레이아웃 및 표시 방식을 기억하고 있는 파일이며, 주로 폴더의 아이콘 위치, 배치 등을 저장한다.

 

[행위의 필요성 : 프로젝트를 가볍게 유지하기 위해서]

프로젝트를 윈도우에서 진행할 때 macOS에서 생성된 .DS_Store 파일은 윈도우 환경에서는 필요하지 않은 파일이다. 불필요한 파일을 깃에서 관리하지 않음으로써 프로젝트를 가볍게 유지하는 측면에서 .DS_Store 파일을 제거하는 것이 필요하다.

 

불필요한 파일을 깃에 포함하지 않는 것에는 여러 이점이 있다 : 

1. 클론 및 풀 속도 향상:

저장소의 크기가 작아지면 클론 및 풀의 속도가 향상된다.

2. 의도하지 않은 파일 무시

특정 운영체제나 개발 도구에 의해 생성되는 파일들이 깃에 포함되지 않아, 팀 간 협업 시 의도치 않은 파일 충돌이나 불일치를 방지한다.

3. 유지보수 용이성:

프로젝트의 핵심 파일들에만 집중할 있다.

 

처리순서

이미 저장소에 .DS_Store파일이 올라가있었기 때문에 A).DS_Store 파일을 삭제 한 후에 B) git에 의해 추적되지 않도록 처리하였다.

빠르게 현재 상태를 정리하고, 이후에 .gitignore 설정을 통해 새로운 파일을 추적하지 않도록 설정하는 것이 더 유리하다고 생각했다.

 

Comments