인프런 김영한님의 스프링 핵심원리 강의를 듣고 정리한 글입니다.
인프런 스프링 핵심원리
객체 지향 프로그래밍이란 컴퓨터 프로그램을 독립된 단위인 객체들의 모임이라 접근하는 프로그래밍 방식으로 쉽게 말해 여러 레고 조각으로 하나의 완성품을 만들듯이 프로그래밍 하는 방법을 의미한다.
앞서 얘기한 레고 블럭 조립하듯이, 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법을 다형성이라고 부른다.
강의를 듣다 보면 영한님께서 역할과 구현이라는 말을 반복적으로 한다는 걸 느낄 수 있다.
반복하는 건 자연스럽게 중요한 것이라는 생각으로 이어지므로 잊을만 하면 등장하는 역할은 무엇이고 구현은 또 무엇인지 알아보자.
다형성을 실세계에 비유한 위 이미지를 살펴보면 자동차 역할과 자동차구현(K3, 아반떼...)이 분리되어 있는 걸 볼 수 있다.
그렇다면 이렇게 분리한 이유는 뭘까?
운전자는 자동차의 역할, 즉 자동차를 운전하는 법만 안다면 K3를 타던, 아반떼를 타던 모두 운전할 수 있게 된다.
자동차들이 내부적으로 변경되어도 운전자에게 영향을 주지 않으므로 자동차 회사들은 자동차의 역할만 지킨다면 새로운 기능을 마음껏 제공할 수 있다.