왜 느릴까요?
일단 기본적으로 프로젝트의 컴파일할 클래스가 많이지면 빌드 속도가 느려진다는 것은 어떠한 개발자든 반박하지 못 할 것이다
그러함에도 불구하고 우리는 개발에 퍼포먼스를 내야 하는데 빌드가 너무 느려서 힘들다.
개발 할 때 핫스왑 도구를 사용하지 않는 사람은 없을 것이다.
핫스왑 도구를 사용해도 느리다.
핫스왑을 할려면 클래스의 컴파일이 발생하고 왓칭하고있는 폴더의 클래스들이 변경되면 감지를 통해서 다시 메모리로 로드하는데
이미 빌드자체가 느린 것이다.
그럼 거두절미 하고 왜 느린지 알아보자.
정답은 빌드의 방법
언제 부터였는지는 모르겠지만 인텔리J의 그래들의 설정을 보면 빌드 및 실행이 Gradle로 바뀌었다.
이 부분이 IinteliJ IDEA로 바뀌면 빌드 속도가 엄청나게 빨라질 것이다.
왜냐? InteliJ는 증분빌드를 하고 그래들은 증분빌드를 하지 않기 때문이다.
인터넷에 쳐보면 그래들은 증분빌드를 지향한다고 되어있다.
그래들은 파일 하나하나의 비교를 하지 않고 Jar 단위의 비교를 하게된다.
그래서 멀티모듈에서 변경이 없다면 하위모듈을 컴파일 하지 않는다는가 이런건 가능하지만 Class 하나 하나 증분처리가 안된다는 것이다.
하지만 인텔리제이 빌드는 증분빌드를 진행하기 때문에 실제로 변경된 파일만 컴파일을 진행하고 빌드한다.
그렇기 때문에 엄청나게 빠른것이다.
추가적인 설정이 있을까?
자바 컴파일러 설정에 저 옵션을 넣어줘야한다 안그러면 에버 발생한다.
반드시 주의 할점은 기존 Gradle 빌드였다가 InteliJ 빌드로 변경한 경우 out 폴더를 지우고 다시 전체 싹 빌드해야한다.
참고로 Gradle 빌드시에는 build 폴더 InteliJ 빌드시에는 out 폴더에 떨어진다.
결론 그래서 어떻게 설정 해야하는데?
개발 할때는 무조건 인텔리J 빌드를 사용하고 배포시에 그래들 빌드를 사용하시면됩니다.
물론 이제 인텔리J 빌드를 사용하다보면 배포시에 빌드가 안될 수도 있으니 간간히 그래들 빌드로 체크해 보는것도 좋은 방법이겠다.
'프로그래밍 > InteliJ' 카테고리의 다른 글
InteliJ Gradle "connection reset by peer" 문제 해결하기 (0) | 2025.03.12 |
---|---|
InteliJ에서 루트폴더에 나타나는 Window 경로 없애기 (0) | 2022.05.23 |