IT 성장일기
[정보처리기사] S.O.L.I.D - 객체지향의 5원칙 본문
반응형
S.O.L.I.D - 객체지향의 5원칙
객체지향 설계에는 디자인 품질과 유지보수성을 향상을 위한 다섯가지 핵심 원칙이 있습니다.
Single Responsibility Principle
단일책임원칙은 클래스는 단 하나의 역할만을 가져야 하며, 변경의 의유도 단 하나여야 한다는 것을 의미합니다.
클래스가 하나의 역할에 집중함으로써 명확한 목적을 지향합니다.
- 코드의 명확성
- 클래스가 단순해지고 어떤 역할을 수행하는지 쉽게 이해할 수 있습니다. - 유지보수의 용이성
- 하나의 책임만을 가지게 되면 해당 책임이 변경될 때 다른 부분에 영향을 미치지 않고도 클래스를 수정할 수 있습니다. - 유연한 재사용성
- 클래스가 하나의 역할만을 수행한다면 다른 모듈이나 소프트웨어에서도 이를 사용하기가 용이합니다.
Open-Close Principle
개방-페쇄 원칙은 클래스는 확장에는 유연하게 열려있고 변경에는 닫혀있어야 한다는 것을 의미합니다.
다음의 두 가지 개념을 강조합니다.
- 확장에 대한 개방
- 기존 코드의 변경 없이도 기능의 확장이 용이해야합니다. - 변경에 대한 폐쇄
- 코드가 안정적이고 신뢰성 있게 동작하기 위해 잦은 변경은 지양하도록 설계해야 합니다.
Liskiv Substitution Principle
리스코프 치환 원칙은 상속관계에 있는 서브클래스는 슈퍼클래스를 대체할 수 있어야 함을 의미합니다.
- 일관성 유지
- 자식 클래스는 부모 클래스의 역할을 완전히 지원하여야 합니다. - 기능 확장
- 자식 클래스는 부모 클래스의 기능을 재정의 하는 것이 아닌 상속을 통해 확장합니다.
Interface Segregation Principle
인터페이스 분리 원칙은 사용자가 사용하는 인터페이스에만 의존하여야 한다는 것을 의미합니다.
여러개의 기능을 가진 커다란 인터페이스가 아닌 세분화된 인터페이스로 설계해야 함을 의미합니다.
- 클라이언트 의존성 감소
- 사용자가 사용하는 관련성 있는 인터페이스에만 의존하게 되므로 불필요한 의존성이 감소합니다. - 인터페이스 명확성
- 작은 인터페이스는 하나의 관심사에만 집중하게 되므로 명확하고 이해하기 쉬워집니다. - 변경의 용이성
- 작고 응집도가 높은 인터페이스는 변경 시 다른 인터페이스에 미치는 영향이 적습니다.
Dependency Inversion Principle
의존 역전 원칙은 상위 모듈은 하위 모듈에 의존해서는 안되며 추상화에 의존해야 함을 의미합니다.
여기서 상위 모듈은 인터페이스나 추상클래스를, 하위 모듈은 구현부를 의미합니다.
구체적인 구현보다는 추상화에 의존하여 프로그램의 유연성을 지향합니다.
- 유연한 구조
- 인터페이스가 구현부에 의존하지 않음으로써 구현부의 변경이 인터페이스에 영향을 미치지 않게 됩니다. - 쉬운 테스트
- 모듈간 결합도가 낮아지므로 각 모듈을 단독으로 테스트 하기가 쉬워집니다. - 재사용성 증가
- 하위 모듈을 다른 클래스에서 사용하기가 더 쉬워집니다.
반응형
'Cert > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 접근 제어 방식 (0) | 2024.03.19 |
---|---|
[정보처리기사] OSI 7계층 (0) | 2024.03.18 |
[정보처리기사] 정규화(Normalization)와 반정규화(De-Normalization) (1) | 2024.03.11 |
[정보처리기사] UML의 구성요소 (2) | 2024.03.06 |
[정보처리기사] 정적테스트, 동적테스트 (0) | 2024.03.06 |