본문 바로가기

카테고리 없음

SOLID 원칙

"SOLID"는 객체 지향 디자인과 소프트웨어 개발에서 중요한 원칙 다섯 가지를 나타내는 약어입니다. 이 원칙들은 2000년대 초에 Robert C. Martin에 의해 정의되었으며, 적절히 따르면 유지보수가 쉽고 확장성 있는 시스템을 만들 수 있게 도와줍니다.

SOLID 원칙에 대한 개요는 다음과 같습니다:

  1. S - 단일 책임 원칙 (Single Responsibility Principle, SRP)

    • 각 클래스는 하나의 책임만을 가져야 한다는 원칙입니다. 다시 말해, 한 클래스는 하나의 변경 이유만 있어야 합니다. 이를 통해 클래스가 변경될 때 다른 부분에 미치는 영향을 최소화할 수 있습니다.
  2. O - 개방-폐쇄 원칙 (Open-Closed Principle, OCP)

    • 소프트웨어의 구성요소(클래스, 모듈, 함수 등)는 확장에 대해 개방적이고 수정에 대해 폐쇄적이어야 한다는 원칙입니다. 즉, 기존 코드를 변경하지 않고도 새로운 기능을 추가할 수 있어야 합니다.
  3. L - 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)

    • 하위 타입은 상위 타입의 객체를 대체할 수 있어야 한다는 원칙입니다. 다시 말해, 어떤 프로그램에서 특정 타입의 객체를 사용하더라도 해당 타입의 하위 객체로 대체할 수 있어야 합니다.
  4. I - 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)

    • 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하면 안 된다는 원칙입니다. 다시 말해, 너무 많은 기능을 가진 두꺼운 인터페이스보다는 필요한 기능만을 가진 여러 작은 인터페이스가 나을 수 있습니다.
  5. D - 의존성 역전 원칙 (Dependency Inversion Principle, DIP)

    • 상위 모듈은 하위 모듈에 의존해서는 안 된다. 둘 다 추상화에 의존해야 한다는 원칙입니다. 이 원칙은 구체적인 구현보다는 인터페이스나 추상화에 의존하는 것을 의미합니다.

SOLID 원칙을 따르면 코드의 재사용성, 유지보수성, 확장성을 향상시킬 수 있습니다. 이 원칙들은 각각 독립적으로도 중요하지만, 함께 사용하면 특히 강력해집니다.