상속은 법률에서 사망에 따라 재산과 권리 관계가 이어지는 제도이자, 객체지향 프로그래밍에서 클래스 기능을 재사용하는 방식이다.[1]
1. 개요
2. 법률적 의미와 재산 상속
민법상 상속은 사망으로 개시되며, 상속인은 피상속인의 재산적 지위와 관계를 일정 범위에서 이어받는다.[5] 상속의 대상은 부동산과 예금 같은 자산뿐 아니라 피상속인의 채무까지 포함할 수 있어, 단순한 수증이 아니라 포괄승계의 성격을 가진다.[1][5] 따라서 상속을 다룰 때는 재산의 규모뿐 아니라 채무, 공동상속 관계, 유언의 유무를 함께 살펴야 하며, 이 과정에서 민법과 법률행위에 대한 이해가 중요해진다.[1][5]
한국의 상속 관습은 조선시대의 균분적 재산 분배에서 출발해, 후대로 갈수록 장자 중심의 봉사와 재산 집중이 강화되는 방향으로 변했다.[4] 이후 근대 민법과 호주제의 폐지 과정을 거치면서 가족 질서의 계승보다 개인 재산의 승계가 상속의 핵심으로 자리 잡았다.[4] 이런 변화는 상속이 단순한 가족 내부 규범이 아니라 사회 제도와 민법 체계가 함께 만든 틀임을 보여 준다.[4]
3. 상속세의 개념과 과세 원칙
상속세는 사망한 사람의 재산이 이전되는 과정에서 과세되는 세금이다.[2] 영국의 경우 일정한 면세 한도 이하에서는 세금이 부과되지 않으며, 유산의 일부를 배우자, 시민 파트너, 자선 단체, 지역 아마추어 스포츠 클럽에 남길 때는 추가적인 면세 또는 감면이 적용될 수 있다.[2] 이런 규칙은 상속세가 단순히 상속 자체를 막는 제도가 아니라, 과세 기준과 공제 조건을 세밀하게 두어 유산의 규모와 수령 구조를 조정하는 장치라는 점을 보여 준다.[2]
세금 제도에서 상속은 보통 임계값, 신고 의무, 수령인과의 관계에 따라 다르게 취급된다.[2] 즉 같은 금액의 유산이라도 누구에게 어떻게 이전되는지에 따라 납세 의무가 달라질 수 있다.[2] 이 때문에 상속세를 이해하려면 재산의 가액만이 아니라, 법이 정한 면세 구조와 신고 절차까지 함께 봐야 하며, 상속세와 민법의 연결도 함께 보아야 한다.[2]
4. 객체지향 프로그래밍에서의 상속
객체지향 프로그래밍에서 상속은 기존 클래스의 속성과 기능을 새로운 클래스가 이어받아 재사용하는 메커니즘이다.[3][6] 기반이 되는 클래스는 부모 클래스 또는 상위 클래스라고 하고, 이를 물려받는 쪽은 자식 클래스 또는 하위 클래스라고 부른다.[3][6] 국내 강의 자료와 생활코딩 설명에서도 상속은 클래스 간의 관계를 정의하는 기본 개념으로 소개되며, 변동성이 큰 부분은 합성으로 분리하는 방식과 자주 비교된다.[3][6][7]
상속을 쓰면 공통 속성과 메소드를 한 곳에 모아 중복을 줄일 수 있고, 계층 구조를 따라 기능을 확장하기도 쉬워진다.[3][6] 예를 들어 기본 동작을 상위 클래스에 두고, 개별 하위 클래스에서 차이를 추가하면 구조를 단순하게 유지하면서도 변형을 만들 수 있다.[3][6] 이런 설계는 재사용성과 확장성을 높이는 데 유리하다.[3]
5. 프로그래밍 상속의 장점과 한계
상속의 가장 큰 장점은 코드 중복을 줄이고, 공통 기능을 한곳에서 관리할 수 있다는 점이다.[3][6] 같은 기능을 여러 클래스에 반복해서 쓰지 않아도 되므로 유지보수가 쉬워지고, 클래스 구조도 더 명확해진다.[3] 또한 객체지향 프로그래밍의 계층 구조를 통해 프로그램의 역할 분담을 시각적으로 정리하기 좋다.[3]
다만 상속은 부모 클래스의 변경이 자식 클래스 전반에 영향을 줄 수 있어 결합도가 높아질 위험이 있다.[7] 그래서 React 같은 현대 프레임워크는 깊은 상속보다 합성(composition)을 선호한다.[7] 합성은 필요한 기능을 객체 단위로 조합하는 방식이어서, 구조를 더 유연하게 바꾸기 쉽다.[7]