SOLID 원칙이란 무엇인가요?

소프트웨어의 유지 보수성과 확장성을 향상시키기 위한 설계 지침 세트입니다.

🏛️

기원

SOLID 원칙은 2000년대 초 로버트 C. 마틴, Uncle Bob이 객체 지향 설계 작업에서 소개한 것입니다. 이 원칙들은 개발자들이 소프트웨어 시스템을 만드는 데 도움을 주는 다섯 가지 설계 개념의 집합입니다.

📕

정의

SOLID는 객체 지향 프로그래밍에서 다섯 가지 설계 원칙을 나타내는 두문자어입니다: 단일 책임(Single Responsibility), 개방/폐쇄(Open/Closed), 리스코프 치환(Liskov Substitution), 인터페이스 분리(Interface Segregation), 의존 역전(Dependency Inversion).

🔍

목적

이 원칙들은 소프트웨어를 유지 보수하기 쉽고 이해하며 확장할 수 있는 설계를 위한 프레임워크를 제공합니다. 개발자들이 일반적인 설계 및 아키텍처 함정을 피할 수 있도록 도와줍니다.

🔨

단일 책임 (SRP)

한 클래스는 변화할 이유가 하나만 있어야 합니다.

🔒

개방/폐쇄 (OCP)

소프트웨어 개체는 확장을 위해 열려 있어야 하지만 수정을 위해 닫혀 있어야 합니다.

🔄

리스코프 치환 (LSP)

슈퍼클래스의 객체는 기능성에 영향을 미치지 않고 그 하위 클래스 객체로 대체 가능해야 합니다.

🔀

인터페이스 분리 (ISP)

일반 목적 인터페이스보다 클라이언트 특정 인터페이스가 많은 것이 낫습니다.

🔄

의존 역전 (DIP)

상위 모듈은 하위 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 합니다.