스프링

devkwon·2023년 3월 7일
0

스프링은 자바 언어 기반의 프레임워크로 자바가 가진 객체지향의 특징을 가장 잘 살려서 좋은 애플리케이션을 만들 수 있도록 도와주는 프레임워크이다.

역할과 구현을 분리

역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다.

장점:
클라이언트는 대상의 역할(Interface)만 알면 된다.
클라이언트는 구현 대상의 내부 구조를 몰라도 된다.
클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.
클라이언트는 구현 대상 자체를 변경하여도 영향을 받지 않는다.

역할 = 인터페이스
구현= 인터페이스를 구현한 객체, 구현 객체

이상적인 설계시 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
하지만 인터페이스를 만들 경우 추상화라는 비용이 발생한다. 따라서 확장 가능성이 낮다면 바로 구현 객체를 만들어도 된다.

수 많은 클라이언트(요청)와 서버(응답)들이 서로 협력관계를 맺는다.

다형성을 이용하여 무한한 확장을 가질 수 있다.

스프링과 객체지향

스프링은 다음과 같은 기술로 다형성만을 통해 지킬 수 없던 DIP,OCP까지도 지킬 수 있게한다.

DI(Dependency Injection): 의존관계, 의존성 주입
DI Container 제공

이를 통해 클라이언트의 코드 변경 없이 기능을 확장할 수 있다.

0개의 댓글