Group Study (2023-2024)/Spring 입문

[스프링 입문] 1주차 chap 01 - 인텔리제이로 스프링 부트 시작하기

yun jaeeeun 2023. 11. 5. 19:28

간단 실습 정리

1. 인텔리제이 설치

2. 인텔리제이 커뮤니티를 통한 프로젝트 생성

3. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경

    - build.gradle 파일에서 해당 프로젝트의 플러그인 의존성 관리를 위한 설정 할 수 있다

buildscript {
    ext { // 전역 변수 설정
        springBootVersion = '2.1.7.RELEASE' 
    }
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

//선언한 플러그인 의존성 적용
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' //스프링 부트의 의존성들을 관리해주는 플러그인

group = 'com.jojoldu.book'
version = '1.0-SNAPSHOT'
sourceCompatibility = 1.8

repositories { //의존성(라이브러리) 원격 저장소
    mavenCentral()
    jcenter()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

4. 프로젝트 깃허브 연동

    - .gitignore 파일 생성

 


스프링이란?

spring framework를 한마디로 정의하면 "오픈소스 자바 웹 프레임워크" 입니다.

뜻을 하나씩 살펴보자면,

오픈소스 : 소스가 공개되어있어, 누구나 자유롭게 확인, 수정, 배포할 수 있는 소스입니다.

자바 : 썬 마이크로시스템즈의 제임스 고슬링 주도로 개발된 객체 지향적 프로그래밍 언어입니다.

웹 : 인터넷이나 인트라넷을 위한 웹사이트를 개발하는것을 의미합니다.

프레임워크 : 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조/틀입니다.

이를 다시 한 문장으로 표현하자면, Java로 웹사이트를 쉽고 빠르게 개발하기 위한 틀이라고 생각할 수 있습니다.

 

스프링 프레임워크의 특징

  1. 여러 문제점을 해결하기 위한 디자인 패턴과 아키텍쳐 적용되어있습니다.
  2. 경량 컨테이너에서 자바 객체를 직접 관리: 객체 생성, 소멸과 같은 라이프 사이클을 프레임워크에서 관리합니다.
  3. POJO(Plain Old Java Object)방식 : 객체가 가벼우며, 기존에 존재하는 라이브러리 등을 활용하여 개발이 가능합니다.
  4. 제어 반전(IoC : Inversion of Control) : 필요에 따라 스프링에서 사용자의 코드를 호출합니다.
  5. MVC 패턴(MVC pattern) : 모델-뷰-컨트롤러 세 가지 구성요소로 나눈 패턴을 사용하여 모듈화된 개발방식을 지원합니다.
  6. 의존성 주입(DI : Dependency Injection) : 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜줍니다.
  7. 데이터 액세스 프레임워크 : mybatis나 hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공합니다.
  8. 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming) : 로깅, 보안 같은 공통 기능을 분리하여 관리 가능합니다.

 

스프링과 스프링 부트의 차이

Spring은 스프링 프레임워크의 핵심 모듈을 모아서 만든 프레임워크입니다. Spring에서는 개발자가 직접 설정 파일을 작성하여 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체 간의 의존성을 설정해야 합니다. Spring은 특정한 구성을 위해 추가적인 라이브러리와 설정이 필요합니다.

반면, Spring Boot는 스프링 프레임워크를 보다 쉽게 사용할 수 있도록 만든 프레임워크입니다. Spring Boot에서는 개발자가 설정 파일을 작성할 필요 없이, 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해주는 기능을 제공합니다. 또한, Spring Boot는 실행 가능한 JAR 파일을 만들 수 있습니다.