Intellij 에서 갑자기 java.util.List 가 인식(자동 import)이 안될 때..

오늘도 어김없이 인강 들으면서 완전 집중을 하고 있었다. 그런데 항상 이상한게 똑같은 인강을 반복해서 보는데 왜 항상 다르게 빨간줄이 가는 것일까?..ㅜ

보통은  불편함을 조금이라도 해소하려고 AutoImport를 켜두고 단축키를 사용해서 빠르게 import를 진행하는데, 항상 그렇듯이 문제가 되기 전까지는 습관적으로 하는 것들이 참 많은 것 같다. 그 중 오늘은 정말 무의식적으로 하던 자동 임포트인데, 어느순간 계속 List 컬렉션을 사용하는 쪽에 빨간줄이 가기 시작했다. 우선은 인강에서도 다른 부분들에 빨간줄이 가기에 그냥 아 뭐 별거 아닌가보다 실행하면 별 이상 없이 되겠지, 인텔리제이에서 그냥 놓치지 않게 체크해주는 것이구나 하고 넘겼다. 그러나 실행을 했을 때는 java: type antlr.collections.List does not take parameters  같은 오류가 발생했다. 처음 보는 것이기에 처음에는 뭐가 문제인지도 몰랐다.

 

우선은 프로젝트 구조를 보는 곳에서도 해당 클래스가 있는 패키지에 빨간줄이 가 있어서 뭔가 수정해야겠다하여 클래스에 선언한 List에 마우스를 클릭하여 빨간 전구를 눌러 Migrate라는 뭔가를 눌렀는데 인스턴스 쪽 지네릭스 타입도 명시적으로 지정이 되면서 빨간 줄은 사라졌다. 그래서 다시 실행을 했는데 메시지는 변함이 없었다. 물론 여기까지도 패키지 임포트가 잘 못 된 것을 몰랐다. 이게 바로 임포트할 때 항상 나오는 잘 보고 임포트해야된다는 그때 그 말이였다. 

 

다음으로 우선 [java.util.list 임포트 안됨] 으로 구글링을 했는데 가장 상단에 딱 하나 Intellij 에서 갑자기 java.util.List 가 인식(자동 import)이 안될 때.. 라는 제목이 보였다. 

 

☝️☝️☝️☝️

해당 블로그 글을 참고하자마자 바로 원인을 알 수 있었다. 강의를 따라서 라이브 코딩을 하다보니 기존에  만들지 않은 클래스를 참조변수로 선언하면서 기본적으로 제공되는 클래스명과 동일하여 해당 클래스로 인식이 되어 이 부분을 해결하기 위해서 Auto Import 기능을 잠시 꺼두고 진행을 했다. 그러는 과정에서 습관처럼 하던 ctrl + space 단축키를 사용하여 빠르게 임포트하다보니 List인터페이스에 대해서  java.util.List가 아닌  [antlr.collections.List]가 임포트 되어 있었던 것이다.  

 

☝️☝️☝️☝️

다음과 같이 Auto Import 셋팅으로 가보니 exclude항목에 저렇게 내가 사용하려고 한 java.util.List가 Auto Import 제외 대상으로 설정이 되어있다보니 바로 위에 그림처럼 임포트할 대상들에서 제외가 되어버리면서 마치 java.util.List가 사라진 것 같은 착각을 일으켰던 것이다.

 

☝️☝️☝️☝️

해결방법은 간단하게 제외대상에서 제거해주면 되는 것이었다. 정말 아주 간단한 문제였고, 인텔리제이를 Idea를 사용하면서 Idea setting으로 발생했던 문제였다.

 

다음과 같이 간단한 부분을 찾아보고 적용해보면서 너무 간편하게 사용했던 자동 임포트 부분에 대해서 한번씩은 이와같이 다른 것이 임포트 될 수 있는 상황에서는 슬쩍 체크를 하고 넘어가거나 확인을 하고 넘어가보면 좋겠다는 생각이 들기도 하고 인텔리제이에서 Auto import 셋팅에 항상 할 것인지 체크하는 항목만 알고 체크해주었지만, 이번 상황을 통해서 제외할 대상도 지정할 수 있는 부분이 있다는 것을 알게되었다.