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

HyeJean·2023년 10월 3일
0

정보처리기사

목록 보기
7/8

✏️ SOLID 원칙

SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙( SRP, OCP, LSP, ISP, DIP )을 말한다.

1) SRP(Single Responsibility Principle): 단일 책임 원칙
2) OCP(Open Closed Priciple): 개방 폐쇄 원칙
3) LSP(Listov Substitution Priciple): 리스코프 치환 원칙
4) ISP(Interface Segregation Principle): 인터페이스 분리 원칙
5) DIP(Dependency Inversion Principle): 의존 역전 원칙

SOLID 객체 지향 원칙을 적용하면 객체지향 소프트웨어 개발에서 유지보수성, 재사용성, 확장성 등을 강화하여 더 품질 높은 코드를 작성하는 데 도움을 준다.

[S] 단일 책임 원칙 (Single Responsibility Principle - SRP)

  • 클래스는 하나의 책임만 가져야 한다.
  • 클래스가 변경되어야 하는 이유는 오직 하나뿐이어야 한다.
    - 하나의 클래스는 하나의 기능 담당하여 하나의 책임을 수행하는데 집중되도록 클래스를 나눠서 여러 개 설계하라는 원칙이다.
  • 프로그램의 유지보수성을 높이기 위한 원칙이다.

[O] 개방-폐쇄 원칙 (Open/Closed Principle - OCP)

  • 소프트웨어의 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.
  • 새로운 기능을 추가할 때는 기존의 코드를 변경하지 않고 확장할 수 있어야 한다.
  • 인터페이스나 추상 클래스를 통해 이 원칙을 구현할 수 있다.

[L] 리스코프 치환 원칙 (Liskov Substitution Principle - LSP)

  • 하위 클래스는 상위 클래스를 대체할 수 있어야 한다.
    - 상위 클래스의 인스턴스를 하위 클래스의 인스턴스로 대체해도 프로그램의 의미는 변하지 않아야 한다.
    - 상속 관계에서의 일관성을 보장한다.

[I] 인터페이스 분리 원칙 (Interface Segregation Principle - ISP)

  • 클라이언트는 자신이 사용하지 않는 인터페이스에 의존 관계를 맺으면 안 된다.
    - 하나의 큰 인터페이스보다는 여러 개의 작은 인터페이스가 낫다.
    - 클래스가 자신에게 필요하지 않은 메서드에 의존하지 않도록 하고, 결합도를 낮춘다.
  • 분리된 인터페이스를 수정사항이 생겨서 또 인터페이스들을 분리하면 안 된다.

[D] 의존 역전 원칙 (Dependency Inversion Principle - DIP)

  • 고수준 모듈은 저수준 모듈에 의존해서는 안 된다. 둘 다 추상화에 의존해야 한다.
  • 참조해야 할 상황에는 하위 클래스가 아닌 상위 추상 클래스를 참조해야 한다.
  • 추상화된 인터페이스나 추상 클래스를 통해 의존성을 주입받도록 설계해야 한다.
    - 모듈 간의 결합도를 낮추고, 유연한 코드를 유지할 수 있게 한다.

0개의 댓글