Solid

    [Java] 스프링을 왜 사용할까?(1) - OCP와 DIP의 위배

    바늘과 실처럼 자바하면 바로 떠오르는 것이 있습니다. 바로 "객체 지향 언어" 라는 것입니다. "객체 지향"이란 레고라고 생각할 수 있습니다. 레고 블록들을 조립하여 우리는 무엇이든 만들 수 있습니다. 레고를 이용해서 동물원을 만들었다고 생각해보겠습니다. 동물원에는 레고로 만들어진 사자도 있고, 호랑이도 있고, 코끼리도 있고, 제가 좋아하는 판다도 있습니다. 하지만 슬프게도 더 이상 호랑이가 인기가 없어서 고릴라 레고로 바꾸고 싶습니다. 이럴 경우 우리는 쉽게 동물원에서 호랑이 레고를 빼고 고릴라 레고를 넣어주면 됩니다. 여기서 호랑이, 고릴라가 객체가 되는 것입니다. 호랑이를 뺀 다고 해서 기존에 있던 사자나 판다 레고는 전혀 영향이 없습니다. 만약 라이거 레고를 만들고 싶다고, 호랑이와 사자를 마구잡..