0. 알림창의 내용과 해석
IntelliJ 프로젝트를 새로 만들거나 오픈하면 Microsoft Defender configuration 알림창과 더불어 하나 더 뜨는 것이 있다.
바로 Download pre-built shared indexes 알림이다.
2023.08.05 - [분류 전체보기] - 인텔리제이 Microsoft Defender configuration(IntelliJ)알림, 경고
이번 글에서는 Download pre-built shared indexes 알림에 대해 알아보자.
알림 내용
전문
reduce the indexing time and CPU load with pre-built JDK shared indexes
해석
사전 구축된 JDK 공유 인덱스를 통한 인덱싱 시간 및 CPU 로드 감소
공유 인덱스를 사전 구축하여 인덱싱 시간 및 CPU 로드를 줄인다고 한다.
먼저 어떻게 하면 좋은지를 알아보고, 그 다음 이것이 무엇인지, 왜 하라고 하는지 알아보자.
1. 해결책 - Always download
Always download 버튼 누르기
인덱싱 시간을 줄이고, CPU로드를 줄인다고 하네?
버튼을 Always download만 놓고 More은 펼쳐야 볼 수 있게 해놨다.
(눌러보면 한번만 다운, 더이상 표시하지 않기, 세팅 등이 있다)
나머지 버튼을 배치할 공간이 충분함에도 always download 버튼만 보이게 배치한 걸 보면 그냥 그거 누르라고 IDE에서 의도한 듯 하다. 눌러주면 된다. 다음부터는 알림창이 뜨지 않게 된다.
2. 인덱싱과 공유 인덱스
인덱싱이 뭐지? 어떻게 빨라지게 할까?
pre-built된 공유 인덱스를 다운로드 해서 인덱싱 타임과 CPU 로드를 줄인다고 써 있다. 이게 뭔지 궁금하다.
뭔지 찾아보기도 쉽게 IntelliJ IDEA를 만든 jetbrains에서 공식 문서를 제공한다! 같이 알아보자.
이하 인덱싱, 공유 인덱스에 대한 내용은 해당 문서의 개념을 알기 쉽고 가볍게 정리한 것이다. 자세한 내용은 맨 아래 참고링크에서 직접 확인해 볼 수 있다.
2.1 인덱싱
인덱싱이란?
IntelliJ에서 인덱싱이라는 프로세스는 프로젝트의 코드를 검사하여 애플리케이션을 구성하는 클래스, 메서드, 개체 및 기타 코드 요소의 가상 맵을 만드는 것이다. 또 IDE의 핵심 기능인 코드 완성, 검사, 용도 찾기, 탐색, 구문 강조 표시, 리팩토링을 담당한다.
이는 코딩 지원 기능, 검색 및 탐색을 즉시 제공하는 데 필요하다.
미리 구조를 파악하기 쉽게 해놓고 참조 시 바로 제공하는 것이다.
인덱싱을 하는 시점
인덱싱은 프로젝트를 열 때, 브랜치 간 전환시, 플러그인 로드 또는 언로그 시, 대규모 외부 파일 업데이트 후에 시작된다.
인덱싱 후에 IDE는 코드를 인식한다.
2.1 인덱싱 속도를 높이는 방법 3가지
공식 문서에서 인덱싱 속도를 높이는 3가지 방법을 소개한다.
1. 공유 인덱스 사용
2. 파일 및 폴더 제외
3. 모듈 언로드
공유 인덱스에 대한 내용은 아래에서 살펴보고 2, 3을 먼저 살펴보자.
2. 파일 및 폴더 제외
동적으로 생성된 파일을 제외로 표시하면 제외된 파일은 프로젝트의 일부로 유지되지만 코드 완성, 탐색, 인덱싱 및 검사에서는 무시된다. 결국 인덱싱 및 전체 IDE 성능이 더 빨라진다.
폴더를 제외로 표시해도 배포에는 영향을 미치지 않는다. 배포에서도 제외하는 방법도 있다.
3. 모듈 언로드
프로젝트에 모듈이 세 개 이상 있을 수 있는데, 일반적으로 동시에 모두 필요하지는 않다.
이 경우 지금 당장 필요하지 않은 모듈을 임시로 따로 보관(언로드)할 수 있다. IDE는 코드를 검색하거나 리팩터링하거나 프로젝트를 컴파일하거나 인덱싱할 때 언로드된 모듈을 무시하게 되고, 이는 속도를 빠르게 한다.
2.1 공유 인덱스
로컬로 구축되는 일반 인덱스와 달리 공유 인덱스는 한 번 생성되고 나중에 필요할 때마다 다른 컴퓨터에서 재사용된다.
이 기능은 프로젝트의 소스 코드를 분석하여 인덱스를 생성하는 작업을 가속화하고 개발 환경의 성능을 향상시키는 데 도움이 된다.
이 기능은 여러 사람이 동시에 사용하는 팀 개발 환경에서 특히 유용하다. 왜냐하면 여러 개발자가 동일한 프로젝트를 작업할 때 소스 코드 분석 작업을 개별적으로 수행하지 않고, 이미 빌드된 인덱스를 공유하여 성능 향상을 이룰 수 있기 때문이다.
처음부터 인덱싱을 하는 것보다 미리 인덱싱 된 공유 인덱스를 사용하면 더 빠르다는 것이다.
우리가 봤던 Download pre-built shared indexes가 이 공유 인덱스를 다운로드 하라는 이야기였다.
마무리
Shared indexes 문서에 보면 Shared project indexes가 있다.
Shared project indexes를 사용하는 것은 인덱싱에 많은 시간이 소요되어 관련 팀에 불편을 줄 수 있는 대규모 프로젝트에 적합하다고 한다. 소규모 프로젝트의 경우 인덱싱 시간을 줄이는 다른 방법을 권장한다고 하는데, 이는 나중에 살펴봐야겠다.
출처
https://www.jetbrains.com/help/idea/indexing.html#exclude
Indexing | IntelliJ IDEA
www.jetbrains.com
https://www.jetbrains.com/help/idea/shared-indexes.html
Shared indexes | IntelliJ IDEA
www.jetbrains.com
'개발' 카테고리의 다른 글
토이프로젝트2: 여행 여정 기록관리 서비스-RESTful API [야놀자X패스트캠퍼스 백엔드 개발 부트캠프] (0) | 2023.11.08 |
---|---|
Fetch API (0) | 2023.08.07 |
Microsoft Defender configuration(IntelliJ)알림, 경고(윈도우 디펜더 제외:InetlliJ) (0) | 2023.08.05 |
[HTTP] GET, POST method (0) | 2023.08.03 |
메타태그(meta tag), 메타데이터(meta data)란 무엇일까? (0) | 2023.08.03 |