본문 바로가기
전공살리기/CS

[CS 면접 기본 - 자바] 13. SOLID 원칙에 대해서 말해줘

by 가든이당 2024. 10. 27.
반응형

SOLID 원칙은 객체 지향 프로그래밍에서 소프트웨어 디자인을 개선하고 유지보수를 용이하게 하기 위해 제안된 다섯 가지 원칙입니다. SOLID는 다음의 다섯 가지 원칙의 머리글자를 따서 만든 약어입니다:

  1. S - Single Responsibility Principle (SRP):
    • 단일 책임 원칙: 클래스는 하나의 책임만 가져야 하며, 그 책임을 완전히 캡슐화해야 합니다. 즉, 클래스가 변경될 이유는 오직 하나뿐이어야 한다는 원칙입니다. 이렇게 하면 클래스가 변경될 때, 그 클래스의 다른 부분에 영향을 주지 않아 코드의 유지보수가 용이해집니다.
  2. O - Open/Closed Principle (OCP):
    • 개방-폐쇄 원칙: 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 합니다. 즉, 기존 코드를 변경하지 않고도 새로운 기능을 추가할 수 있어야 합니다
  3. L - Liskov Substitution Principle (LSP):
    • 리스코프 치환 원칙: 서브타입은 그 기반 타입으로 대체할 수 있어야 하며, 프로그램의 정확성이 유지되어야 합니다. 즉, 서브클래스는 부모 클래스의 기능을 모두 지원해야 하며, 부모 클래스가 기대하는 동작을 충족해야 합니다.
  4. Interface Segregation Principle (ISP):
    • 인터페이스 분리 원칙: 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 합니다. 즉, 하나의 일반적인 인터페이스보다는 여러 개의 구체적인 인터페이스를 사용하는 것이 좋습니다.
  5. D - Dependency Inversion Principle (DIP):
    • 의존성 역전 원칙: 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 합니다. 즉, 구체적인 구현이 아닌 인터페이스나 추상 클래스에 의존해야 하며, 이로 인해 코드의 유연성을 높일 수 있습니다.

  6. 결론
    SOLID 원칙은 소프트웨어 디자인의 품질을 높이고 유지보수를 용이하게 하기 위해 제안된 다섯 가지 원칙입니다. 각 원칙은 객체 지향 프로그래밍에서의 설계 및 구조에 대한 가이드라인을 제공하며, 이를 통해 더 유연하고 확장 가능한 소프트웨어를 만들 수 있습니다
반응형