[SpringBoot] 1 - 스프링부트 개요

2024. 8. 26. 15:39· 공부/Spring
목차
  1. 1. 스프링부트란?
  2. 스프링 프레임워크
  3. 스프링 부트
  4. 2. 스프링부트 개발 환경 설정
  5. 1단계 : JDK 설치
  6. 2단계 : IDE 설치
  7. 3단계 : 스프링 부트 프로젝트 만들기
  8. build system의 Gradle과 Maven 차이
  9. build system이란?
  10. Gradle 특징
  11. 프로젝트 구조
  12. 2. MVC 패턴
  13. 뷰 템플릿
  14. MVC 패턴(Model-View-Controller Pattern)
  15. MVC 패턴을 활용해 뷰 템플릿 페이지 예제
  16. 어노테이션(annotation)
  17. MVC의 역활과 실행 흐름
반응형
 

1 - 스프링부트 개요

1. 스프링부트란?

스프링 프레임워크

  • 대규모의 엔터프라이즈 애플리케이션시 개발환경을 제공해서 기능 개발에만 집중할 수 있도록 함
  • 서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구
  • 설정이 복잡 등 단점 → 스프링 부트 출시

스프링 부트

  • 스프링 프레임워크를 개선한 것(개발 환경 설정 간소화, 웹 애플리케이션 서버 <톰캣, 제티, 언더토우 등> 내장 등)
  • 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위해 개발된 도구
  • 원하는 기능을 찾아 조립하기만 하면 편리하게 자바 웹 프로그램을 만들 수 있음

2. 스프링부트 개발 환경 설정

1단계 : JDK 설치

  • JDK(Java Development Kit): 자바 코드의 번역과 실행을 담당하는 자바 개발 도구

2단계 : IDE 설치

  • IDE(Integrated Development Environment): 개발 생산성을 높여 주는 통합 개발 환경으로, 이클립스와 인텔리제이 같은 프로그램이 있음

3단계 : 스프링 부트 프로젝트 만들기

①Spring Initializr 페이지(https://start.spring.io) 접속

: 쉽게 프로젝트를 생성할 수 있음

②프로젝트 세부 항목 설정

  • Project: Gradle – Groovy
  • Language: Java
  • Spring Boot: 3.1.0(없으면 기본값으로 선택: 현재, 3.2.3) : SNAPSHOT-현재 테스트 단계, Mx - 주요 기능 및 버그 수정 단계
  • Packaging: Jar
  • Java: 17(앞에서 설치한 JDK 버전으로 선택)

스프링부트 3 버전은 JDK17 이상만 지원함

build system의 Gradle과 Maven 차이

build system이란?

  • 소스 코드를 이용해서 실행 가능한 애플리케이션을 생성하는 과정을 자동화하는 프로그램
  • 의존성 내려받기, 코드 패키징, 컴파일, 테스트 실행 등이 포함

예전에는 Maven을 많이 사용, 요즘은 Gradle을 사용하는 추세

→ 단, 현장의 운용 시스템은 Maven이 많음

Gradle 특징

  • 메이븐에 비해 가독성이 좋고 설정이 간단
  • 자바, 코틀린, 그루비 등 다양한 언어 지원
  • 원하는 대로 빌드 스크립트를 작성할 수 있음.
  • 빌드와 테스트 속도가 메이븐에 비해 더 빠름.

프로젝트 구조

  • src > main
    • 실제 코드를 작성하는 공간
    • java : java 코드 작성
    • resources : 외부 파일 저장
  • test
    • 프로젝트 테스트 코드를 작성하는 공간
  • build.gradle
    • 빌드 설정 파일. 의존성이나 플러그인 설정 등과 같이 빌드에 필요한 설정
  • settings.gradle
    • 빌드할 프로젝트의 정보를 설정하는 파일

2. MVC 패턴

뷰 템플릿

  • 웹 페이지(View)를 하나의 틀(Template)로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여 주는 기술
  • Mustache
    • Thymeleaf, JSP 가 포함된다.
    • 뷰 템플릿을 만드는 도구 즉, 뷰 템플릿 엔진 의미

MVC 패턴(Model-View-Controller Pattern)

  • 웹 페이지를 화면에 보여 주고(View),
  • 클라이언트의 요청을 받아 처리하고(Controller),
  • 데이터를 관리하는(Model) 역할을 나누는 기법

MVC 패턴을 활용해 뷰 템플릿 페이지 예제

controller/FirstController

package org.example.firstproject.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller // 컨트롤러 어노테이션 명시
public class FirstController {

    @GetMapping("/hi") // /hi 주소로 GET 요청이 들어오면 hello() 메서드 실행
    public String hello(Model model) {
        model.addAttribute("username", "홍길동"); // username이라는 변수에 "홍길동" 대입
        return "greetings"; // greetings.mustache 파일 반환
    }
}

templates/greetings.mustache

<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <h1>{{username}}님 반갑습니다.</h1>
</body>
</html>

어노테이션(annotation)

  • 소스 코드에 추가해 사용하는 메타 데이터의 일종
  • 컴파일 및 실행 과정에서 코드를 어떻게 처리해야 할지 알려주는 추가정보
  • @ 기호를 붙여 사용

MVC의 역활과 실행 흐름



반응형
저작자표시 비영리 (새창열림)
  1. 1. 스프링부트란?
  2. 스프링 프레임워크
  3. 스프링 부트
  4. 2. 스프링부트 개발 환경 설정
  5. 1단계 : JDK 설치
  6. 2단계 : IDE 설치
  7. 3단계 : 스프링 부트 프로젝트 만들기
  8. build system의 Gradle과 Maven 차이
  9. build system이란?
  10. Gradle 특징
  11. 프로젝트 구조
  12. 2. MVC 패턴
  13. 뷰 템플릿
  14. MVC 패턴(Model-View-Controller Pattern)
  15. MVC 패턴을 활용해 뷰 템플릿 페이지 예제
  16. 어노테이션(annotation)
  17. MVC의 역활과 실행 흐름
'공부/Spring' 카테고리의 다른 글
  • [SpringBoot] 2 - 게시판 CRUD 만들기(작성)
  • [Spring]JWT
  • [Spring]JPA살펴보기
  • [Spring]Thymeleaf
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • SpringBoot
  • Kotlin
  • Android Studio
  • shared preference
  • native app
  • 자바빈즈
  • spring
  • React
  • cs
  • Java
  • ViewModel
  • 코틀린기본문법
  • 키 해시
  • dreamhack
  • 디버깅키해시
  • 자료구조
  • docker
  • jsp
  • Python
  • 컴퓨터
  • 상속
  • 알고리즘
  • 1.9.22
  • webhacking
  • 보안
  • android studio 삭제
  • api 통신
  • Computer science
  • 프로그래밍
  • Database

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[SpringBoot] 1 - 스프링부트 개요
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.