프로젝트 생성 후 실행 시 나오는 에러
문제 발생
--
Spring Boot로 프로젝트를 시작하기 위해
"spring initializr" 사이트에서 프로젝트를 생성 후
해당 프로젝트 생성 설정
Project : Gradle - Groovy
Language : Java
Spring Boot : 3.4.0
Packaging : Jar
Java : 17
IntelliJ로 열어 바로 실행하면 아래와 같이 에러가 발생한다.
--
해결 방법
--
IntelliJ의 좌측 상단에
File -> Settings -> Build, Excution, Deployment -> Build Tools -> Gradle 경로로 이동하여
Build And run using과 Runtests using을
기존 Gradle에서 IntelliJ IDEA로 변경 후 적용한 다음 실행하면 된다.
(만약 안된다면 IntelliJ를 껐다가 다시 키면 된다.)
--
gradle 빌드 방식과 IntelliJ 빌드 방식의 차이
--
Gradle 빌드 방식
Gradle의 "build.gradle" 또는 "build.gradle.kts" 파일에 정의된 빌드 스크립트를 실행하는 방식으로,
Gradle 설정에 따라 의존성 다운로드, 소스 컴파일, 테스트, 애플리케이션 실행 등이
Gradle 명령을 통해 진행하도록 한다.
Gradle 데몬을 사용하면 캐싱을 통해 빌드 속도가 빨라질 수 있지만
처음 실행하거나 데몬이 활성화되지 않은 경우 초기 빌드 시간이 길어질 수 있다.
IntelliJ IDEA 빌드 방식
IntelliJ에서 자체 제공하는 빌드 시스템으로 프로젝트를 빌드하고 실행한다.
"build.gradle"에 정의된 일부 스크립트는 실행되지 않는다.
(ex Gradle 플로그인에 의존하는 빌드 작업)
IDE 내부 캐싱과 증분 빌드를 사용하여 빌드 속도가 빠르다는 장점이 존재한다.
여기서 Gradle 빌드 방식과 IntelliJ 빌드 방식의 가장 큰 차이는 "중분 빌드"를 하는 것이다.
증분 빌드
변경된 부분만 빌드를 하는 방식으로
변경되지 않은 것에 대해서는 건너 뛰고 빌드를 진행한다는 것이다.
그래서 빌드가 일반적으로 캐시를 사용하지 않는 Gradle 빌드 방식보다 빌드 속도가 빠르다.
다만 삭제된 파일에 대해서는 컴파일을 하지 않는다는 단점 아닌 단점이 존재한다.
--
미해결 된 의문
--
오늘 생성한 프로젝트 파일과
어제 생성했던 프로젝트 파일을 비교했을 때
어제 생성한 프로젝트는 잘 동작하고
오늘 생성한 프로젝트는 위와 같이 에러가 발생한다.
(둘 다 gradle 빌드 방식을 사용)
gradle 버전, jdk 버전, 스프링 버전, 빌드 방식 등 모든 면에서 동일하며
빠진 파일들도 없다.
둘의 차이라면 어제 생성했던 프로젝트는 일부 코드가 작성되어 있다는 것이다.
(웹 소켓 테스트용으로 웹소켓 config, handler, dto만 구현)
캐시를 지워도, build를 지우고 다시 설치해도 여전히 실행되지 않는다.
근본적으로 어떤 문제로 인해 gradle 빌드가 동작하지 않는지 모르겠다.
--
'Spring Boot' 카테고리의 다른 글
Spring boot에서 STOMP 사용하기 [ 간단한 채팅 용 ] (0) | 2024.12.03 |
---|---|
Spring boot에 WebSocket 사용하기 [ 간단한 채팅 용 ] (0) | 2024.11.27 |
이메일 발송하기 (Google SMTP Server/ Gmail을 통해 발송하기) (0) | 2024.06.01 |
spring security에서 발생하는 예외 처리하기 (0) | 2024.05.27 |
스케줄러(@Scheduled)를 이용하여 특정 로직을 자동으로 동작하게 하기 (0) | 2024.05.03 |