[Spring] Spring Boot vs Spring

2024. 11. 21. 16:10·CS/CS 면접 준비
728x90

1. Spring Framework

자바 기반의 오픈소스 백엔드 프레임워크.

대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있음

  • IoC ( Inversion of Control ) : 제어의 역행
    제어의 주체가 개발자가 아닌 프레임워크라는 뜻으로 때에 따라 프레임워크가 작성된 코드를 호출하는 기술. 객체의 생명주기의 관리까지 모든 객체에 대한 제어권을 프레임워크가 가진다.
  • DI ( Dependency Injection ) : 의존성 주입
    의존성 객체를 개발자가 생성하지 않고 클래스를 Bean으로 등록해놓으면 Bean으로 등록된 객체를 프레임워크가 찾아서 알아서 주입해주는 기술이다. 이를 통해 모듈간의 결합도를 낮출 수 있다.
  • AOP ( Aspect Oriented Programming ) : 관점 지향 프로그래밍
    각 코드마다 공통된 관심사를 분리하여 모듈화하는 프로그래밍 기법.
    객체지향적으로 프로그래밍을 했음에도 로그, 트랜잭션, 성능확인 등 공통적인 관심사가 중복되는 문제점을 해결하기 위해 프록시 패턴을 사용하여 코드를 분리하여 관리하는 기술

MVC 패턴은 잘 정리해둔 글이 있길래 ...

 

[Spring] 스프링 프레임워크의 정의/특징/동작원리

Spring Framework의 정의와 특성 및 동작 원리

velog.io

 

 

2. Spring Boot

스프링 프레임워크는 기능이 많은 만큼 환경설정이 복잡.

스프링 프레임워크의 많은 부분을 자동화하여 사용자가 편리하게 활용할 수 있도록 한다.

내장된 톰캣이나 제티로 WAS 서버 실행 가능.

실행환경이나 의존성 관리 등을 자동으로 설정 및 버전 관리 해준다.

 

 

 

  • 의존성( Dependency )
    Spring Boot Framework의 경우 Gradle을 사용하는 경우 build.gradle 파일에 의존성 추가해주면 Spring Boot로 웹 개발할 때 필요한 모든 dependency를 자동으로 추가하고 버전도 관리해준다.(실행환경이나 의존성 관리 등의 인프라 관련해서 신경 쓸 필요 없음)
    Spring Framework의 경우 dependency 설정할 때 모든 dependency에 대한 버전 관리 필요

  • 자동설정( AutoConfiguration )
    의존성만 추가해주면 관련된 기능들이 모두 설정됨
    일반적으로 자주 사용하는 수많은 빈들을 자동으로 등록해주는 기능

  • 편리한 배포
    Spring Framework로 개발한 어플리케이션의 경우, war파일을 WAS에 담아 배포
    Spring Boot Framework의 경우 Tomecat이나 Jetty와 같은 내장 WAS를 가지고 있어 jar파일로 간단하게 배포 가능

 

Spring Framework는 기존 EJB를 대신해 자바 애플리케이션을 더 쉽게 만들 수 있게 해주고,

Spring Boot Framework는 Spring Framework보다 개발자가 더욱 개발에만 집중할 수 있도록 도와주는 프레임워크(스프링 프레임워크를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 편하게 스프링을 활용할 수 있도록 돕는다.)

 

Spring Boot makes it easy to create stand-alone, 
production-grade Spring based Applications that you can "just run".
스프링 부트는 단독적이고, 상용화 수준의, 
스프링 기반 애플리케이션을 단지 실행할 수 있을 정도로 쉽게 만들 수 있다.

 

 

728x90

'CS > CS 면접 준비' 카테고리의 다른 글

[Spring JPA] JPA(Java Persistence API)란?  (0) 2024.11.21
[네트워크] REST API란?  (0) 2024.11.21
'CS/CS 면접 준비' 카테고리의 다른 글
  • [Spring JPA] JPA(Java Persistence API)란?
  • [네트워크] REST API란?
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • categories (401)
      • App/Android (1)
      • BE (36)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (3)
        • 스프링부트 시큐리티 & JWT (0)
        • PHP (6)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (12)
        • AI (4)
        • Bigdata (6)
        • Database (1)
        • 빅데이터분석기사 (0)
      • Infra (0)
      • CS (7)
        • CS 면접 준비 (3)
      • 취준 (13)
        • 자격증·인턴·교육 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (3)
      • 코테 (268)
        • Algorithm (220)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    너비우선탐색
    그래프탐색
    다이나믹프로그래밍
    브루트포스 알고리즘
    매개변수탐색
    누적합
    시뮬레이션
    구현
    문자열
    그래프이론
    이분탐색
    그리디알고리즘
    수학
    정렬
    최단경로
    자료구조
    티스토리챌린지
    오블완
    투포인터
    백준
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[Spring] Spring Boot vs Spring
상단으로

티스토리툴바