비록 시작은 코딩일기지만, 그 끝은 창대하게
어엿한 개발자 블로그로 성장할 수 있도록.
본 게시글은 김영한님의 스프링 핵심 원리 강의 내용을 정리한 글입니다.
유연하고 변경이 용이하다?
세상을 역할과 구현으로 구분해보자
운전자와 자동차운전자 역할과 자동차 역할이 있을 때, 자동차에는 어떠한 자동차가 와도 운전자에 영향을 끼치지 않는다. 차가 바뀌어도 운전자는 그대로 운전할 수 있다.
운전자는 자동차 인터페이스만 다룰 줄 알면 된다.
즉, 클라이언트에 영향을 끼치지 않으면서 새로운 기능을 제공할 수 있다.
로미오와 줄리엣 (공연)로미오와 줄리엣 공연에서 로미오, 줄리엣 역할에는 배우 아무나 배역이 가능하다.
어떤 배우든지 그 배역을 맡을 수 있고, 다른 배우로 대체도 가능하다.
이 밖에도 키보드, 마우스 등 표준 인터페이스, 정렬 알고리즘 등이 있다.
이렇게 역할과 구현으로 구분하면 세상이 단순해지고 유연해지며 변경이 용이해진다.
그리고 다음과 같은 장점을 얻는다.
그렇다면 Java에서는?
역할은 인터페이스구현은 인터페이스를 구현한 클래스, 구현 객체객체를 설계할 때 역할과 구현을 명확하게 분리하자.
인터페이스(역할)을 먼저 부여하고, 그 다음 이를 수행하는 객체를 구현하자.
본질유연하게 변경 가능관계에서 시작해야함인터페이스를 안정적으로 잘 설계하는 것이 굉장히 중요하다.
다형성이 가장 중요하다.극대화 시켜준다.IoC, DI는 다형성을 활용해 역할과 구현을 편리하게 다룰 수 있도록 지원한다.Spring에서 다형성과 더불어 굉장히 중요한 것이 바로 SOLID 원칙
은 다음편에 이어서..