개발일지/2023_한이음

[aws] ec2 build - 오류 100개 발생 (⭐중요한 팁 포함)

기억지기 개발자 2023. 9. 1. 20:59

🏕️상황

  • 로컬에서 프로젝트 빌드, 컴파일 시에 전혀 오류가 없었다.
  • 로컬에서 각 기능들이 너무나 잘 돌아가는 것을 확인하였다.
  • 그 상태로 깃허브에 올리고 ec2에서 git pull 받고 빌드를 시키니 오류가 아래와 같이 100개가 나왔다 :)

실제 오류 화면ㅎㅎ

 

💦과정

이전 블로그에 올렸듯이 dev와 main 브랜치를 합치는 과정에서 많은 오류를 마주치고 해결하는 바람에 깃허브에 올린 코드가 아래의 사진처럼 2개씩 생긴 폴더나 파일이 있었다. (같은 폴더인데 구버전 : dto, 신버전 : DTO)

 

그래서 기뻤다. 

왜냐? 이걸 고치면 오류가 100개씩이나 생기지 않을 것이라고 생각했다. 

하지만 고쳐서 수정해도 달라지는 것은 없었다ㅎㅎ 

실제 한이음 깃랩 화면

 

 

🗝️해결

오류가 100개가 아니라 10개라면 일일이 고칠 테지만 100개를 하나하나 고치는 건 말이 안 되고, 검색을 하려고 해도 뭐라고 검색해야 할지도 몰라서 멘토(교수님)께 여쭤보았다.

 

이거 맨 처음 에러를 보여주실래요?
이게 100개가 났다고 다 고치는 게 아니라 맨 처음 발생한 오류 때문에 연달아서 에러가 나는 경우가 대부분이라

 

  • 위의 말이 나의 개발 인생 중에 가장 띵언이 아닌가 싶다. (거의 감동을 먹었다.)
  • 어떻게 보면 당연한(?) 말일 수도 있지만 전혀 생각지 못한 부분이다.
    빌드를 쭈욱~하면 맨 아래에 error가 100개가 발생했다고 나와있고, 그걸 보고 천천히 올려다보며 좌절 + 어이가 없었다.  그래서 맨 처음 오류를 집중 깊게 들여다볼 생각을 못했다. 
  • 이 오류 화면을 보여 드리니까 바로 원인을 말씀해 주셨다.

실제 오류 화면
실제 깃랩 화면

 

💚원인 : 깃허브(깃랩)에 있는 클래스의 이름과 파일의 명이 달라서,  해당 클래스를 필요로 하는 곳에서 주르륵 오류가 발생

  • 인텔리제이에서 작업할 때 보면 Refactor 🔜 rename 기능을 통해 파일 이름을 바꾸면 알아서 클래스명도 바뀐다.
    그래서 당연히 이런 부분은 생각을 하나도 못했다. (물론 오류를 처음부터 잘 봤으면 해결될 일이긴 하자만...ㅎ)
  • 사진에 보면 핑크/노랑 박스의 맨 앞글자가 다르다. 
    이 부분이 문제가 되었던 것이다. 
  • 그래서 이 부분을 해결하니 바로 해결...
    (이런 현상이 발생한 이유도 깃 merge 시에 충돌해결 하다가 그런 거 같다...ㅠㅠㅠ)

 

성공....

 


💖이런 현상에 대하여...

이런 현상이 발생하는 이유는 OS별로 파일 시스템에서 대소문자에 대한 민감도 설정이 달라서 그렇다고 한다.

윈도우 같은 경우에는 이 민감도가 낮아서 크게 구분하지 않는 반면에 리눅스는 대소문자를 민감하게 구분해서 commit 하는 단계에서 나는 윈도우를 사용하여 개발하다 보니 감지를 못한 거 같다고 하셨다.

 

이런 케이스가 현업에서도 많이 발생하니 원인과 해결방식도 이해하고 간다면 좋은 경험이 될 것이라고 하셨다.