상세 컨텐츠

본문 제목

[spring boot] 스프링부트 프로젝트 생성 & 실행 (feat. intelliJ)

develop/spring

by devcon 2023. 5. 9. 14:01

본문

728x90
반응형

👍 오늘의 주제 : 인텔리제이에서 스프링부트 프로젝트 생성해서 실행해보기


✅ Spring Boot?
👉 
스프링 프레임워크의 일종으로, 스프링을 사용하여 웹 어플리케이션을 개발할 때 필요한 여러 설정들을 자동으로 처리해주는 도구

 Spring boot를 사용하는 이유
👉 
Spring Boot는 Java 기반의 웹 어플리케이션을 빠르게 개발할 수 있도록 지원하는 프레임워크
Spring Boot를 사용하면 개발자들은 설정 작업을 줄이고, 간단한 명령어로 웹 어플리케이션을 쉽게 빌드할 수 있음

더보기

1. 자동 설정(Auto Configuration)

자동 설정 기능을 제공, 개발자가 별다른 설정 없이도 자동으로 설정 할 수 있으며, 시간과 노력을 절약 할 수 있다

2. 내장형 서버(Embedded Server)
내장형 서버를 제공, 별도의 서버를 설치 or 설정 필요 없이, 손쉽게 웹 어플리케이션을 실행

3. 의존성 관리(Dependency Management)
의존성 관리를 자동으로 수행, 별도로 라이브러리를 다운로드하거나 버전을 관리할 필요 없이, 쉽게 의존성을 관리할 수 있다


이제 인텔리제이에서 스프링 부트를 생성해봅니다

인텔리제이를 실행하고 New Project 선택

 

Spring Initializr를 선택하고
name 은 프로젝트 명칭 작성
Language는 기본적으로 Java
Type은 빌드 타입으로 여기에서는 Gradle을 사용
Group 은 사용할 프로젝트의 패키지
Artifact는 기본적으로 Name에 입력한 내용이 자동으로 반영, 수정해도 된다
JDK와 JAVA는 개인적으로 PC에 설치한 버전을 선택
Packaging은 여기에서는 Jar 선택

Next 클릭하면
프로젝트 생성 초기에 세팅하고 싶은 라이브러리를 추가할 수 있다
여기에서는 기본적으로 스프링웹, 스프링웹서비스, 많이사용하는 Lombok을 선택

(그 외에도 많은 라이브러리를 세팅하고 생성할 수 있으니 필요에 따라 선택하면 된다)

라이브러리 선택이 끝났으면 Create 클릭!!🖱

기본적인 형태의 프로젝트가 생성되며, 초기에 필요한 라이브러리를 gradle을 통해서 자동 다운로드 진행!

 

좌측의 프로젝트 패키지에서 java 패키지에 생성된 HelloApplication 파일을 열어보면 다음과 같이 기본 소스가 있다.
(프로젝트 명에 따라 상이할 수 있음)

 

728x90


Spring Boot는 @SpringBootApplication 어노테이션이 있는 클래스가 메인클래스로 실행을 한다.

클래스명이 있는 로우에 좌측에
어플리케이션을 실행, 디버깅 할 수 있는 버튼이 있고 누르면 생성된 프로젝트가 실행!!
또는 (인텔리제이 기준) 우측 상단에 run or debug 실행 버튼 클릭하면 프로젝트 실행
또는 맥 기준 단축키 control + R, control + D

 

또는 @SpringBootApplication 어노테이션이 있는 클래스 파일에서 마우스 오른쪽 버튼을 통해 열리는 메뉴에서 실행도 가능

 

별다른 오류가 없이 정상적으로 프로텍트가 실행 된 모습
특별한 설정을 하지 않았기 때문에 기본적으로 내장된 톰캣으로 실행이 되었으며 기본 포트는 8080 이다.

웹 브라우저에서 http://localhost:8080 으로  접속해 본 화면
에러 화면이지만 당황하지 않아도 된다.

Error page 라고 보여지지만 정상적으로 실행이 된 것이고 
연결한 매핑 주소가 아직 없기 때문이 기본 에러화면이 보여진다

 

에러페이지가 아닌 우리가 앞으로 개발하기 위한 샘플을 만들어 테스트해보자

아래와 동일하게, 또는 아래와 비슷한 방법으로 새로운 패키지를 만들고


방금 만든 패키지에  새로운 자바 클래스 파일도 하나 생성해준다

아래는 클래스 파일의 샘플 코드

클라이언트(웹브라우저)와  웹서버(스프링부트)에 각각 로그 및 화면 내용이 잘 나오는지 작성해주었다
@Slf4j  어노테이션을 이용해 로그를 남겨보았고, 클라이언트 화면에는 String 값을 입력하여 결과값을 보여줬다.
@Getmapping, @Slf4j, Logger 등이 궁금하다면 일단은 구글링 해서 참고하는 정도면 될듯 하다.

package com.example.hello.controller;

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class HelloTestController {
    Logger logger = LoggerFactory.getLogger(HelloTestController.class);

    @GetMapping("/hello")
    public String test() {
        logger.info("##### web server #####  >>  hello Spring Boot");
        return "hello Spring Boot";
    }
}

java 파일이 새로 추가되었기 때문에 어플리케이션 restart 필수!
단축키 또는 우측 상단의 버튼 등을 이용해 서버 재시작

 

서버가 정상적으로 시작(재시작) 되었다면 
샘플코드에서 메서드에 @GetMapping 어노테이션으로 작성해준 hello를 붙여서 호출해보자

웹브라우저에서 http://localhost:8080/hello

샘플코드에서 작성해둔 String 리턴값이 정상적으로 출력되었다

서버쪽 로그도 살펴보면
logger.info로 작성해둔 테스트 로그 내용이 웹브라우저에서 호출함과 동시에 정상적으로 출력되었다.

여기까지 intelliJ를 통해 Spring boot 프로젝트를 생성하고 실행까지 해보았습니다.


 


인텔리제이(intellJ)
intellJ는 개발자들이 자바, 코틀린, 스칼라, 등의 언어를 사용하여 더 쉽고 빠르게 개발할 수 있도록 도와주는 통합 개발 환경(IDE)

  • 코드 자동 완성 기능으로 빠른 개발 속도
  • 디버깅 도구를 통해 코드의 쉬운 오류탐지
  • 풍부한 플러그인과 확장 기능
  • 코드 분석 도구를 통한 코드의 품질 향상
  • 통합된 빌드 도구로 쉽게 빌드 & 배포

이러한 장점들로 인해 인텔리제이는 많은 개발자들에게 인기가 있다.


728x90
반응형

관련글 더보기

댓글 영역