SOLID 원칙 설명 — 소개

Apr 18 2023
소프트웨어를 통해 아이디어를 현실로 구현하는 것은 세심한 주의를 기울여 수행해야 하는 논리적 예술의 한 형태입니다.
복잡한 소프트웨어를 구축하는 것은 신나고 도전적이지만, 제대로 작성되지 않은 소프트웨어를 유지 관리하고 업그레이드하는 것은 훨씬 더 어렵고 우울합니다. 훌륭하고 잘 구조화된 코드를 작성하는 방법론은 SOLID 원칙이라는 일련의 원칙을 따르고 준수하는 것입니다.

복잡한 소프트웨어를 구축하는 것은 신나고 도전적이지만, 제대로 작성되지 않은 소프트웨어를 유지 관리하고 업그레이드하는 것은 훨씬 더 어렵고 우울합니다.

훌륭하고 잘 구조화된 코드를 작성하는 방법론은 SOLID 원칙 이라는 일련의 원칙을 따르고 준수하는 것입니다 .

SOLID 원칙은 컴퓨터 과학자인 Robert C. Martin이 2000년에 발표한 논문 에서 처음 소개되었습니다 .

SOLID 약어를 살펴보겠습니다.

(S) 단일 책임 원칙

클래스는 단 하나의 목적에 대해서만 책임을 져야 합니다. 즉, 클래스에는 (데이터베이스 논리, 로깅 논리 등) 수행할 작업 유형이 하나만 있어야 합니다.

(O)펜/폐쇄 원리

클래스는 확장을 위해 열려 있어야 하고 수정을 위해 닫혀 있어야 합니다. 즉, 새로운 기능을 구현하기 위해 다시 작성하지 않고도 기존 클래스를 확장할 수 있어야 합니다.

(L) iskov 대체 원리

부모 클래스는 자식 클래스로 쉽게 대체할 수 있어야 합니다. 즉, Rectangle 클래스가 Shape 클래스의 하위 유형인 경우 기능 흐름을 방해하지 않고 Shape를 Rectangle로 대체할 수 있어야 합니다.

(I) 인터페이스 분리 원리

인터페이스는 클래스가 지원하지 않는 기능을 구현하도록 강요해서는 안 됩니다. 즉, 더 큰 인터페이스는 지원을 제공하기 위해 더 작은 인터페이스로 분할되어야 합니다.

(D) 의존성 역전 원리

클래스는 추상화에 의존해야 하지만 구체화에 의존해서는 안 됩니다. 즉, 상위 수준 모듈이 하위 수준 모듈에 의존해서는 안 됩니다. 둘 다 추상화에 의존해야 합니다.