1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (186)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (26)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

[SpringBoot] 스프링 부트 프로젝트 생성
🌱 SPRING

[SpringBoot] 스프링 부트 프로젝트 생성

2020. 5. 30. 16:32

IntelliJ에서 스프링 부트 프로젝트를 생성하고, 컨트롤러를 작성해 html 페이지를 띄우는 것 까지 해보자!

 

0. 환경

 - JDK : Oracle JDK 1.8.0_151

 - IDE : IntelliJ IDEA Ultimate 2020.1.1

 - Github : https://github.com/ParkIlHoon/springboot

 

 

1. 프로젝트 생성

 - 인텔리제이를 실행하고, "Create New Project"를 클릭한다.

 - "Spring Initializr"를 선택하고, Project SDK를 JDK 1.8로 지정한다.

 - 아래 항목을 입력한다.

  • Group : 프로젝트의 Artifact 그룹명을 의미하며 보통 com.xxx. 형태로 작성한다.
  • Artifact : 프로젝트의 Artifact
  • Type : 프로젝트 의존성?? 타입을 선택한다. Maven과 Gradle 중 선택할 수 있다.
  • Language : 사용 언어를 선택한다.
  • Packaging : 배포 시 어떤 방식으로 패키징 할지 선택하는 항목. JAR와 WAR 방식이 있는데, JAR 방식은 스프링 부트의 내장 톰캣을 이용하며, WAR 방식은 외부 톰캣에 배포해 서비스하는 방식이다.

 

 - 사용할 Dependency를 선택한다. 나같은 경우에는 이 프로젝트로 Spring JPA 공부를 할 예정이기 때문에, Spring Data JPA와 Spring Data JDBC를 추가했다. 하지만 반드시 Spring Web은 꼭꼭꼭 추가해야 한다!! 이전에는 Spring Web을 추가하지 않고 시도해봤는데, 서버 구동 시 exit code 0 라며 바로 종료되는 현상이 있었다. 그 현상을 해결하기 위해서는 Spring Web Dependency를 반드시 추가해야 한다.

 - Dependency 추가 후 프로젝트의 이름과 경로를 지정한다.

 

2. pom.xml 수정

 - 필수적인 작업은 아닌데, 앞서 Spring JPA와 Spring JDBC를 추가했고 지금 당장 JPA 구현은 하지 않기 때문에 pom.xml에서 spring-boot-starter-data-jdbc와 spring-boot-starter-data-jpa는 주석처리했다.

 

 

3. SpringBootApplication 클래스 살펴보기

 - 프로젝트 생성이 완료되면, src > main > java > com.ilhoon.demo 에 DemoApplication 클래스가 작성돼있을 것이다.

   이 클래스를 실행해 내장 톰캣에서 스프링 부트 서비스를 구동한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.ilhoon.demo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
/**
 * @SpringBootApplication 이란?
 * @ComponentScan, @Configuration, @EnableAutoConfiguration을 함께 사용한 것과 같음
 * 해당 annotation을 설정한 클래스가 있는 package를 최상위 패키지로 인식하고 ComponentScan을 수행
 */
@SpringBootApplication
public class DemoApplication
{
    /**
     * SpringContext를 실행해 Application을 구동한다.
     * @param args
     */
    public static void main(String[] args)
    {
        SpringApplication.run(DemoApplication.class, args);
    }
 
}
 
Colored by Color Scripter
cs

 

 

4. 구동 및 테스트

 - 인텔리제이 상단의 Run 버튼을 클릭해 DemoApplication을 실행한다.

 - 정상적으로 구동이 되면, 아래와 같이 로그가 쭈루루룩 뜬다.

 - 그리고 http://127.0.0.1:8080으로 접속하면, 아래와 같이 페이지가 뜬다! (오류 페이지지만 상관없다.)

 

 

5. index 페이지 작성 및 테스트

 - 위에서 오류가 뜬 이유는 표시할 페이지를 찾지 못했기 때문이다. 그래서 index.html 파일을 생성해 띄울 것이다.

 - src/main/resources/static 폴더에는 정적 파일이 위치하는데, 해당 폴더에 index.html 파일을 생성한다.

 - 다시 http://127.0.0.1:8080/index.html로 접속하면 아래처럼 작성한 페이지가 뜬다.

 

이렇게 스프링 부트를 이용해 index 페이지를 띄우는 것 까지 하는데 30분 정도 걸렸다. 확실히 보통 스프링보다 설정 잡는 것도 적었고 빠르게 구현이 가능한 것 같았다. 다만, 여러 스프링 설정을 제어해서 프로젝트를 진행했던 나로선 그러한 설정을 스프링 부트에서도 제어할 수 있을지 걱정도 되고 기대도 된다. 설마 되겠지.

반응형
저작자표시 비영리 변경금지 (새창열림)

'🌱 SPRING' 카테고리의 다른 글

[SpringCloud] Resilience4j와 Spring Cloud Circuit Breaker  (0) 2021.05.16
[SpringBoot] 컨트롤러, View(JSP) 작성하기  (0) 2020.05.30
@MVC : RequestMapping  (0) 2018.03.29
의존관계 주입(DI, Dependency Injection)  (1) 2017.11.30
로그인 체크 필터  (0) 2017.09.05
    '🌱 SPRING' 카테고리의 다른 글
    • [SpringCloud] Resilience4j와 Spring Cloud Circuit Breaker
    • [SpringBoot] 컨트롤러, View(JSP) 작성하기
    • @MVC : RequestMapping
    • 의존관계 주입(DI, Dependency Injection)
    1HOON
    1HOON

    티스토리툴바