티스토리 뷰
스프링(Spring)이란?
-Java의 웹 프레임워크로 Java 언어를 기반으로 사용한다. 즉, 쉽게 말하면 java로 다양한 어플리케이션을 만들기 위한 프로그래밍 설계도,틀이라고 할 수 있습니다. 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 해줍니다.경량 컨테이너와 다양한 모듈로 구성되어 있어 다양한 어플리케이션에 확장가능한 구조를가지고 있습니다.
또한 오픈소스를 기반으로 사용하여 한마디로 말하면 Java로 다양한 프로그램을 더 쉽게 만들수 있게 해주는 오픈소스 프레임워크입니다
스프링의 특징
- 경량 컨테이너
-개발자가 직접 해야했던 자바 객체의 생명주기(lifecycle) 관리를 자동으로 처리해주는 컨테이너, 여기서, 스프링 컨테이너에 의해 관리되는 자바 객체를 빈(Bean)이라고 부른다. 서버의 부담을 줄이기위해 메모리 사용량과 리소스 사용량을 최소화 하며 애플리케이션 실행 속도를 높입니다, 또한 객체의 생성,초기화, 의존성 처리, 소멸 등을 자동으로 처리하여 유지보수성을 높입니다. - DI(의존성주입)
- 객체간의 의존성을 최소화 하여 유연한 애플리케이션을 만들 수 있게 하는 방식, 원래 한 객체에서 다른 객체를 사용할때 의존을 하게 되는데 이러한 방식은 객체간의 결합도를 높이게 됩니다. 이런상황을 해결하기위해 다른 객체를 외부에서 생성하고 주입받는 방식을 취하여, 객체간의 결합도를 낮춥니다. - AOP(관점지향 프로그래밍)
-애플리케이션 전체에서 반복적으로 사용되는 기능등을 분리하여 모듈화하는 방식입니다. 핵심 로직안에서 부가적인 기능들의 반복적으로 발생하는 작업들을 모듈화하여 코드의 중복을 제거하고 가독성,유지보수성을 높입니다. 즉, 여러 객체에서 공통으로 사용하는 기능을 모듈로 만들어 재사용성을 높여주는 방식입니다.
- IOC(제어역전)
-원래는 개발자가 객체 생성,호출,소멸등을 직접해야했지만, IOC는 이러한 객체 생명주기관리를 컨테이너가 자동으로 대신 해주는것을 말함. 즉, 객체 생성및 의존성 주입을 컨테이너에게 맡김으로써, 애플리케이션 개발에서 객체의 생성과 관리에 대한 제워권을 개발자에서 프레임워크로 넘기는것을 의미하며, 객체간의 의존성을 낮추고 유연성과 확장성을 높일 수 있습니다.
스프링 동작과정(MVC)
- Dispatcher Servlet
-스프링 MVC에서 HTTP 요청을 받아 들이고 컨트롤러에게 요청전달, 클라이언트에게 View전달하는 역할을 함. - Handler Maping , Handler Adapter
-HTTP를 요청을 받아 처리할 컨트롤러를 선택하고, 컨트롤러를 실행한 결과를 HTTP응답형태로 변환하는 역할을 함. - View Resolver
- 컨트롤러에서 반환한 논리적 View 이름을 실제 View 객체와 연결해주는 역할을 하는것.
'자바 > 스프링' 카테고리의 다른 글
WAS(Web Application Server) , DispatcherServlet (0) | 2023.06.24 |
---|---|
스프링 Controller, Repositroy, Service (0) | 2023.05.30 |
빈(Bean)등록 (컴포넌트,빈) (0) | 2023.05.30 |
DI(의존성 주입)이란? (0) | 2023.05.20 |
빌드 관리 도구 (maven,gradle) (0) | 2023.05.14 |