Spring과 Spring Boot 기초

Kkd·2024년 12월 11일
0

매일메일 개념정리

목록 보기
24/93
post-thumbnail

1. Spring Framework 소개

1.1 Spring의 철학

Spring은 엔터프라이즈 애플리케이션 개발의 복잡함을 줄이고, 개발자가 효율적으로 코드를 작성할 수 있도록 돕는 프레임워크입니다. 다음 개념들이 핵심 철학입니다.

  • DI (Dependency Injection, 의존성 주입):
    객체 간의 의존성을 직접 연결하지 않고, 스프링 컨테이너가 객체를 관리하며 필요에 따라 주입해줍니다.
    → 결합도가 낮아져 유지보수가 쉬워집니다.
  • IoC (Inversion of Control, 제어의 역전):
    객체의 생명 주기와 의존성 관리를 개발자가 아닌 스프링 컨테이너가 대신합니다.
  • AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍):
    공통 기능(로깅, 트랜잭션 등)을 비즈니스 로직과 분리하여 코드를 깔끔하게 유지할 수 있습니다.

1.2 Spring의 주요 모듈

  • Core Container: DI 및 IoC를 제공하는 핵심 모듈.
  • Spring MVC: 웹 애플리케이션을 구축하기 위한 웹 프레임워크.
  • Spring Data: 데이터 접근 및 데이터베이스 처리에 사용.
  • Spring Security: 인증과 권한 부여를 지원.
  • Spring Batch: 배치 작업을 처리.
  • Spring Integration: 다양한 시스템과 애플리케이션 통합 지원.

2. Spring Boot 소개

2.1 Spring Boot의 특징

Spring Boot는 Spring Framework를 기반으로, 애플리케이션 개발을 더욱 간단하게 만들어주는 프레임워크입니다. 주요 특징은 다음과 같습니다:

  1. 자동 설정 (Auto Configuration):
    Spring Boot는 개발자가 일일이 설정하지 않아도, 프로젝트의 환경에 맞는 기본 설정을 자동으로 제공합니다.
    예: spring-boot-starter-web를 추가하면 자동으로 Tomcat, Spring MVC가 설정됩니다.

  2. 스타터(Starter):
    여러 의존성을 묶어둔 모듈로, 필요한 기능에 맞는 Starter를 추가하기만 하면 됩니다.
    예: spring-boot-starter-data-jpa, spring-boot-starter-security

  3. 내장 서버:
    Tomcat, Jetty 같은 서버를 내장하고 있어 별도의 서버 설정 없이 애플리케이션 실행이 가능합니다.
    java -jar로 쉽게 실행 가능.

  4. 운영 환경 지원:
    application.properties 또는 application.yml을 사용해 환경 설정을 관리할 수 있습니다.
    또한 Actuator를 통해 애플리케이션 모니터링이 가능합니다.

2.2 Spring과 Spring Boot의 차이점

Spring FrameworkSpring Boot
많은 설정이 필요함설정을 최소화하며 자동으로 설정
외부 서버 설치 및 설정 필요내장 서버(Tomcat, Jetty 등) 포함
특정 모듈을 직접 선택필요한 의존성을 Starter로 간단히 추가
프로젝트 초기 구성이 비교적 복잡함Spring Initializr로 빠르게 프로젝트 생성 가능

3. 개발 환경 구축

3.1 필요한 도구

  • Java Development Kit (JDK):
    Spring Boot 3.x는 Java 17 이상을 요구합니다.
  • IDE:
    IntelliJ IDEA(추천), Eclipse 또는 VS Code.
  • 빌드 도구:
    Gradle(추천) 또는 Maven.

3.2 Spring Initializr를 이용한 프로젝트 생성

Spring Initializr는 Spring Boot 프로젝트를 쉽게 생성할 수 있는 도구입니다.

  1. Spring Initializr 사이트 접속.

  2. 다음 옵션 선택:

    • Project: Gradle (Groovy) 또는 Maven.
    • Language: Java.
    • Spring Boot Version: 3.x (최신 버전 권장).
  3. Dependencies 추가:

    • Spring Web: REST API 개발용.
    • Spring Data JPA: 데이터베이스 연동.
    • Spring Boot DevTools: 개발 편의성 향상.
    • H2 Database: 임베디드 데이터베이스 (테스트용).
  4. Generate 버튼 클릭 후 다운로드.

3.3 프로젝트 실행

  1. IDE로 프로젝트를 열고, 필요한 의존성 다운로드.
  2. 메인 클래스 실행 (@SpringBootApplication 포함).
  3. localhost:8080에서 애플리케이션 확인.
profile
🌱

0개의 댓글