IntelliJ + Spring Boot 개발환경 준비
어쩌다가 Spring을 공부하게 됐다. 백엔드에 대해서 아는 것이 아무것도 없어서 막막할 따름이다. 일단, 도서관에서 책이라도 빌렸다. 책에서는 이클립스에 STS 플러그인을 설치하여 사용하는데, 현재는 해당 플러그인이 검색되지 않을 뿐더러 비슷해보이는 플러그인은 버전 문제로 설치조차 안 된다. 이클립스 최신 버전에서 다시 시도를 해볼까 생각을 해봤지만, IntelliJ에서 다시 시도해보기로 했다. 다행히, IntelliJ 공식 문서에 Spring 프로젝트 생성에 관한 가이드가 잘 작성돼 있었다.
하지만, 위 문서에도 나와 있듯이 Spring 및 이와 관련된 플러그인에 대한 지원은 Ultimate 버전에서만 기본 제공된다. 난 Community 버전을 이용하기 때문에, 다른 방법을 알아보아야 했다. 구글링을 해보니 다음과 같은 질의응답을 찾을 수 있었다.
질문자는 Spring Initializer Website를 이용해 Spring Boot 프로젝트를 생성했다고 언급했다. 이는 https://start.spring.io/으로 추정된다. 그리고 답변자는 Comunity 버전에서는 Spring Boot에 관한 지원을 제공하지 않으니 Gradle 혹은 Maven을 이용하여 빌드 및 실행해야 한다고 답했다. Gradle과 Maven은 옛날에 안드로이드 스튜디오에서 본 적이 있으나 이에 대해 알지는 못한다. 그래서 이에 대해 찾아보았다.
이들은 빌드관리도구다. 프로젝트에 필요한 라이브러리들과 해당 라이브러리가 의존하는 또 다른 라이브러리까지 자동으로 관리(업데이트)해준다. 둘 중 Gradle이 더 좋다고 하는 것 같다. 가독성이나 속도에서 이점이 있는 것 같다. 프로젝트에 Gradle 속성 파일을 작성해두고 빌드 버튼을 누르면 자동으로 라이브러리를 다운로드하여 준비해주는 것 같다. 다행히도 IntelliJ 모든 버전에는 기본적으로 Gradle이 제공되고 있고, Gradle 프로젝트를 위한 가이드가 있다. 근데 뭐 딱히 가이드가 필요한 정도까진 아닌 것 같다.
위에 언급한 Spring Initialzier 사이트를 통해 Spring Boot 프로젝트를 생성하여 IntelliJ에서 불러와줬다. 불러오고 모든 라이브러리까지 로드했는데, 실행 구성을 해줘야할 것 같다. 그냥 실행을 해버리면 오류가 난다.
Execution failed for task ':compileJava'.
> invalid source release: 11
생각해보니 JDK를 찾지 못해서 발생한 오류 같다. 블로그 글을 보고 프로젝트와 Gradle에서 사용하는 JDK 버전을 11로 맞춰줬다.
이번엔 포트가 이미 사용 중이라는 오류가 뜬다.
Web server failed to start. Port 8080 was already in use.
application.properties 파일에 server.port: 9090으로 작성하여 다른 포트를 사용함으로써 해결했다.