본문 바로가기

자격증/정보처리산업기사

[정보처리산업기사] 객체 지향 설계 원칙 SOLID

728x90

객체 지향 설계 원칙

시스템 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜야 할 5가지 원칙입니다.

앞 글자를 따 SOLID 원칙이라고도 불립니다.

 

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

클래스는 하나의 책임만 가져야 한다.

응집도는 높고 결합도는 낮게 설계해야 한다.

A클래스와 B클래스가 서로 의존적일 때 A클래스가 변경이 된다면 B클래스 또한 변경이 됩니다.

시스템 변경이 되었어도 A클래스만 변경이 되어야 하는 것이 SRP입니다.

 

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

확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다.

기존 코드를 변경하지 않고 기능을 추가할 수 있도록 설계를 해야하며 공통 인터페이스를 하나의 인터페이스로 묶어 캡슐화하는 방법이 대표적인 방법입니다.

 

 

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

하위 클래스는 상위 클래스의 행위를 대체할 수 있어야 한다.

자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 하며 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행하도록 해야한다.

 

 

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

클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다.

단일 책임 원칙이 객체가 갖는 하나의 책임이라면 인터페이스 분리 원칙은 인터페이스가 갖는 하나의 책임이다.

 

 

 

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

고수준 모듈은 저수준 모듈에 의존하지 않아야 하며, 둘 다 추상화에 의존해야 한다.

각 객체들 간의 의존 관계가 성립될 때 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존관계를 맺어야 한다는 원칙이며 일반적으로 인터페이스를 활용하면 이 원칙은 준수한다.

728x90

'자격증 > 정보처리산업기사' 카테고리의 다른 글

[정보처리산업기사] 운영체제  (1) 2025.01.21