개발/Spring Boot

Spring Boot [1]

0720kmc 2024. 10. 15. 19:34

📌스프링부트란?

- 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기위한 자바의 웹 프레임워크 (이전에 사용하던 스프링의 단점을 보완함)

- 스프링 프레임워크에 톰캣 서버를 내장하고 여러 편의 기능들을 추가

 

*프레임워크 : 프레임워크는 특정 작업을 수행하기 위한 구조나 틀을 제공하는 소프트웨어의 일종으로 쉽게 비유하자면 집을 짓기 위한 설계도와 비교할 수 있다.

*톰캣 서버 : 클라이언트의 요청을 해석하여 그에 맞는 자바프로그램을 실행한 후 그 결과를 응답해주는 웹 어플리케이션 서버를 말한다.

 

📌스프링부트의 특징

- 톰캣, 제티, 언더토우 같은 웹 어플리케이션이 내장되어 있어서 따로 설치하지 않아도 독립적으로 실행할 수 있다.

- 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