SOLID 원칙

개발 2023. 5. 31. 09:34
반응형

SOLID는 객체 지향 프로그래밍에서 소프트웨어 디자인 원칙의 앞글자를 딴 약어입니다. 

  • Single Responsibility Principle (단일 책임 원칙, SRP):
    클래스는 하나의 단일 책임만 가져야 합니다. 즉, 클래스는 변경의 이유가 오직 하나여야 하며, 오직 한 가지 기능에 집중되어야 합니다. 이는 클래스의 응집도를 높이고, 변경이 필요한 경우 다른 기능에 영향을 덜 주며 코드의 이해와 유지 관리를 용이하게 만듭니다.

  • Open-Closed Principle (개방-폐쇄 원칙, OCP):
    소프트웨어의 엔티티(클래스, 모듈 등)는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 합니다. 즉, 기존의 코드를 변경하지 않고 새로운 동작을 추가할 수 있어야 합니다. 이를 위해 추상화, 다형성, 인터페이스 등을 활용하여 코드를 설계합니다.

  • Liskov Substitution Principle (리스코프 치환 원칙, LSP):
    서브 타입은 언제나 기반 타입으로 대체될 수 있어야 합니다. 즉, 상속 관계에서 자식 클래스는 부모 클래스의 기능을 제대로 이행해야 합니다. 이를 통해 다형성을 지원하고, 클라이언트 코드가 서브 타입을 투명하게 다룰 수 있도록 합니다.

  • Interface Segregation Principle (인터페이스 분리 원칙, ISP):
    클라이언트는 자신이 사용하지 않는 인터페이스에 의존하도록 강요받지 않아야 합니다. 즉, 인터페이스는 클라이언트에게 필요한 기능만 제공해야 합니다. 인터페이스의 분리는 결합도를 낮추고, 의존성을 관리하기 쉽게 만들어줍니다.

  • Dependency Inversion Principle (의존성 역전 원칙, DIP):
    의존 관계는 추상화에 의존해야 하며, 구체적인 구현에 의존해서는 안 됩니다. 즉, 고수준 모듈은 인터페이스나 추상 클래스와 같은 추상화에 의존해야 하며, 저수준 모듈은 추상화에 의존해야 합니다. 이를 통해 결합도를 낮추고 유연성과 확장성을 향상시킵니다.
반응형

'개발' 카테고리의 다른 글

Xcode 파일 생성시 Created by 이름 변경하기  (0) 2026.01.06
클린 아키텍처(Clean Architecture) 요약  (0) 2025.12.04
Xcode 26 변경점  (0) 2025.11.07
WWDC 2025 요약  (2) 2025.07.04
유지보수하기 어렵게 코딩하는 방법  (0) 2023.11.15
SwiftLint 사용하기  (0) 2022.09.23
Posted by 까칠코더
,