[Spring] SpringFramework

민픽minpic·2024년 4월 16일
0

Spring Framework

목록 보기
1/5

springimg

이 게시물은 spring framework 에 대한 설명과 특징에 대해서 간단하게 설명하고, 다음 게시물에 코드와 함께 정리할 예정입니다.

Framework 란?

비지니스 로직이 빠진 반제품 형태의 어플리케이션

Spring framework 등장 배경

간단히 정리하면, 웹 사이트가 점점 커지면서 > EJB가 등장
하지만 EJB 사용도 불편하여 > Spring이 등장

엔터프라이즈 어플리케이션 개발 시, 복잡함을 해결하는 것이 Spring 의 핵심!

Spring Framework 특징

  1. IOC / DI
  2. AOP
  3. POJO
  4. PSA

spring 의 특징은 위와 같은데, 이 중 2가지만 이야기 하라면, IOC / DI 와 AOP 가 가장 큰 특징.

1. IOC / DI (Dependency Injection) - 의존성 주입

의존성이라는 것은 말 그대로 내가 어떤 것에 의존하는 것을 뜻한다.

예를 들어, 컴퓨터를 사용하고 싶으면 마우스에 의존해서 컴퓨터를 사용할 수 있게된다. 여기서 말하는 의존과 같은 의미이다.

그렇다면 의존성 주입은 무엇일까?

말 그대로, 의존성을 주입한다는 뜻이다.
의존성을 밖에서 주입하는 느낌이라고 생각하면 된다.

그렇다면 왜? 의존성 주입이 필요할까?

우리가 컴퓨터를 사용하기 위해 마우스가 필요해서, 마우스를 만들어서 사용하는가?
아니다. 누군가가 만든 마우스를 사용하고, 고장나면 A/S를 맡기거나 한다.

개발을 할때에도 만약 필요한 모든 것을 스스로 만들어서 사용한다면, 핵심 비지니스 로직을 개발에만 집중하기 어려워지고, 모든 코드들에 대한 책임을 져야 한다.

이 때문에, 의존성 주입이 필요하다!

그렇다면 IOC는 무엇일까?

Inversion of Control 제어의 역행이라고 말한다.

자바의 객체 생성 및 의존관계에 있어 제어권이 개발자에게 있는 것이 아니라 외부에 위임하는 것을 뜻한다.

그리고 Spring에서는 IOC 컨테이너 또는 스프링 컨테이너라고 부르는 것이 이 기능을 제공한다.

그리고 IOC의 구현 방법 중 하나가 DI 이다.

2. AOP (Aspect Oriented Programming)

AOP는 관점 지향 프로그램이다.

핵심 관심사와 횡단 관심사를 분리해서 생각하고, 횡단 관심사를 모듈화해서 재사용 하는 것이다.

여기서 핵심 관심사는 비지니스로직의 핵심을 이야기하고, 횡단 관심사는 이외에 반복되서 사용되는 로직을 뜻한다.

그래서 spring에서는 AOP를 적용하여 코드의 유지 보수성을 향상시키는 등의 이점을 발생시킨다.

3. POJO ( Pain Old Java Object )

spring 을 쓴다고 해서 다른게 아니다.
즉 해오던 방식대로 평범한 자바 객체를 만들어서 사용하면 된다는 특징이다.

4. PSA ( Portable Service Abstraction )

공통적으로 사용할 수 있는 부분을 추상화된 레이어로 제공한다는 의미이다.

잘 만들어진 무언가를 다 뜯어보고 사용하지 않아도, 잘 추상화된 기술을 사용을 하면된다는 특징이다.

profile
사진찍는 개발자 / 한 가지 개념이라도 깊이있게

0개의 댓글