Skip to main content

+ 내가 생각하는 상속

상속을 다시 생각해보자

상속은 객체 지향 프로그래밍의 중요한 부분이고 잘 쓰면 유용하지만 잘못된 상속을 만들면 문제가 발생합니다. LSP를 위반함으로써 편리함과 단순함을 얻을 수 있습니다.

저 같은 경우 처음으로 상속을 알았을 때 혁명이라고 생각했습니다. 그렇게 상속을 잘 활용된 코드가 좋은 코드라고 생각하며 살아왔죠.

하지만 Gong Of Four를 공부하면서 상속을 잘쓰는 방법은 상속을 쓰지 않는 것이라는 말을 듣고 깜짝 놀랐습니다.

듣고 보니 그랬습니다. 상속이 잘되어있다는 것은 너무 강하게 결합되어 있다는 것이고 저희가 위에서 배운 LSP를 위배할 수 밖에 없습니다. 왜냐하면 상속을 쓰다보면 정말 어쩔 수 없이 보모에 행위를 위해하면 리크코프 원칙을 위배하게되기 때문입니다.

물론 LSP를 모두 지키려고 한다면 비효율적이고 너무 자주 위반하게 된다면 예상치 못한 안정성을 해치게됩니다. 때문에 저는 상속을 사용할 때 제가 LSP를 위반하는 것이 아닌지 생각해보아야한다고 생각합니다.