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