본문 바로가기
React TIL

[React] Day_62 개인 프로젝트 작업 뜨라블슈띵 (1)

by 림졍 2024. 12. 16.
728x90
반응형

 

말도 많고 탈도많은 Next.js..

뜨라블슈띵도 하나하나씩 적어보고자 합니둥-!

가 보 도 록 하 자 gu-yo.

 

모로가도 돌아가기만 하면 된다..!(?) _ 림졍

 

 

뜨라블 슈팅 - 파일 이름 대소문자 충돌 문제

 

문제 상황

 

않이 그래서 외 않바꽈쥬눈대?

 

 

.ts와 .tsx 이것저것 쓰다보니... 

내다버린 대소문자 구분...

막바지에 하다보니 생각나 버렸죠..?

그래서 다시 으아아아아 하면서 바꿨는데...

띠용... 왠걸 뻘건줄이 뜨더니 위의 이미지처럼 대소문자만 다르다며 인정을 안해준다는 것이었다...!!!!

 

...아니요 ^0^;;

 

 

알고보니 내가 사용하는 맥북과 같은.. macOS의 파일 시스템은

기본적으로.. 대소문자를 구분하지 않는돠....!!!!! 

그래서 시뻘건 에러로 충돌을 보여준다고... ㅠㅡㅠ

 

 

원인 분석

 

우선 원인을 3가지로 나누어 생각해보았다.

 

  • 대소문자 혼용 
    파일 이름이 대소문자를 혼용해버리는 바람에..  champion.ts와 Champion.ts 가 구분이 가지 않았을 것이다!
  • import 경로 불일치
    코드에서 @/types/champion와 @/types/Champion이 혼용되어 우리의 콤퓨따가 제대로 읽지 못했을 것이다!
  • Git 문제
    Git은 대소문자 변경을 추적하지 못해가지고.. 이름 변경이 반영되지 않을 수 있다!!

 

해결 방법

 

- Git 충돌방지 + 파일명 변경 반영하기

 

Git은 바보라서 대소문자 변경만으로는 파일 이름 변경을 인식하지 못하므로...

아래 명령어를 사용해 변경사항을 강제로 반영하도록 만들어주었다.

[기존 -> 수정될 글자 순으로 작성하기!! (중요)]
git mv src/types/Champion.ts src/types/champion.ts
git commit -m "fix: 파일 이름 대소문자 통일"

 

 

결과

 

파일 이름 및 import 경로의 대소문자 충돌이 해결되어 빌드 및 개발 환경에서

더 이상 시뻘건 충돌 에러가 발생하지 않았다!! (이얏호!)

 

 

추가 - git config 어짜고는 왜 안되었을까...

 

실은 예전에도 버셀 배포나 이미지 업로드 시, 대소문자 이슈로 인해 여럿 문제가 났었던 림졍.

해당 트러블 슈팅 이전, 과거 대소문자 오류났을때 사용했던 git config 의 core.ignorecase 를 적용시키고자 하는데..

git config —local core.ignorecase false

 

명령어를 터미널에 입력하니, 처음에는 이런 오류가 떴고..

error: key does not contain a section: —local

 

다음에는 이런 오류가 떠버렸다!! (두둥.)

error: unknown non-ascii option in string: `-—local'

 

 

어... 이럴리가 없는데 @.@....

 

 

처음 오류 건으로 인해.. 음... 다른 것을 사용해야 하나 싶어

다른 방법을 찾던 중, 위의 뜨라블슈팅처럼 git mv 명령어를 적용했으나...

그래도 지금까지 되었던 친구가 왜 안되지?? 라는 생각에 원인을 찾아보고 싶어졌던 림졍은

원인을 분석해 보았는데...

 

알고보니 해당 명령어를 보관하고 있던 메모장...에서

복사 후 붙여넣기 과정에서 하이픈(-)이 —(긴 대시) 또는 다른 특수 문자로 변경되어

Git에서 인식하지 못했..다는거 🤦🏻‍♂️ (어쩐지 안되더라)

 

결론은 해피엔딩이지만,

명령어를 볼 때에는... 제대로 입력되었는지 다시 한 번 확인할 것을 명심하자라는 깨달음을 얻게 된 이번 트러블 슈팅이랄까...

 

또한 이번에 작성하면서 알게 된 점으로는

파일 이름 변경 시, 정확하게 경로를 추적하기 위해서는  git mv 사용해야 한다는 거~

(core.ignorecase를 false로 설정해도, 대소문자 구분X 파일 시스템에서는 파일명 변경을 Git이 감지하지 못하는 경우도 존재하기 때문)

[출처 :  바로가기 ]

 

오늘의 뜨라블 슈팅 끝-!

내일도.. 작성해야징 ^-^)b

 

 

728x90
반응형