스프링과 스프링 부트 알아보기
본문 바로가기

웹/Spring

스프링과 스프링 부트 알아보기

728x90
반응형

스프링

먼저 엔터프라이즈 애플리케이션이란 용어가 있는데 엔터프라이즈 애플리케이션은 대규모의 복잡한 데이터를 관리하는 애플리케이션을 말한다.

사람들이 많이 사용하는 만큼 서버 성능과 안정성, 보안이 중요

이런 것들을 다 생각하면서 비즈니스로직까지 개발하기가 매우 어렵다.

 

이런 개발환경을 제공하는 것이 스프링 프레임워크이다.

 

여기서 스프링부트란 

스프링의 장점은 많은 개발도구이지만 설정이 매우 복잡하다.

그래서 이런 단점을 보완한 게 스프링부트이다.

 

스프링 부트를 통해 스프링 프레임워크를 더 쉽고 빠르게 이용하고 의존성세트라고 불리는 스타터를 사용해 간편하게 의존성을 사용하거나 관리할 수 있다.

 

스프링의 중요한 컨셉

 

제어의 역전과 의존성 주입

제어의 역전 IoC 의존성 주입DI

 

IoC는 inversion of Control

자바를 사용할 때 객체가 필요한 곳에 객체를 직접 생성한다.

제어의 역전은 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가지고 오는 것이다.

 

DI

제어의 역전을 구현하기 위한 것이 DI이다.

DI = Dependenc Injection을 줄인 표현이고 직역하면 의존성 주입이다.

 

어떤 클래스가 다른 클래스에 의존한다는 뜻이다.

 

스프링 컨테이너란?

스프링은 스프링 컨테이너를 제공한다.

스프링 컨테이너는 빈을 생성하고 관리한다.

 

여기서 빈이란? 스프링컨테이너에서 관리하는 객체이고 스프링은 빈을 스프링 컨테이너에 등록하기 위해 xml파일 설정, 애너테이션 추가 등의 방법을 제공한다.

 

예를 들어 Mybean이라는 클래스에 @Component 애너테이션을 붙이면 MyBean클래스가 빈으로 등록된다.

이 후 스프링 컨테이너에서 이 클래스를 관리한다.

AOP = aspect Oriented Programming을 줄인 말로 관점 지향 프로그래밍이다.

이거는 핵심로직은 따로 개발하고 부가 관점에서 동일하게 사용하는 로직들을 부가 관점 모듈로 만들어서 따로 관리하는 느낌

 

이식 가능한 추상화 = PSA Portable Service Abstraction을 줄인 말

=> 스프링에서 제공하는 다양한 기술들을 추상화해 개발자가 쉽게 사용하는 인터페이스를 말한다.

 

 

 

반응형