프로젝트를 진행하는 과정에서 재부팅을 많이 해야하는 상황이 왔었다, 그래서인지는 몰라도 메모리를 많이 사용하게 되었다. 결과적으로 Gradle을 이용한 clean 및 Build가 되지 않았다, 결론부터 말하자면 메모리 부족으로 일어난 현상이었는데 나중을 대비해 이렇게 작성해둔다.
확인해보니 Deamon을 실행할 수 없다는 메세지가 출력되었고 나아가 어째서 Deamon을 실행 할 수 없는지 원인을 검색해보니 다음과 같은 원인을 파악했다.
Deamon : Gradle에서 제공하고 있는 백그라운드 프로세서로 원래는 JVM이 실행되고 난 후에 Gradle이 실해되는데 그 과정에서 걸리는 시간을 줄여주고자 만들어진 프로세스이다.
이렇게 일어날 수 있는 원인을 파악했다, Gradle과 java의 호환성 문제는 일단 가능성이 적다, 왜냐하면 Spring Initializr로 프로젝트를 구성했기에 버전 호환성은 알아서 맞춰준다, 그리고 build.gradle 스크립트 오류또한 문제가 없다. 애초에 스크립트 에러가 났으면 실행조차 되지 않았을 것이다. 그렇다면 이제 메모리 문제가 남는데 제일 까다로운 문제이기도 하다.
나는 작업을 VSCode로 하는데 재부팅을 해도 전혀 효과가 없었다.
PC 재부팅을 통해 메모리를 정리하고 여유공간을 만들어 주는 것도 시도했다. 하지만 마찬가지로 전혀 효과가 없었다.
Deamon은 기본적으로 아무런 세팅이 없으면 512mb로 세팅되어있다. 만약 변경하고 싶으면 프로젝트 root디렉터리에 gradle.properties
파일을 생성하고 확장하는 설정을 넣어주어야한다.
파일을 추가했다면 하단의 설정을 properties파일에 작성하면 되는데 하단의 설정은 앞에서 말한대로 1GB로 확장하는 설정이다.
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g
다행히 문제를 해결할 수 있었다.
다행히 문제를 해결할 수 있었지만 동시에 그런생각도 들었다, 대체 어디서 메모리를 많이 사용하길래 최대 Heap영역을 확장까지 해야 하는가 시간이 나면 필요없는 설정들을 정리해야겠다.