[Spring 입문] Spring Framework와 Spring Boot

박화랑·2025년 3월 17일

Spring_개념정리

목록 보기
8/17

Spring Framework와 Spring Boot

1. Spring Framework란?

  • Java 기반의 엔터프라이즈 애플리케이션 개발을 위한 프레임워크
  • 대규모 애플리케이션을 효율적으로 개발하고 유지보수할 수 있도록 다양한 기능 제공

Spring Framework 등장 배경

  • 대형 쇼핑몰 시스템(엔터프라이즈 애플리케이션)
    • 수백만 명의 고객이 동시에 상품을 검색하고, 장바구니에 담고, 결제를 시도
    • 서버 성능, 신뢰성, 보안을 고려하면서 비즈니스 로직을 개발하는 것은 매우 어려움
    • Spring Framework는 이러한 복잡한 문제를 해결할 수 있는 개발 환경을 제공하여 개발자는 비즈니스 로직에 집중할 수 있도록 지원

Spring Framework의 특징

  1. 유연한 구성 요소 연결 및 관리 → 다양한 애플리케이션 요소를 효율적으로 관리
  2. 오픈소스 프레임워크 → 누구나 자유롭게 사용 가능
  3. 모듈화된 아키텍처 → 필요한 기능만 선택적으로 사용 가능
  4. 객체 지향 프로그래밍(OOP) 지원 → Java의 객체 지향 특성을 적극 활용
    • 캡슐화
    • 상속
    • 추상화
    • 다형성

Spring Framework는 엔터프라이즈 애플리케이션 개발을 위한 강력한 지원을 제공

Spring Framework로 만드는 Web Application

  • Web Application을 라면 끓이기에 비유하면:
    • 라면(Java) + 냄비(Spring Framework) → Java 기반 애플리케이션 개발

2. Spring Boot란?

  • Spring Framework를 기반으로 하여 더욱 간편하고 신속하게 애플리케이션을 개발할 수 있도록 도와주는 도구
  • 복잡한 설정 없이 최소한의 코드만으로 실행 가능한 애플리케이션을 만들 수 있음

Spring Boot 등장 배경

  • Spring Framework는 초기 설정과 구성 파일이 복잡하고 방대함
  • 애플리케이션을 개발하고 배포하기 위해 여러 가지 의존성 관리와 서버 설정이 필요
  • 최소한의 노력으로 Spring 애플리케이션을 쉽게 개발하고 배포할 수 있는 방법이 필요했음

Spring Boot의 특징

  1. 자동 설정(Auto Configuration) → 개발자가 직접 설정하지 않아도 기본 설정을 제공
  2. 내장 웹 서버(WAS) 제공 → 별도의 서버 설정 없이 애플리케이션 실행 가능 (Tomcat 기본 내장)
  3. Spring Boot Starter 제공 → 웹 애플리케이션에 필요한 종속성과 설정을 자동 구성
  4. 라이브러리 버전 자동 관리 → 호환 가능한 버전을 자동으로 설정 (단, 버전 충돌 가능성은 존재)

Spring Boot는 설정을 최소화하고 빠른 개발을 지원하는 프레임워크

Spring Boot로 만드는 Web Application

  • Web Application을 라면 끓이기에 비유하면:
    • 라면(Java) + 냄비(Spring) + 조리 도구 세트(Spring Boot) → 더욱 간편하고 빠르게 개발 가능

3. Spring Boot의 핵심 기능

1) Spring Boot Starter

  • 프로젝트에서 필요한 라이브러리를 자동으로 설정해주는 의존성 모음
  • 예: spring-boot-starter-web, spring-boot-starter-data-jpa

2) 자동 설정(Auto Configuration)

  • 개발자가 별도로 설정하지 않아도 Spring Boot가 기본 설정을 제공
  • 예: 데이터베이스 연결, 웹 서버 설정 자동화

3) 내장 웹 서버(Embedded Web Server)

  • 별도 웹 서버를 설치할 필요 없이 내장된 서버로 애플리케이션 실행 가능
  • 기본값: Tomcat (변경 가능)

4) Spring Boot Actuator

  • 애플리케이션의 실행 상태를 모니터링할 수 있는 기능
  • /actuator 엔드포인트를 통해 상태 정보 확인 가능

Spring Boot는 설정을 최소화하고, 개발을 빠르게 진행할 수 있도록 도와줌


4. Spring Boot 프로젝트 구조

my-spring-boot-app/
│── src/main/java/com/example/
│   │── controller/   # 웹 요청을 처리하는 컨트롤러
│   │── service/      # 비즈니스 로직을 담당하는 서비스
│   │── repository/   # 데이터베이스 접근을 담당하는 레이어
│   │── Application.java  # Spring Boot 실행 진입점
│
│── src/main/resources/
│   │── application.properties  # 설정 파일
│
│── pom.xml (Maven) or build.gradle (Gradle)  # 의존성 관리 파일

Spring Boot는 기본적인 프로젝트 구조를 제공하여 빠르게 개발할 수 있도록 지원


정리

  • Spring Framework: 대규모 애플리케이션 개발을 위한 강력한 Java 프레임워크
  • Spring Boot: Spring을 더 쉽게 사용할 수 있도록 자동 설정과 내장 웹 서버 제공
  • Spring Boot의 핵심 기능: Starter, 자동 설정, 내장 웹 서버, Actuator 등

다음 강의에서는 Spring 프로젝트 생성 및 실행 방법을 학습할 예정!

profile
개발자 희망생

0개의 댓글