📌스프링부트란?
- 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기위한 자바의 웹 프레임워크 (이전에 사용하던 스프링의 단점을 보완함)
- 스프링 프레임워크에 톰캣 서버를 내장하고 여러 편의 기능들을 추가
*프레임워크 : 프레임워크는 특정 작업을 수행하기 위한 구조나 틀을 제공하는 소프트웨어의 일종으로 쉽게 비유하자면 집을 짓기 위한 설계도와 비교할 수 있다.
*톰캣 서버 : 클라이언트의 요청을 해석하여 그에 맞는 자바프로그램을 실행한 후 그 결과를 응답해주는 웹 어플리케이션 서버를 말한다.
📌스프링부트의 특징
- 톰캣, 제티, 언더토우 같은 웹 어플리케이션이 내장되어 있어서 따로 설치하지 않아도 독립적으로 실행할 수 있다.
- XML 설정하지 않고 자바 코드로 모두 작성할 수 있다.(JSP와의 차이점)
- jar를 이용하여 자바 옵션만으로도 배포 가능
📌스프링과 스프링부트의 차이
스프링 | 스프링부트 | |
목적 | 엔터프라이즈 개발을 더 쉽게하기 위해 | 스프링의 개발을 더 빠르고 쉽게하기 위해 |
설정파일 | 개발자가 수동으로 구성 | 자동 구성 |
XML | 일부 파일은 xml로 직접 생성하고 관리 | 사용하지 않음 |
서버 | 별도로 수동으로 설정 | 내장형 서버를 제공해 별도의 설정이 필요없음 |
📌스프링부트의 주요 특징
1)제어의 역전(IoC)과 의존성 주입(DI)
- IoC (Inversion of Control): 객체가 필요로 하는 다른 객체를 직접 생성하지 않고, 외부에서 관리하는 객체를 주입받아 사용하는 방식. 이를 통해 객체 간의 결합도가 낮아지고 코드의 유연성이 증가함.
- IoC 컨테이너: 스프링에서 객체 생성 및 관리, 의존성 주입을 담당. BeanFactory와 ApplicationContext가 있음.
DI (Dependency Injection): 한 클래스가 다른 클래스에 의존할 때, 의존 객체를 외부에서 주입받는 방식.
2)빈과 스프링 컨테이너
- 스프링 컨테이너: 빈의 생성과 생명주기를 관리. 개발자는 어노테이션(@Component, @Configuration)을 통해 빈을 등록할 수 있음.
- 빈: 스프링 컨테이너가 관리하는 객체.
3)관점지향 프로그래밍 (AOP)
- 공통된 관심사(예: 로깅, 데이터베이스 연결)를 모듈화하여 핵심 로직과 분리. 이를 통해 유지보수성을 높임.
4)이식 가능한 서비스 추상화 (PSA)
- 다양한 데이터베이스 접근 기술(JPA, MyBatis, JDBC 등)을 일관된 방식으로 지원하는 인터페이스 제공.
5)트랜잭션 관리
- XML이나 어노테이션으로 쉽게 트랜잭션 관리 설정 가능.
6)편리한 MVC 구조
- 스프링 MVC 프레임워크를 제공, 개발자가 불필요한 코드를 줄일 수 있도록 지원.
7)WAS에 종속적이지 않음
- 다양한 서버에서 동작 가능하며, 독립적인 테스트가 용이함.
8)단위테스트
- WAS를 실행하지 않고 독립적으로 테스트 가능.
'개발 > Spring Boot' 카테고리의 다른 글
Spring Boot [5] (1) | 2024.10.22 |
---|---|
Spring Boot [4] (0) | 2024.10.21 |
Spring Boot [3] (2) | 2024.10.20 |
Spring Boot [2] (1) | 2024.10.16 |