suleesulee
suleesulee
suleesulee
전체 방문자
오늘
어제
  • 분류 전체보기 (39)
    • Personal (7)
      • 개발자sulee (2)
      • 회고록 (1)
      • 여행 (0)
    • Computer Science (31)
      • JAVA (4)
      • Python (0)
      • Html&CSS (0)
      • Spring (1)
      • JPA (1)
      • MSA (12)
      • Algorithm (10)
      • DevOps (0)
      • Go (1)
      • Swift (1)
      • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 개발자 sulee의 블로그입니다.

인기 글

태그

  • 나의 재취업 도전기
  • 전문연
  • 라인
  • Monolithic
  • MSA
  • SOA
  • 회고
  • 이직뽀개기
  • 개발자
  • 이직
  • 네이버
  • 백엔드
  • 카카오
  • 전문연구요원

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
suleesulee

suleesulee

Computer Science/Spring

Spring Framework, Spring Boot 도대체 뭐가 다른거지?

2021. 9. 3. 16:14

Spring 공부를 하다보니 Spring 관련 해서 Spring boot(이하 boot)와 Spring Framework 가 뭐가 다른건지 궁금해졌다.

 

두 개가 무엇인지 개념부터 설명하겠다.

 

Spring Framework의 탄생은 자바진영의 봄이 도래했다해서 프레임워크의 이름이 Spring이다.

 

(기존의 자바진영에서 사용하던 EJB가 너무 별로였기 때문에 해당 프레임워크의 탄생을 모두가 두 손 들고 환영했다고)

 

스프링의 가장 큰 특징은

 

의존성주입(DI), 제어의 역전(IoC), 관점지향 프로그래밍(AOP) 로 들 수 있다. 

 

DI - 객체 사이의 의존 관계를 스프링 컨테이너가 자동으로 연결해 줌. 개발자가 객체를 직접 생성하지 않고 외부에서 주입시켜준다.

 

IoC - 메소드나 객체를 개발자가 생성하는 것이 아닌 스프링 프레임워크가 만들어진 객체를 주입시킴. 이러한 방법을 적용하기 위해 스프링은 싱글톤 패턴을 사용함

 

AOP - 어떠한 로직을 핵심 관점, 부가 관점으로 나누고 관점을 기준으로 모듈화하는 프로그래밍 방법

 

이러한 기능을 사용하면 개발자가 유지보수가 편하며 재사용성이 높은 코드를 개발 할 수 있어 생산성이 높아진다.

 

하지만 Spring Framework에서 이러한 기능들을 사용하기 위해서는 설정을 해야했는데 이러한 설정하는 부분이 너무 복잡했고 그래서 탄생한 것이 Spring boot 이다.

 

Spring boot는 이러한 Spring의 설정을 Starter를 통하여 SpringFramework의 버전에 맞춰 의존성(Dependency)자동화 를 해주며

 

내장형 Tomcat, netty 웹 서버를 사용하기에 따로 서버를 설치, 설정하지 않아도 된다. 

 

 

세 줄 요약

Spring Framework는 프로그램 개발을 정형적으로 구조화해 프로그램 개발 생산성을 높이는 Framework로 DI, IoC, AoP가 핵심 개념이다.

 

Spring Framework는 설정이 반이라는 말이 있다. 그정도로 의존성 설정을 하는데 시간을 많이 허비했다. 그래서 등장한 것이 Spring Boot로 의존성관련 부분을 간단하게 처리할 수 있도록 해줬고 내장형 웹 서버까지 탑재, 생산성을 높여줬다.

 

Spring Framework와 Spring Boot는 서로 다른 기술이 아니다. Sping Framework를 효율적으로 사용하는데 이용하는 도구라고 생각하면 된다. 

 

또한 Spring MVC는 Spring Framework의 모듈 중 하나이며 MVC 패턴을 빠르게 구현할 수 있도록 도와줌.

저작자표시 비영리 변경금지 (새창열림)
    suleesulee
    suleesulee
    IT Engineer, SW Developer, Traveler

    티스토리툴바