Spring 개발은 Spring Boot을 알기 전과 후로 나뉜다. <Boot 셋팅하기>

jojaljaejal·2024년 6월 12일

spring

목록 보기
1/5
post-thumbnail

IntelliJ 로 Spring Boot 셋팅하기.

1. Spring Initializr 설정하기

1-1. Spring Initializr란?

  • String initializr은 스프링부트를 기반으로 spring관련 프로젝트를 생성해주는 사이트로 프로젝트를 다운하여 쉽게 사용이 가능하도록 만든 사이트.
  • IDE에서 직접 New Project를 생성할수도 있지만 과정이 귀찮기 때문에 Spring Iinitializr을 사용했다.

🔎주소: https://start.spring.io/

사이트에 접속하면 다음과 같은 화면이 나타난다.

Project
Gradle VS Maven

Gradle 이 더 성능이 좋으나 아직 많은 사람들이 전통적인 Maven에 익숙한 점 때문에 협업을 위해 Maven을 택하기도 함. 이번 포스팅은 Maven으로 셋팅.

구조 설명

  • Project: SpringBoot를 빌드하고 배포하는 방식이다.
  • Language: 사용하고자하는 언어를 선택하면 된다. (일반적으로 Java가 사용됨)
  • SpringBoot: 버전을 선택해 준다. SNAPSHOT은 데모버전이고 높은 버전은 높은 자바버전을 필요로 하므로 SNAPSHOT이 없는 낮은 버전을 선택하는 것이 좋다.
  • Group: 기업 도메인명
  • Artifact: 빌드되어 나올 결과물
  • Name: 프로젝트명 (일반적으로 Artifact와 동일하게 사용함)
  • Description: 설명Package name: 패키지이름(Group과 Artifact를 설정하면 자동으로 만들어 준다.)
  • Packaging: 기본이 .jar이다. (spring framework와 model2는 .war를 사용한다.

2. Dependencies 추가하기

SpringWeb (중요)
웹 서비스를 만드는 데 가장 중요한 모듈이다. 내장 톰캣 뿐 아니라 Spring MVC 패턴을 구현하는 데 필요한 기능이 대부분 들어있다. REST API서버를 만든다면 필수이다.
Lombok (추천, 거의 필수)
Class에 getter, setter, toString, equals, constructor 등의 메소드들을 간단한 어노테이션(@)으로 지정해줄 수 있어 자바특유의 장황한 클래스를 줄여준다.
Spring Data JPA ( 필수 )
JPA는 Java Persistence API라고 하는데 자바 ORM기술의 토대를 이루는 기술 명세이다. Spring에서 DB를 다루는 거의 표준 기술인 상황이다. Class Entity를 마치 DB처럼 사용할 수 있는 매우 유용한 도구이다. (학습량 또한 엄청나다.)
MySQL Driver
MySql의 드라이버를 자동으로 연결해준다.
Spring Configuration Processor
스프링 개발을 하면서 application.yml 또는 application.properties를 작성할 때 추천을 받고 싶을 때 이 기능을 사용하면 된다.
Spring Boot DevTools (취향에 따라 사용)
DevTools는 스프링 어플리케이션을 띄웠을 때, 재시작하지 않고 코드의 변화를 반영시킬 때 사용한다. HTML 파일의 경우 LiveReload 기능을 제공하여 저장하면 그 변화가 페이지에 바로 나타나게 할 수도 있다. (참고 velog.io/@bread_dd/Spring-Boot-Devtools)
Thymeleaf
View 템플릿인 Thymeleaf를 사용할 수 있도록 하는 모듈이다. Spring에서 많이 사용하는 JSP는 Spring Boot에서는 잘 사용하지 않는다.


Add Dependencies 를 클릭하여 필요한 의존성을 추가.

3. IntelliJ 에서 Open

그럼 프로젝트 구조가 이렇게 생성되는 것을 볼 수 있다.

우측 상단에 Run을 실행시켜보면 콘솔을 통해 실행결과를 알 수 있다.
여기서 의존성에 외부 DB 의존성을 주입했다면 application.properties 또는 application.yml 에 외부 DB에 대한 정보들을 입력해줘야한다.

예시 ('application.properties')

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

예시 ('application.yml')

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: myuser
    password: mypassword
    driver-class-name: com.mysql.cj.jdbc.Driver

4. src/main/java 폴더 내 TestController를 생성하여 "Hello, world!"

를 출력하는 코드를 작성하여 정상적으로 작동하는지 확인한다.

package com.StudySpringBoot.jojal;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {

    @RequestMapping("/")
    @ResponseBody
    public String helloWorld() {
        return "Hello, world!";
    }
}

@Controller 어노테이션으로 Controller임을 명시하고
@RequestMapping("/") 어노테이션으로 기본 요청 ( / )을 받도록 함.
@ResponseBody 어노테이션을 사용하게 되면 ViewResolver 대신에 HttpMessageConverter가 동작하여 view를 반환하는 게 아닌 문자 내용을 직접 반환.

IntelliJ에서 Run -> Web에서 http://localhost:8080/ 으로 접속하여 서버연결 확인!

Run 버튼이 비활성화 되어있을 때 해결방법

Run -> Edit Contfiguration 클릭

좌측 상단 +버튼 선택 후 서버 선택, Spring boot 내장 서버를 사용하기에 Application 선택.

Name 설정과 Main Class 를 선택해주면 Run 버튼이 활성화 될 것이다.

profile
Ader_Error

0개의 댓글