Notice
Recent Posts
Recent Comments
Link
관리 메뉴

look-forest

좋은 객체 지향 프로그래밍? 본문

Spring/Spring 핵심 원리

좋은 객체 지향 프로그래밍?

studyHub 2023. 4. 29. 16:17

스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크라고 하였다.

그 강력한 특징이 뭔지부터 알아보자.


객체 지향의 특징

- 객체지향 프로그래밍은 프로그램을 유연하고 변경에 용이하게 만드므로 대규모 소프트웨어 개발에 많이 사용된다.
- 세상을 '객체'들의 상호작용으로 파악하고자 하는 것. 각각의 객체는 메시지를 주고받고, 데이터를 처리한다.

 


'유연하고 변경에 용이' 하다의 의미

레고 블록 조립하듯이, 부품 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 있는 방법

다형성(Polymorphism): 여러 가지 형태를 가질 수 있는 능력

이것이 유연하고 변경이 용이하다는 것

 

 

다형성만들어내기 위해: 역할구현으로 세상을 구분하자

자동차가 바뀌어도 운전자에게 영향을 미치지는 않는다! 자동차의 인터페이스는 동일하니까!

클라이언트에 영향을 주지 않고 새로운 기능을 제공할 있다!

역할(인터페이스)구현(클래스, 구현 객체)으로 세상을 구분하면 유연해지고 변경도 편리해진다(확장성)

 


객체 간의 상호 작용

혼자 있는 객체는 없다.

수많은 객체 클라이언트(요청)와 객체 서버(응답) 관계를 가진다.

객체들은 서로 협력하고 의존한다.

그 관계의 대상이 얼마든지 변경될 수 있다.

 

 

다형성의 본질

인터페이스의 구현체를 실행 시점에 유연하게 변경할 수 있다!

사용처 코드를 변경하지 않고, 구현 기능을 유연하게 변경할 수 있다!

 

 


 

좋은 객체 지향 설계

 배역만 만들어두고, 배우는 언제든지 유연하게 변경할 수 있도록 만드는 것이 좋은 객체 지향 설계

  • 역할 구현 분리하면 자유롭게 구현 객체를 조립  있다 다형성

 

 

스프링 컨테이너 다형성을 극대화해서 이용할 수 있게 도와준다

제어의 역전(IoC), 의존관계 주입(DI) 이라는 방법을 통해 역할과 구현을 편리하게 다룰 수 있도록 지원

 

→ 스프링을 사용하면 레고 블록 조립하듯이 구현을 편리하게 변경할 수 있다!

 

 


 

참고 자료 & 이미지 출처
스프링 핵심 원리(김영한 님)

 

'Spring > Spring 핵심 원리' 카테고리의 다른 글

[예제] SPRING으로 전환하기  (0) 2023.04.29
IoC/DI 컨테이너  (0) 2023.04.29
[예제] 스프링 없이 좋은 객체 지향 설계하기  (0) 2023.04.29
SOLID: 좋은 객체 지향 설계 5원칙  (0) 2023.04.29
Spring이란?  (0) 2023.04.29