본문 바로가기
Web Programming/springboot

VSCode에서 SpringBoot with gradle 프로젝트 생성 & 실행

by 맑은안개 2021. 4. 27.

  2019년, Stack Overflow에서 개발자를 상대로 선호하는 프로그램 개발 툴을 조사한 결과, VS Code가 50.7%로 가장 선호되는 툴로 선정됐다. Electron Framework로 만들어졌으며 Java, Javascript, Python등 다양한 프로그램 언어를 사용할 수 있다. 

 

  플러그인을 손쉽게 제작, 배포할 수 있어 프로그래밍에 도움되는 다양한 Extension이 존재한다. Extension을 사용하여 손쉽게 Springboot 프로젝트를 생성 & 실행해 본다.

 

  실행에 자동화빌드툴인 🐘Gradle을 사용한다. Gradle은 Maven과 함께 가장 많이 사용되며 비교되는데, Gradle이 Maven에 비해 커스텀 빌드 기능이 더 뛰어나다. 개인적으로 코드도 더 직관적이라 생각한다.  

 

설치 준비 & 실행 환경

  • Java 11 ( download ) - OpenJDK11, Window 10 64bit
  • JAVA_HOME 환경변수 설정 ( 커맨드 창에서 java -version 명령입력, 정상 출력 확인 )
  • VS Code ( download )

VS Code Extension 설치

  • Java Extension Pack
  • Spring Boot Tools
  • Spring Initializr Java Support
  • Gradle Tasks

프로젝트 생성 

설치 된 Spring Initializr Extension을 사용하여 손쉽게 Springboot 프로젝트를 생성한다.

Ctrl + Shipt + P 를 실행하면 커맨드 팔렛트가 나오는데 spring initializr를 입력 후, Create a Gradle Project...를 선택한다. 

Java11 버전을 설치하였으므로 Java 버전은 11을 선택하고 기타 정보를 입력하여 프로젝트를 생성한다.

다음의 디렉토리 구조처럼 생성되면 성공적으로 생성된 것이다.

Initializer로 셋팅 후 디렉토리 구조

 

📜build.gradle

프로젝트의 Configuration을 관리하는 파일이다. 

plugins {
	id 'org.springframework.boot' version '2.4.5'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
	id 'war'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	annotationProcessor 'org.projectlombok:lombok'
	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
	useJUnitPlatform()
}

# plugins - 프로젝트에 사용할 플러그인을 설정한다. Springboot를 사용하기 위해 위 3개는 필수 항목이다. 

# sourceCompatibility - Java 코드 컴파일 버전 정의

# targetCompatibility - 코드가 실행 될 최소 JVM 버전 정의

# repositories - Dependencies Library의 저장소를 지정한다. mavenCentral(), jcenter(), google()와 같은 공개 저장소를 사용하거나 외부망이 아닌 기업 내부망을 사용하기 위한 옵션을 제공한다.

# dependencies - 라이브러리의 의존성을 관리한다. 프로젝트에 사용할 라이브러리를 의존성 관리 속성과 함께 지정한다. 의존성 관리 속성( Dependency Configurations ) 의 자세항 사항은 여길 참조한다.

gradle binary 설치

터미널 창에서 ./gradlew 입력하여 gradle을 설치한다. 

Gradle Tasks 실행

./gradlew <task> 명령어를 사용하여 gradle task를 실행한다.

war task실행

Gradle Extension으로 Task 실행

VSCode Extensions, Gradle Tasks를 사용하면 더욱 쉽게 Task를 실행할 수 있다. 

Gradle Tasks extention

 

Web Controller 추가

Gradle 셋팅을 간략히 살펴봤다. 이제 간단한 Controller를 추가하여 Springboot 실행 후 서버에 접속해보자.

📜src/main/java/com/example/demo/DemoController.java

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DemoController {

    @RequestMapping("/")
    public String index() {
        return "This is Demo index page";
    }
    
}

DemoApplication.java 실행

Springboot 정상 기동 화면

콘솔에 위와 같이 로그가 프린트 됐다면 localhost:8080으로 접속하여 결과를 확인한다.

 

localhost:8080 접속 화면

 

Springboot + JPA 관련글

2021.10.20 - [Web/springboot] - VSCode에서 Spring boot + JPA(mysql) on Windows 10 + Docker 튜토리얼

반응형