이 글은 다음을 참고하여 작성되었습니다. 감사드립니다. 🙇🏻♂️
인텔리제이에서 작업 중 리팩터링 -> 메서드 추출이 안되길래 우측 하단을 살펴보니 저런 작업이 무한 반복되고 있었다.
자동완성 같은 스마트 기능은 물론 .을 눌러서 메서드를 호출하거나
문법상 오류를 빨간줄로 표시하거나 테스트를 실행하거나..
아예 IDE 자체가 멈춰버리게 되어 핵심 로직을 짜는 것에 집중하지 못했다.
적당히 구글링하고 넘어가고 싶지만 언젠가 또 같은 문제로 프로젝트에 집중하지 못하는 상황을 예방하려면 근본적인 원인을 찾아 해결하려는 자세가 필요하다고 생각하여 해결과정을 정리해본다.
아마 2022.2월즈음 업데이트된 기능인 것 같다.
- IntelliJ IDEA의 인덱싱은 IDE의 핵심 기능인 코드 완성, 검사, 사용 찾기, 탐색, 구문 강조 및 리팩토링을 담당합니다.
- 프로젝트를 열고, 브랜치 사이를 전환하고, 플러그인을 로드하거나 언로드한 후, 대규모 외부 파일 업데이트 후에 시작됩니다.
- 예를 들어, 프로젝트를 빌드한 후 프로젝트에서 여러 파일이 생성되거나 생성되는 경우 발생할 수 있습니다.
IDE에서 다양하고 우수한 핵심 기능을 제공하기 위한 내부적인 동작같은데, 프로젝트의 규모가 지속적으로 변경되고 확장되는 상태에서
IDE내부 복잡성과 프로젝트의 복잡성이 계속 증가하여 메모리에 찾아온다는 것이 내가 가정한 근본적인 이유였다. RAM이 충분한 노트북을 사야하니 돈을 벌자!!
StackOverFlow의 조언대로
파일 -> 캐시 무효화 -> 무효화 및 다시 시작을 진행하면
어느정도 해결된다.
주의점은 반.드.시. "다운로드된 공유 생인을 제외로 표시" 부분을 체크해야한다.
이걸로 마음놓고 다시 작업을 하다보면 인덱싱 무한 반복이 몇번 더 찾아와서 캐시 무효화를 자주 하게 될 수 있는데..
이 때 한 번에 많은 캐시를 지우려는 생각으로 치명적인 실수를 할 수가 있다.
파일 시스템 캐시와 로컬 기록.. 을 지우면 절대 안 된다!!
지우면 나처럼 이렇게 프로젝트의 소스루트는 보이지 않는 상태에서 혼란을 직면하게 된다.
다운로드된 캐시만을 삭제하는 것보다 더 좋은 방법이 있는진 아직 모르겠지만 일단 파일 시스템 캐시, 로컬 기록은 무조건 보존해야한다.
이것에 대해 로컬 기록을 뒤져봐도 불러올 순 없었고
원격 저장소에 등록된 내 프로젝트를 다시 클론하는 방법을 시도하였다.
나는 메인 브랜치가 아닌 최근에 작업하던 특정 브랜치를 클론해야 하는 경우였어서, 자바지기님의 게시글을 참고했다.
git clone -b {branch_name} --single-branch {저장소 URL}
ex) git clone -b joohyonegKim --single-branch https://github.com/joohyeongKim/java-baseball
원격 저장소 관리를 제대로 하는 것의 중요성과,
원격 저장소의 정확성이 보장되었다면 프로젝트를 언제 어디서든 다시 불러올 수 있단 걸 알게 되어 안심된다.
결과
이 기록을 통해 언제든지 IDE에 쩔쩔매지 않고 프로그램 구현에 다시 집중할 수 있기를 바란다.ㅍ😃