스터디/테크톡

[테크 톡 - 11주차] Spring & Spring Boot

냠냠쿠 2023. 8. 10. 13:05
728x90

📌Spring

  • Java 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크
  • 순수 자바 객체(POJO)만을 사용하여 복잡성을 제거
    → POJO는 객체지향 개발의 원칙에 충실한 객체를 말하며, 특정한 제약이나 요구사항에 종속되지 않고 유연하고 확장 가능한 코드를 작성할 수 있도록 도와줌.

◾ 스프링의 특징

1. 제어의 역전

  • 객체의 생명 주기 및 의존성 관리를 담당하는 IoC 컨테이너를 제공
    → 개발자가 객체의 생성과 관계 설정을 스프링에 위임 할 수 있으며, 스프링 컨테이너가 객체의 생명 주기를 관리하고 필요한 의존성을 주입

 

2. 의존성 주입

  • 의존성 주입을 통해 객체 간의 관계를 설정
    → 의존성 주입은 애플리케이션의 결합도를 낮추고 유연성과 테스트 용이성을 향상

 

3. AOP 지원 (관점 지향 프로그래밍)

  • 애플리케이션의 핵심 비즈니스 로직과 부가적인 기능(로깅, 트랜잭션 관리 등)을 분리하여 모듈화

 

4. 웹 개발 지원

  • MVC(Model-View-Controller) 아키텍처를 지원

 

◾ 스프링의 문제점

1. 설정이 복잡하다

 

2. 학습 난이도가 높다

 

3. 의존성 관리 문제

  • 의존성 주입(Dependency Injection)을 구현하기 위해 XML 설정 파일에 많은 수의 빈(Bean)을 등록해야 하여 코드의 가독성을 떨어뜨리고 의존성 관리가 어려워짐

 

4. 별도의 WAS 서버 구성

  • 스프링을 웹상에서 사용하기 위해서는 별도의 WAS를 설치 및 설정해야 함

 

📌Spring Boot

  • 스프링 프레임워크의 많은 환경 설정으로 인해 어려움을 느끼기 때문에 이를 자동화 시켜 사용자가 편하게 스프링을 활용할 수 있도록 돕는다.
    → 스프링 MVC, 스프링 Data JPA, 스프링 Security 등의 기능을 자동으로 설정
  • Spring Boot는 Actuator 기능 제공
    → Actuator : 모니터링과 관리를 위한 기능 제공, 애플리케이션의 상태를 모니터링하고 필요한 조치를 취할 수 있도록 해 줌

 

📌Spring과 Spring Boot의 차이점

  1. Embed Tomcat을 사용하기 때문에 Tomcat을 설치하거나 매번 버전을 관리해 주어야 하는 수고로움을 덜어준다.
  2. starter을 통한 dependency 자동화
    → 각각의 dependency들의 버전을 맞춰주어야 했으나 starter가 dependency를 관리해서 버전을 맞추어주는 작업을 하지 않아도 된다.
  3. XML 설정을 하지 않아도 된다.
  4. jar file을 이용해 자바 옵션만으로 손쉽게 배포 가능하다.
  5. pring은 스프링 프레임워크를 보다 세밀하게 제어하고자 하는 경우에 사용하고 Spring Boot는 빠르고 간단하게 스프링 애플리케이션을 개발하고자 하는 경우에 사용



728x90