인프런 김영한 님의 "스프링 입문 - 코드로 배우는 스프링부트, 웹 MVC, DB 접근" 기술 강의를 듣고 정리해보려 합니다.

 

개발환경 - GOORM IDE

 

1. 구름 IDE에서 컨테이너 생성

 

구름 IDE 접속 -> 새 컨테이너 생성 -> 소프트웨어 스택 ->

Spring Boot 선택 -> Template Gradle로 설정 후 컨테이너를 생성한다.

강의에선 h2 데이터베이스를 사용한 예재를 진행하는데 h2 데이터베이스를 우분투 환경에 설치하기 귀찮다면

mysql 설치 항목에 체크한 후 mysql로 바꿔서 진행해도 된다.

2. JAVA 버전 & Gradle 업그레이드 

강의가 2020년에 처음 나온 강의라서

spring boot - 2.3.1

JAVA - 11

버전을 사용하고 있다.

 

그런데 구름 ide가 지원하는 spring boot 컨테이너는 놀랍게도 자바 8과 spring boot 2.0.1 을 기본 설정해줘서 업그레이드를 해줘야한다.

# JAVA 11 설치
# apt 업데이트
$ sudo apt-get update && sudo apt-get upgrade

#자바 다운로드
$ sudo apt-get install openjdk-11-jdk

#vi 편집기 사용
$ sudo vi /etc/environment

# 아래 내용 입력 후 저장
$JAVA_HOME="/usr/lib/jvm/java-11-openjdk-arm64"

# 자바 11 버전에 맞는 번호 입력 후 엔터
$ sudo update-alternative --config java

 

https://velog.io/@phjppo0918/%EC%8B%9C%EA%B0%84%ED%91%9C-%EC%9E%90%EB%8F%99%EC%83%9D%EC%84%B1-%EC%84%9C%EB%B9%84%EC%8A%A4-1.-goorm-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%83%9D%EC%84%B1-%EB%B0%8F-Gradle-%EC%84%A4%EC%B9%98

 

[시간표 자동생성 서비스] 1. goorm 컨테이너 생성 및 Gradle 설치

이게 안되네;; 구름 댕같다 ㄹㅇ참조 링크: https://jjeongil.tistory.com/1402nano창이 뜨면 아래 두 줄을 복사헤서 gradle.sh에 복붙하면 된다.

velog.io

#Gradle 업데이트

#nano 설치
$ sudo apt-get install nano

# gradle 6.5.1 설치
$ wget https://services.gradle.org/distributions/gradle-6.5.1-bin.zip -P /tmp
$ sudo unzip -d /opt/gradle /tmp/gradle-6.5.1-bin.zip

# 환경설정 파일 열기
$ sudo nano /etc/profile.d/gradle.sh

# 아래 두 줄 복사해서 gradle.sh에 입력하고 저장
export GRADLE_HOME=/opt/gradle/gradle-7.1.1
export PATH=${GRADLE_HOME}/bin:${PATH}

# 스크립트 실행 및 환경변수 로드
$ sudo chmod +x /etc/profile.d/gradle.sh
$ source /etc/profile.d/gradle.sh

spring 2.3.x 버전에 맞게 gradle 을 업그레이드 해주자

아래 두 줄은 Goorm ide 컨테이너를 실행할때마다 반복적으로 실행해줘야하는 것 같다.

 

3. build.gradle 파일 변경

build.gradle 파일이 스프링 2.0.1 버전에 맞게 생성되어있을텐데 바꿔줘야한다.

// build.gradle

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.3.1.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
}
 
group = 'io.goorm'
version = '0.0.1'
sourceCompatibility = '11'
 
repositories {
	mavenCentral()
}
 
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.assertj:assertj-core:3.11.1'
    testImplementation ('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    
    // JPA 및 DB 연결을 위한 라이브러리
    //implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    //implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    //runtimeOnly 'mysql:mysql-connector-java'
    //compileOnly 'org.projectlombok:lombok'
    //annotationProcessor 'org.projectlombok:lombok'
}

test {
    useJUnitPlatform()
}

spring-boot-starter-web : 웹서버(tomcat)과 웹 mvc 기능을 포함한다.

spring-boot-stater-thymleaf : 타임리프 엔진(html 파일 뷰 엔진)

implementation 'org.assertj:assertj-core:3.11.1 : 강의에는 없는데 test 파일 작성중 assertThat을 호출했더니 오류가 생겨서 추가한 라이브러리.

spring-boot-stater-test : 테스트 파일 작성용

org.springframework.boot:spring-boot-devtools : html파일 수정시 실시간 반영을 위한 라이브러리 .. 라고 하는데 작동을 안한다.

 

4. application.properties 수정 및 url과 포트 설정

server.port=${PORT:8080}

# 이 설정을 추가 안해주면 나중에 빈 추가 및 오버라이딩 관련 오류가 발생했다.
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

이후 상단의 프로젝트 -> 실행 url과 포트 에서

실행용 url이 있는지  연결 포트가 8080으로 설정 되어있는지 확인하고 없으면 새로 생성한다.

 

5. Spring 서버 시작해보기

$ gradle build
$ cd build/libs
$ java -jar spring_boot-0.0.1.jar

서버가 잘 열리면 성공이고 잘 안되면

 

1. gradle --version , java --version 을 통해 제대로 설치되었는지 확인해보자.

2. build.gradle 파일이 제대로 수정됐는지 확인해보자.

 

+ Recent posts