inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

라이브러리 살펴보기

프로젝트 생성 강의 관련 질문드립니다~

248

ajdsasld

작성한 질문수 37

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

프로젝트 생성 강의 듣고나서 떠오르는 2가지 질문이 있어 글을 올려봅니다!

 

1) 먼저, 제가 start.spring.io에선 자바 17버전으로 프로젝트를 시작했는데, 막상 main 메서드를 실행시켜서 스프링부트 애플리케이션을 띄울 때 콘솔에는

2024-12-19T20:15:54.366+09:00  INFO 38362 --- [hello-spring] [           main] h.hello_spring.HelloSpringApplication    : Starting HelloSpringApplication using Java 21.0.5 with PID 38362 (/Users/.../Desktop/study/hello-spring/build/classes/java/main started by ... in /Users/.../Desktop/study/hello-spring)

이렇게 왜 자바 21.0.5버전을 사용하고 있다고 나올까요? 이미 제 맥북에 21버전 자바가 설치되어서 그런걸까요??

build.gradle에는

java {
   toolchain {
      languageVersion = JavaLanguageVersion.of(17)
   }
}

이렇게 17버전으로 올바르게 되어있긴 합니다!

 

2) 선생님께서 인텔리제이 Preferences > Gradle에서 Build and run using을 Gradle로 되어있는 걸 인텔리제이로 바꾸면 더 빠르게 실행할 수 있다고 하셨는데,

만약,

Gradle (Default)로 설정된 경우 > 인텔리제이 화살표 버튼을 클릭했을 때 자바 소스 코드를 컴파일하고 빌드 과정을 포함해서 빌드를 진행하고 스프링부트 애플리케이션을 실행하고,

IntelliJ IDEA로 설정된 경우 > 인텔리제이 화살표 버튼을 클릭했을 때 자바 소스 코드를 컴파일하고 빌드를 진행하지 않고 스프링부트 애플리케이션을 바로 실행하기 때문에 더 빠르게 실행된다고 하신걸까요??

java spring mvc spring-boot

답변 1

2

y2gcoder

안녕하세요. ajdsasld님, 공식 서포터즈 y2gcoder입니다.

1) 말씀하신 것이 맞습니다! 자바 프로젝트를 컴파일 & 빌드 후 실행하기 위해서 컴퓨터에 설치된 자바를 사용하게 되어있습니다. ajdsasld 님께서 설치하신 JDK 가 21이고 그걸 사용하기 때문에 실행 시 로그에 출력되고 있습니다 🙂

2) 자바는 기본적으로 컴파일 언어이기 때문에, Gradle 이나 Intellij 모두 컴파일 및 빌드 과정을 거쳐 만들어진 .class를 실행한다고 생각해주시면 좋겠습니다! Intellij는 Gradle과 다르게 변경되지 않은 파일은 다시 컴파일 하지 않고, 변경된 파일만 컴파일하기 때문에 대체로 속도가 더 빠른 편입니다.

다만 Intellij 는 아시다시피 IDE에 종속적인 빌드 도구이기 때문에 실제 컴파일 & 빌드 한 Jar를 배포할 때는 maven 이나 gradle을 사용하고 있다는 점,

intellij는 삭제된 파일이 빌드시에 삭제되지 않기 때문에 기대와 다른 동작이 발생할 수 있다는 점(참고 링크) 을 인지하고 사용하셔야 합니다!

그리고 스프링 부트 3.2버전부터 바뀐 컴파일 방식으로 인해 intellij 를 빌드 도구로 사용할 때는 추가적인 작업이 필요하다는 점을 이유로 자주 하는 질문(다음 링크)에서는 빌드 도구를 gradle로 설정하시기를 권장하고 있습니다 🙂

 

감사합니다.

..

0

76

2

Unused property.....

0

99

2

project JDK is misconfigured

0

132

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

82

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

230

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

103

2

윈도우 build test오류 질문

1

102

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

99

2

테스트 실행 시 에러 질문

0

291

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

129

1

윈도우 gradlew.bat 에러

0

167

1

@PostMapping("/members/new")가 동작하지 않습니다

0

88

1

java static class와 kotlin class

0

79

1

스프링 DB연결

0

126

1

소요 시간

0

85

2

ddl.sql에 빨간 밑줄

1

101

2

welcome page 에러

0

181

3

잘 모르겠습니다.

0

164

2

fail을 똑같이 쳤는데 오류가 발생해요

0

156

2

index.html Welcome page

0

121

1

프로젝트 gradle-groovy ?

0

369

1

테스트코드 메서드명 한글

0

202

2