[swift] 상속과 인터페이스 분리 원칙(SRP)의 관계 이해하기

객체지향 프로그래밍에서 상속과 인터페이스 분리 원칙(SRP: Single Responsibility Principle)은 중요한 소프트웨어 설계 원칙입니다. 이들의 관련성에 대해 알아보겠습니다.

1. 상속

상속은 객체지향 언어에서 자주 사용되는 특징으로, 부모 클래스의 속성과 동작을 자식 클래스가 물려받는 것을 의미합니다. 이를 통해 코드 재사용성과 유연성을 높일 수 있습니다.

class Shape {
    var color: String
    func draw() {}
}

class Circle: Shape {
    var radius: Double
}

위의 예시에서 Circle 클래스는 Shape 클래스의 color 속성과 draw() 메서드를 상속받았습니다.

2. 인터페이스 분리 원칙(SRP)

인터페이스 분리 원칙은 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하면 안 된다는 원칙입니다. 즉, 한 클래스는 자신의 존재 이유에 충실하면서 불필요한 인터페이스를 구현하지 않아야 합니다.

3. 상속과 인터페이스 분리 원칙(SRP)의 관계

상속과 인터페이스 분리 원칙은 서로 긴밀한 관련이 있습니다. 상속을 통해 부모 클래스의 기능을 확장하고자 할 때, SRP에 따라 자식 클래스는 필요한 인터페이스만 구현하여 단일 책임을 유지해야 합니다.

이는 부모 클래스에 의해 제공되는 인터페이스를 그대로 구현하는 대신, 필요한 인터페이스만 활용하여 SRP를 준수하는 것을 의미합니다.

이와 같은 방식으로 상속과 SRP를 함께 고려하면, 유지보수가 용이하고 유연한 구조의 소프트웨어를 설계할 수 있습니다.

참고문헌:

  1. “The Swift Programming Language - Inheritance”, Apple
  2. Martin, Robert C. “Clean Architecture: A Craftsman’s Guide to Software Structure and Design”, Prentice Hall, 2017

이상으로 상속과 인터페이스 분리 원칙(SRP)의 관계에 대해 설명드렸습니다. 추가 질문이 있으시면 언제든지 문의해주세요.