전통적인 패러다임에서 코드를 재사용하는 방법은 코드를 복사한 후 수정하는 것이다.

객체지향 패러다임에서는 코드를 재사용하기 위해 새로운 코드를 추가하는 데 그 중 가장 대표적인 기법이 상속이다. 재사용 관점에서 상속이란 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 기법이다.

상속과 중복코드

코드를 재사용하려는 이유가 뭘까? → 중복된 코드를 제거하려는 욕망 → 그렇다면 중복된 코드의 문제는 뭘까?

DRY (Don’t Repeat Yourself) 원칙

중복 코드는 변경을 방해한다. 중복 코드는 코드를 수정하는데 필요한 노력을 몇배로 증가시킨다. 왜?

→ 귀찮고 위험하다.

중복을 판단하는 기준은 변경이다. 요구사항이 변경되었을 때 두 코드를 함께 수정해야한다면 이 코드는 중복이다.

함께 수정할 필요가 없다면 중복이 아니다. 코드 모양이 유사하다는 것은 중복이라는 의미가 아니고 단지 중복의 징후일 뿐이다.(우발적 중복 관련 내용인듯)

가짜 중복과 진짜 중복 사례 고민

중복과 변경

중복 코드는 새로운 중복 코드를 부른다.