build.gradle을 보면 frontend(Vue.js)가 백엔드(Spring Boot)의 리소스 빌드 단계에 "강제로 항상 같이 돌아가도록" 되어 있습니다.
processResources.dependsOn 'buildFrontEnd'
이 설정 때문에
백엔드 Gradle 빌드(예: ./gradlew build, IntelliJ에서 Rebuild, Run)
누를 때마다
항상 프론트엔드 디렉토리(여기서는 '../../Frontend')로 들어가서
npm run build가 무조건 실행됩니다.
이게 자동 빌드가 반복 실행(쌓임) 되는 가장 큰 이유입니다.
processResources.dependsOn 'buildFrontEnd'
→ 임시로 주석 처리하거나
→ PbuildFrontend=true 옵션을 줬을 때만 빌드되게 만드세요!
if (project.hasProperty('buildFrontend')) {
processResources.dependsOn 'buildFrontEnd'
}
./gradlew build -PbuildFrontend=true
Frontend 빌드는 따로 수행하고,
Backend의 빌드 산출물(resources/static, resources/public 등)로 복사만 해도 OK.
processResources가 항상 프론트 빌드를 강제하므로
→ 작업 중(특히 소스 저장/자동 빌드 시)마다 frontend 빌드가 겹치거나 중복될 수 있음
개발할 땐 이 줄을 꺼두고 통합 배포나, 정말 필요할 때만 빌드가 같이 돌게 하세요!

// processResources.dependsOn 'buildFrontEnd' // ← 주석 처리!
./gradlew build -PbuildFrontend=true
혹은 진짜 풀 패키지가 필요할 때만 주석 해제!
정리:
지금 당신은 “매번 백엔드 빌드(action/processResources)마다 프론트 빌드가 무조건 추가 실행”되는 구조이니,
의존성 연결을 조건부, 혹은 수동 빌드로 바꿔라!
이렇게 하면 "자동 빌드 쌓임" 문제, 빌드 지연, 중복 빌드 현상이 바로 사라집니다.
“통합 빌드” 구조에서
processResources.dependsOn 'buildFrontEnd'
→ 이게 모든 백엔드 빌드 때마다 프론트까지 무조건 빌드시키는 설정이라서,
개발할 때 프론트 빌드는 수동,
백엔드 빌드는 백엔드만!
// processResources.dependsOn 'buildFrontEnd' // ← 일단 주석!
if (project.hasProperty('buildFrontend')) {
processResources.dependsOn 'buildFrontEnd'
}
통합 빌드시: ./gradlew build -PbuildFrontend=true
평소엔: 그냥 ./gradlew build
Frontend npm run build → 산출물(예: dist, build 폴더)만 복사
Backend 빌드에서는 프론트 산출물만 참조
작성/저장/단순 빌드에는 백엔드만 돌고,
실제 배포 상황에서만 둘이 통합!
빌드 시간 단축, 중복 문제 해결, 빌드 쌓임·느려짐 사라집니다.