프로젝트를 시작하면서 폴더명, 파일명은 PascalCase로 작성하기로 컨벤션을 정했지만, 팀원이 임의로 camelCase로 폴더명과 파일명을 사용하면서 시작된 문제였다.
Next.js로 개발을 하고 있었기 때문에 폴더 이름이 곧 라우팅이었고, 이 덕분에(?) 홈 화면에서 각 페이지로 연결할 때 다른 팀원이 컨벤션대로 연결한 링크가 제대로 작동하지 않았다.
하지만 이 문제는, 폴더명을 수정하면 된다고 한 편으로 가볍게 생각했기 때문에 문제가 되지 않았다.
그런데 문제가 정작 발생한 건 '폴더명을 변경해서 PR을 하고, 머지를 했는데도 리모트에서 폴더명이 PascalCase로 변경되지 않는' 것이었다. 그래도 이때까지만 해도 이 문제를 해결할 수 없는, 이유를 알 수 없는 문제 하지만 언젠가 기적같이 (...) 해결될 ㅋㅋ 문제라고 생각했다.. (무책임한 편)
하지만 개발엔 그런 일은 발생하지 않는다.
찝찝했지만 그럭저럭 넘어간 일은 반드시 내게 무언가로 돌아오는 게 ... 개발이다.. 😭
진짜 문제는 배포가 다 되고 나서, 링크가 연결되지 않는 그런 하찮은 (...) 게 아니었다.
빌드조차도 되지 않는 것!!! 그게 진짜 문제였다.
깃에 올라가는 순간부터 빌드, 린트 체크 등등 모든 순간이 다 슬랙으로 자동으로 보고(?)가 되는 회사를 다니는 나는...
그렇게 밤새도록 빌드에 실패했다는 알람을 사원들 모두에게.. 보냈다..
폴더명을 바꿨다가,
파일명을 바꿨다가,
파일 자체를 지우고 다시 새로운 폴더에서 만들었다가 등등등 정말 수많은 방법을 시도해봤지만 모두 빌드 실패.
해결법을 찾기 위해서 한참을 검색했던 키워드는 remote, local, git, 변경되지 않을 때 같은 조금 일반적인 것들이었다.
깃이 대/소문자를 구별하지 않고 있다는 건 꿈에도 생각을 못했기 때문이었다.
그렇게 새벽 네시까지 온갖 시도를 해보고 - 검색해보고 - 빌드에 실패하고 - 슬랙에 알람을 보내다가 더이상은 어떤 판단을 할 수 있는 상태가 아니라고 판단해 포기하고 DSM에 이를 이야기했다.
그때 귀인이 등장해 나에게 건넨 말: 혹시.. 깃이 대소문자 구별하지 않아서 생기는 문제 아닐까요?
서론이 길었다.
git은 대소문자를 구별하지 않는다고 한다.
그래서 작업이 어느정도 진행되어 PR이 쌓여(=캐시가 쌓여)있는 상태에서는 로컬에서 대소문자를 변경할 경우, 폴더명이나 파일명이 꼬일 수 있다.
이때는 깃이 대소문자를 인식할 수 있도록 해주고, 캐시를 지우고 다시 PR을 해야한다.
1. 먼저 git이 대소문자를 인식할 수 있는 명령어를 입력해주고,
$ git config core.ignorecase false
2. 캐시를 지운다. 이때 깃에 새로 커밋해야할 것들이 몇 백 개라고 뜰 수 있다.. 너무 당황하지 말자..
$ git rm -r --cached .
3. 다시 add-commit-push 한다.
그리고 이 작업을 (..) 수 번 해줘야 할 수도 있다.
내가 캐시를 지우고 한 번 PR을 하고, 그 브랜치를 머지한 이후에 다른 브랜치를 한 번 더 피알했는데,
그때도 동일한 현상으로 팀원들에게 알람을 또 (...) 스무번 정도 보냈다.
설마 캐시를 또 지워야 할 거라고 생각하지도 못했는데, 진짜 설마.. 하면서 다시 한번 위 과정을 거치고 나서야 겨우 빌드에 성공했다...
또 새롭게 작업하고 있는 브랜치에는 또 이 작업을 거치지 않기만을 바라는 마음으로 (아니 사실은 또 저 사유로 빌드 실패하면 바로 캐시부터 지우고 다시 커밋하기로 다짐하는 마음으로) 이 포스팅을 쓴다.