[vscode] vscode에서 spring boot 개발
이번 포스트에서는 vscode에서 spring boot application을 개발해보자.
환경설정
eclipse에서 plugin을 설치해서 spring application을 개발하듯이 vscode에서도 extension을 설치해야 수월하게 개발이 가능하다.
Extension Pack for Java
Microsoft에서 나온 extension으로 java를 사용하기 위해 [Language Support for Java], [Debugger for Java], [Test Runner for Java], [Maven for Java], [Project Manager for Java], [Visual Studio IntelliCode]를 포함한다.
Spring Boot Extension Pack
Pivotal에서 나온 extension으로 spring boot 개발을 위해 [Spring Boot Dashboard], [Spring Boot Tools], [Spring Initializr Java Support] 를 포함한다.
프로젝트 설정
이제 드디어 spring boot application을 만들어볼 시간이다.
다음 절차를 이용해서 프로젝트를 구성해보자.
1. 프로젝트를 setup 하기 위하 initializr를 선택한다. 어떤 기반으로 application을 구성할 것인지 설정하는 것으로 일반적으로 Maven 또는 Gradle 기반으로 작성한다. 여기서는 Maven을 기반으로 작성해보자. Add Starters는 초기 설정이 끝난 후 나중에 프로젝트 과정에서 library를 추가할 경우 사용된다.
2. 다음으로 Spring Boot의 version을 선택한다. 특별한 이유가 없다면 최종버전(SNAPSHOT이나 M1 같은 꼬리표가 없는것) 중 가장 상위 버전을 선택하면 된다.
3. 다음은 기반 언어를 선택한다. Java나 Kotlin, Grovy를 선택할 수 있는데 여기서는 Java를 사용하자.
4. 다음으로 프로젝트의 group id를 선택한다. 여기서는 회사 도메인을 거꾸로 하는 이름을 주로 사용하는데 다음에 나오는 artifact id 와 결합해서 기본적인 패키지 이름이 된다.
5. 프로젝트의 내용을 나타내는 artifact id를 입력한다. 4번 항목과 결합해서 기본 패키지 이름을 구성한다.
6. 최종 프로젝트를 배포할 타입을 선택한다. spring boot는 일반적으로 standalone으로 동작하기 때문에 jar를 선택해준다.
7. 자바 버전을 선택한다.
8. 필요한 의존성들을 추가한다. 일반적으로 가장 필요한 녀석들만 돌라보면 다음의 4가지이고 필요에 따라 다른 것들도 선택할 수 있다.(database, jpa, security) 하지만 처음에 선택하지 않았다고 하더라도 나중에 1번 항목의 add starter를 통해서 추가할 수도 있고 pom.xml에 직접 추가할 수도 있다.
9. 이제까지의 작업의 결과 아래와 같은 프로젝트 구조가 생성된 것을 확인할 수 있다. src/main/java/xyz.quietjun.multiplex.MultiplexApplication 이 우리가 만들 java project의 main 클래스이다.
10. 그리고 관련 내용은 pom.xml이 최종적으로 가지게 된다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>xyz.quietjun</groupId>
<artifactId>multiplex</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>multiplex</name>
<description>여러 가지를 복합적으로 넣어보자</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mustache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
11. 이제 Spring Boot Dashboard에서 multiplex를 실행시켜보자. 뭐 한것도 없지만 일단 콘솔을 보면 잘 실행이 된다.
[debug console]의 내용을 살펴보면 로그가 쭉 나오는데 중간에 보면 톰켓이 8080 포트에서 동작하고 있다는 내용이 나온다.
12. 일단 http://localhost:8080 으로 요청해보면 아래와 같은 404 오류 페이지가 출력되는 것을 볼 수 있다. 오류지만 성공이다.!
이 후로는 eclipse에서나 다른 툴에서 작업하는 것처럼 작업하면 된다.