다형성이란?

naeganugu·2022년 7월 17일
0

스프링 마스터🌱

목록 보기
6/19

1) 스프링을 공부하다가

스프링의 핵심은 무엇일까?
스프링은 자바 언어 기반의 프레임워크다. 따라서 객체 지향 언어라는 자바의 가장 큰 특징을 살려낸다.

즉, 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크다.

2) 객체지향 프로그래밍

객체 지향 프로그래밍은 컴퓨터 프로그램을 객체들의 모임으로 파악하는 것이다. 기존의 명령어 목록으로 보는 시각에서 벗어난다.객체들은 메시지를 주고 받고, 데이터를 처리할 수 있다.

객체 지향 프로그래밍의 장점은 유연하고 변경이 용이하다는 점! 때문에 많이 사용된다.

3) 다형성

객체 지향의 특징 중 하나는 다형성이다.

다형성을 실세계 예시로 비교해보면 자동차를 예로 들 수 있다. 예를 들어서, 운전자는 운전자의 역할이 있고 자동차는 자동차의 역할이 있다. 자동차를 실제 구현하는 건 자동차 회사들의 몫이다.

📍 현대 자동차냐 테슬라 자동차냐에 따라서 실제 세부 구현은 다르지만, 자동차의 역할 자체는 똑같다. 만드는 회사가 다르다고 해서 자동차의 역할을 다르게 만들지는 않는다. 예를 들어서 자동차 회사마다 어떤 차는 A 방식으로 후진하게 만들고, 또 어떤 차는 B 방식으로 후진하게 만들지는 않는다.

위 예시의 핵심은 무엇이냐하면, 역할과 구현을 구분한다는 것이다. 다형성의 핵심도 역할과 구현을 구분한다.

이런 방식으로 개발을 하면 장점은 다음과 같다.

  • 클라이언트는 대상의 역할(인터페이스)만 알면 된다.
  • 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 내부 구조가 바뀌어도 영향이 없다.
  • 역할만 그대로 유지하면 구현 대상 자체를 바꿔도 상관 없다.

📍 클라이언트는 철저하게 역할에만 의존하고 구현을 분리하면, 구현을 아무리 바꿔도 클라이언트는 영향을 받지 않는다.

📍자바에서도 클라이언트는 인터페이스(역할)에 의존하고, 인터페이스를 구현(구현)한 객체는 따로 분리한다.

여기서 말하는 📌 클라이언트는 요청을 하는 객체, 서버는 응답을 하는 객체다. 다형성 덕분에 클라이언트를 변경하지 않고, 서버의 구현을 유연하게 변경할 수 있다.

스프링은 다형성을 극대화할 수 있게 도와주는 프레임워크.



[출처]

스프링 핵심 원리-기본편

profile
seungseung-zanggu

0개의 댓글