IT 이론지식

SOLID 원칙

쥐PT 2024. 3. 7. 15:11
728x90
반응형
SMALL

SOLID 원칙은 소프트웨어 개발에서 사용되는 객체 지향 설계 원칙의 다섯 가지 원칙을 나타냅니다. 이러한 원칙은 소프트웨어의 유지 보수성, 확장성 및 재사용성을 향상시키는 데 도움이 되는 기본적인 지침을 제공합니다. SOLID는 다음의 다섯 가지 원칙으로 구성됩니다.

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

단일 책임 원칙은 클래스 또는 모듈이 단 하나의 책임만을 가져야 한다는 원칙입니다. 이는 클래스가 변경되어야 하는 이유는 딱 하나여야 한다는 것을 의미합니다. 한 클래스가 여러 책임을 갖게 되면 그 클래스를 변경해야 하는 이유가 여러 가지가 될 수 있고, 이는 코드의 유지 보수성을 떨어뜨립니다. 이 원칙을 준수하면 코드의 응집도(cohesion)를 높일 수 있습니다.

2. 개방-폐쇄 원칙 (Open/Closed Principle, OCP)

개방-폐쇄 원칙은 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 폐쇄되어 있어야 한다는 원칙입니다. 즉, 기존의 코드를 변경하지 않고도 새로운 기능을 추가할 수 있어야 합니다. 이를 위해 추상화와 다형성을 이용하여 코드를 설계합니다.

3. 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)

리스코프 치환 원칙은 하위 타입(subtype)은 상위 타입(super type)을 대체할 수 있어야 한다는 원칙입니다. 즉, 어떤 클래스가 상속 관계에 있을 때, 상위 클래스의 인스턴스를 하위 클래스의 인스턴스로 대체해도 프로그램은 올바르게 동작해야 합니다. 이는 상속을 사용할 때 발생할 수 있는 문제를 방지하고 코드의 일관성을 유지하는 데 도움이 됩니다.

4. 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)

인터페이스 분리 원칙은 클라이언트가 사용하지 않는 메서드에 의존하지 않아야 한다는 원칙입니다. 즉, 인터페이스는 클라이언트가 필요로 하는 기능에 대해서만 제공해야 합니다. 하나의 큰 인터페이스보다는 여러 개의 작은 인터페이스가 더 좋습니다. 이는 인터페이스의 응집도를 높이고 결합도를 낮추는 데 도움이 됩니다.

5. 의존 역전 원칙 (Dependency Inversion Principle, DIP)

의존 역전 원칙은 고수준 모듈은 저수준 모듈에 의존하면 안 되며, 모든 모듈은 추상화에 의존해야 한다는 원칙입니다. 즉, 추상화된 인터페이스나 클래스에 의존해야 하며, 구체적인 구현에 의존하면 안 됩니다. 이를 통해 모듈 간의 결합도를 줄이고 유연한 구조를 갖출 수 있습니다.

 

이러한 SOLID 원칙들은 객체 지향 설계를 할 때 유용한 지침을 제공하며, 코드의 품질을 향상시키고 유지 보수성을 높이는 데 도움이 됩니다. 이러한 원칙을 준수하면 코드의 읽기 쉽고 유지보수하기 쉬운 구조를 유지할 수 있습니다.

728x90
반응형
LIST

'IT 이론지식' 카테고리의 다른 글

파레토 법칙(Pareto Principle)  (1) 2024.03.07
해싱 함수(Hashing Function)  (0) 2024.03.07
애자일 (Agile)  (0) 2024.03.07
온톨로지 (Ontology)  (0) 2024.03.06
서버리스(Serverless) 컴퓨팅  (0) 2024.03.06