제목 그대로 구름 ide에서 스프링부트 개발 환경을 세팅하는 방법을 정리해보았다.
1. 소프트웨어 스택은 Spring Boot을 선택하고, Template은 gradle을 선택하여 컨테이너를 생성한다.
Maven vs Gradle
Template에는 Maven과 Gradle 둘 중 하나를 선택할 수 있는데,
Maven과 Gradle은 빌드 관리 도구로, 생성한 프로젝트 내에서 작성한 Java코드와 각종 xml, properties 등을 JVM이 인식할 수 있도록 패키징 해주는 역할을 한다. 또한 애플리케이션을 개발하면서 필요한 외부 라이브러리들을 자동으로 관리해주는 도구이다.
Maven은 빌드 중인 프로젝트, 빌드 순서, 외부 라이브러리의 종속성 관계 등 모든 정보를 pom.xml 파일에 명시한다. 이에 따라 해당 파일이 장황해지고 가독성이 떨어진다는 단점도 있다. 또한 레파지토리 관리가 불편하고, 디테일한 빌드 기능이 없는 등의 단점이 존재한다. Maven의 이러한 단점들을 보완한 것이 Gradle이다. Gradle은 Grooby를 이용한 빌드 자동화 시스템으로, Maven의 상위호환이라고 할 수 있다.
Gradle을 쓰자..
컨테이너가 생성되었으면 실행시킨다.
2. nano 설치
terminal# sudo apt-get install nano
3. Gradle 설치
terminal# wget https://services.gradle.org/distributions/gradle-7.1.1-bin.zip -P /tmp
terminal# sudo unzip -d /opt/gradle /tmp/gradle-7.1.1-bin.zip
4. 환경변수 설정
terminal# sudo nano /etc/profile.d/gradle.sh
export GRADLE_HOME=/opt/gradle/gradle-7.1.1
export PATH=${GRADLE_HOME}/bin:${PATH}
nano 에디터가 열리면, 위 두 줄을 gradle.sh 파일에 붙여넣고 저장하고 나가기
(붙여넣은 후 ctrl+x로 나가면서 Y 누르고 엔터치면 저장하고 나가진다.)
5. 스크립트 실행
terminal# sudo chmod +x /etc/profile.d/gradle.sh
6. 환경변수 불러오기.
terminal# source /etc/profile.d/gradle.sh
7. Gradle 설치 확인
terminal# gradle -v
8. Gradle init
terminal# gradle init
basic type, build script DSL 설정은 뭐로 할건지 물어보는데 그냥 계속 엔터치면 된다.
default값(각각 basic, groovy)으로 적용됨.
9. build.gradle 파일 수정
build.gradle 파일에 아래 코드 복붙하기.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.10.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'gs-spring-boot'
version = '0.1.0'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("junit:junit")
}
10. Controller.java 생성하기. - gui로 경로만들고 파일 생성해도 무관.
terminal# mkdir -p src/main/java/com/sample
terminal# cd src/main/java/com/sample
terminal# touch Controller.java
- Controller.java 파일에 아래 테스트 코드 복붙.
package com.Sample;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class Controller {
@RequestMapping("/")
public String index() {
return "Hello hb_world!";
}
}
11. Application.java 파일 생성.
terminal# touch Application.java
- Application.java 파일에 아래 코드 복붙
package com.Sample;
import java.util.Arrays;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Hello Spring Boot!!");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
12. Gradle build
terminal# gradle build
build 하기 전, 아래의 명령어를 입력하면 build가 더 빨라진다고 한다.
gradle 홈디렉토리에 데몬실행속성을 활성화하는 gradle.properties 파일을 만드는 것인데,
해당 설정을 한 순간부터 gradle이 데몬으로 떠서 실행되기 때문에 초기 로딩 시간이 줄어들어 속도가 빨라진다고 한다.
touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
13. 실행
- 컨테이너를 재부팅한 후,
terminal# gradle bootRun
- 80% EXECUTING 이란 문구가 뜨면 '컨테이너 설정 - URL'에 적혀있는 링크를 복사한 후, 크롬 새 탭에 붙여넣기 하면 뜬다!
- Controller.java에서 return 시켰던 문자열이 화면에 뜰 것이다!
세팅을 하다보니 메모리가 70%까지 올라간다. 구름ide Student 플랜 사길 잘 했다.
이제 본격적으로 스프링 공부를 시작해보자!
'Study > Spring' 카테고리의 다른 글
싱글톤 패턴 (0) | 2022.06.23 |
---|---|
게시판에 사용한 HTML 정리(feat. thymeleaf) (0) | 2022.01.16 |
스프링 CRUD 게시판 구현(SpringBoot, MySQL, SpringDataJPA) (2) | 2021.12.29 |
좋은 객체 지향 설계의 5가지 원칙 - SOLID (0) | 2021.11.10 |
[구름IDE] 스프링부트 에러 메시지와 해결방법 모음 (0) | 2021.10.20 |