Backend/SpringBoot

[SpringBoot] SpringBoot 프레임워크를 알아보자

seoraroong 2024. 8. 22. 17:20

 

스프링부트(SpringBoot)는 Java 기반의 웹 애플리케이션을 개발하기 위한 프레임 워크로, 스프링(Spring) 프레임워크를 더욱 간편하게 사용할 수 있도록 도와준다.

스프링 개발 시 복잡한 설정들을 해주어야 하는데, 스프링부트는 매우 간단한 방법으로 프로젝트를 설정할 수 있게 도와준다.

 

제어 역전 (IoC, Inversion of Control)

제어 역전은 객체의 생성과 생명주기를 애플리케이션 코드에서 직접 관리하지 않고 외부 컨테이너에게 위임하는 디자인 패턴 (Design Pattern)이다. 스프링부트에서는 스프링 컨테이너가 이 역할을 맡아 애플리케이션의 객체들을 생성하고 관리한다.

 

- 사용자 객체를 직접 생성하지 않는다.

 

- 객체 생명 주기를 스프링 컨테이너가 관리한다.

 

- 객체의 제어 권한이 스프링 컨테이너에게 위임되어 코드가 간결해지고 유지보수가 쉬워진다.

 

 

의존성 주입 (DI, Dependency Injection)

의존성 주입은 제어 역저의 구현 방식 중 하나로, 객체가 필요로 하는 의존성을 외부에서 주입받아 사용하는 방식이다.

 

- 객체가 필요로 하는 다른 객체를 직접 생성하지 않고 외부 컨테이너에서 생성된 객체를 주입 받는다.

 

- 애플리케이션 구성 요소 간 결합도를 낮추고 테스트와 유지보수를 쉽게 한다.

 

- 생성자 주입, Setter 주입, 필드 주입 등 다양한 주입 방법을 지원한다.

 

 

 

MVC 패턴

MVC 패턴 (Model-View-Controller)은 웹 애플리케이션의 구조를 세 가지 구성 요소로 나누어 관리하는 디자인 패턴이다.

 

Model

사용자 입력 정보를 바탕으로 데이터베이스와 상호작용하며 데이터를 처리한다.

DB에서 데이터를 조회하거나 저장하는 작업을 수행한다.

 

예) 사용자 정보, 상품 정보 등을 DB에서 가져오는 Service나 DAO (Data Access Object) 클래스

 

 

View

Model로부터 제공받은 데이터를 기반으로 사용자에게 보여줄 화면을 생성한다.

사용자 인터페이스 (User Interface, UI)를 담당하며 데이터를 시각적으로 표현한다.

 

예) HTML 페이지, Thymeleaf 템플릿, JSP 등

 

 

Controller

사용자의 요청을 처리하고 적절한 Model과 View를 연결한다.

사용자 입력을 처리하고 해당 입력에 따라 적절한 동작을 수행한 후 결과를 View에 전달한다.

 

예) 웹 애플리케이션의 URL 요청을 처리하는 서블릿 (Servlet), REST API 컨트롤러 클래스