Spring 입문

스프링(Spring)은 자바 언어를 위한 강력한 엔터프라이즈급 웹 프레임워크입니다. 웹 개발에 있어서 스프링은 전체 애플리케이션의 기반 구조를 제공하며, 특히 웹 애플리케이션을 구축하기 위한 스프링 MVC(Spring Model-View-Controller)라는 모델을 기반으로 합니다.

Untitled

Spring Framework

  1. 모델-뷰-컨트롤러 아키텍처: MVC
  2. Bean 관리:
    1. 싱글턴(Singleton) 패턴: 기본적으로, 스프링은 각 빈 정의에 대해 하나의 객체 인스턴스만을 생성합니다. 이는 싱글턴 디자인 패턴을 따르는 것으로, 같은 빈 ID나 이름으로 컨테이너에 요청을 하면, 스프링은 항상 동일한 객체 인스턴스를 반환합니다.
    2. 의존성 주입(Dependency Injection): 빈은 생성자 인수나 세터 메서드를 통해 의존성을 주입받을 수 있습니다. 이렇게 함으로써 빈은 필요한 의존성을 외부로부터 받으며, 이는 느슨한 결합과 코드의 테스트 용이성을 증진시킵니다.
    3. 어노테이션 또는 XML 구성: 빈은 XML 파일을 통해 명시적으로 선언하거나, 클래스에 @Component, @Service, @Repository, @Controller 등의 어노테이션을 사용하여 자동으로 감지되어 등록될 수 있습니다.
  3. 유연한 URL 매핑: request URL을 컨트롤러의 메서드에 매핑하여 RESTful 경로를 쉽게 구현할 수 있습니다.

Spring Boot의 설정

build.gradle 파일은 Gradle 빌드 도구를 사용하는 프로젝트에서 매우 중요한 역할을 합니다. Gradle은 자바, 코틀린 등을 비롯한 여러 언어의 프로젝트를 위한 오픈소스 빌드 자동화 시스템입니다.

프로젝트 설정 (Project Configuration)

프로젝트의 기본 설정을 정의합니다. 여기에는 프로젝트의 이름, 버전 등의 기본 정보가 포함될 수 있습니다.

group 'com.example'
version '1.0-SNAPSHOT'

의존성 관리 (Dependencies Management)

프로젝트가 필요로 하는 외부 라이브러리(dependencies)를 선언합니다. 여기에는 프로젝트의 실행, 컴파일, 테스트 등에 필요한 모든 라이브러리가 포함됩니다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-security'
    testImplementation 'junit:junit:4.12'
}

플러그인 (Plugins)

프로젝트를 빌드하고 관리하기 위해 필요한 Gradle 플러그인을 적용합니다. 예를 들어, Java 프로젝트를 위한 java 플러그인이나 Spring Boot 프로젝트를 위한 org.springframework.boot 플러그인 등이 있습니다.

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.4.1'
}

태스크 설정 (Task Configuration)