본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.
Spring basic

스프링 입문 : 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 프로젝트 환경설정 및 라이브러리 살펴보기

by 방구석 대학생 2021. 10. 9.

"인프런의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 듣고 작성한 글 입니다."

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

* 프로젝트 환경 설정

강의에 사용되는 스프링 부트 프로젝트의 환경설정은 다음과 같다.

- Spring boot : 2.5.5

- Language : Java(jdk >= 11)

- Packaging : Jar

- 프로젝트 메타 데이터

    - groupId : hello

    - artifactId : hello-spring

- Dependencies(의존성 주입) : Spring Web, Thymeleaf

 

 

* Gradle 전체 설정 파일

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

group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
	useJUnitPlatform()
}

위의 Gradle 설정 파일에서 repositories{ mavenCentral() } 이 있는것을 살펴 볼 수 있는데, 이는 dependencies(의존성 주입) 에 작성되어 있는 라이브러리 들을 mavenCentral 이라는 공개된 사이트에서 다운로드 받을 수 있게 해준다.

필요하다면 특정 사이트 URL 을 기입해 줄 수 있다. 

 

* 프로젝트 실행 코드

- HelloSpringApplication.java

package hello.hellospring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloSpringApplication {

	// 웹 어플리케이션 메인 메소드 실행
	public static void main(String[] args) {
		SpringApplication.run(HelloSpringApplication.class, args);
	}	
}

메인 메소드에서 SpringApplication.run 메소드에 현재 메인 메소드를 포함하고 있는 클래스(HelloSpringApplication.class)를 파라미터로 넘겨주고 실행시킨다.

-> @SpringBootApplication 어노테이션을 통해 스프링 부트 어플리케이션이 실행된다.

스프링 부트 어플리케이션은 자체적으로 톰캣 서버를 내장하고 있다. 해당 서버를 동작시키면서 스프링 부트가 서버에 같이 올라가게 된다. 

* 라이브러리 살펴보기

IntelliJ 툴의 왼쪽에 있는 프로젝트 구조 단 에서 External Libraries 를 살펴보면 엄청나게 많은 라이브러리 들이 다운로드 되어져 있는 것을 확인 할 수 있다.

프로젝트를 제대로 동작시키기 위해 자동으로 다운로드된 외부 라이브러리 들 목록

Gradle 이나 Maven 같은 빌드 툴 들은 의존관계 들을 관리해준다.

spring-boot-starter-web 과 같은 라이브러리를 가져오면 starter-tomcat 과 같이 starter-web 라이브러리와 의존관계를 가지고 있는 라이브러리 들을 함께 가져온다.

 

라이브러리 들간의 의존관계를 확인하고 싶다면 IntelliJ 툴 오른쪽의 Gradle 탭 -> Dependencies 폴더에서 확인할 수 있다.

위의 경로를 찾아보면 아래의 이미지와 같이 각 라이브러리의 하위에 의존관계로서 외부에서 다운로드 되어 함께 활용되는 다른 라이브러리 들이 열거되어 있는것을 확인해볼 수 있다.

어떤 라이브러리 들 끼리 의존관계가 있는지 확인해 볼 수 있다. 

 

* 강의 중 추가 내용

- 로깅(logging)

서버 개발자로 취직하게 될 경우 실무에서는 로그를 살펴볼 때 System.out.println 이 아닌 logging 을 활용한다.

그래야 심각한 오류와 같은 것들을 따로 모아두는 등 로그 파일들을 관리하기 편하기 때문이다.

starter-logging 라이브러리(스프링 부트를 쓴다면 기본적으로 들어오는 라이브러리) 와 의존관계에 있는 라이브러리 들을 살펴보면 slf4j, logback 과 같은 것들이 있는 것을 확인할 수 있다.

실무에서는 로그를 살펴봐야 할 때 위의 두 가지 라이브러리 들을 혼합해서 많이 사용한다고 한다.

 

- 테스트 관련 라이브러리

자바 진영에서는 테스트를 진행 할 때 Junit 이라는 라이브러리를 주로 쓴다.(주로 5 버전을 쓴다.)