본문 바로가기
개발지식

객체지향 설계 원칙 SOLID

by titlejjk 2023. 6. 14.

이미지출처 https://www.linkedin.com/pulse/solid-principles-razneeknth-pradhan

객체지향 설계 원칙인 SOLID

SOLID는 소프트웨어 개발에서 유지보수 가능하고 확장 가능한 시스템을 만들기 위한 가이드 라인이다.

이 SOLID는 다섯 가지 원칙으로 구성되어 있으며, 각각 다음과 같이 표현된다.

 

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

    클래스는 단 하나의 책임만을 가져야 한다. 즉, 클래스는 변경의 이유가 하나여야 하며, 변경될 수 있는 이유도 단 하나여야 한다. 이를 통해 클래스의 응집도를 높이고 결합도를 낮출 수 있다.

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

    확장에는 열려있고 수정에는 닫혀있어야 한다.
    이말은 즉, 기존의 코드를 수정하지 않고도 기능을 추가할 수 있어야 한다. 이를 위해 인터페이스와 추상화를 활용하고, 다형성을 이용하여 확장 가능한 구조를 만든다.

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

    서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다. 즉 상속 관계에서 하위 클래스는 상위 클래스의 기능을 완전히 대체할 수 있어야 한다. 이를 통해 다형성을 유지하고 일관성 있는 동작을 보장한다.

  4. ISP(Interface Segregation Principle) 인터페이스 분리 원칙
    클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안 된다. 한 인터페이스가 너무 많은 메소드를 가지고 있지 않도록 인터페이스를 분리해야 한다. 이를 통해 인터페이스의 명확성과 클라이언트의 의존성을 줄일 수 있다.

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

    의존 관계를 맺을 때는 추상화에 의존해야 하며, 구체화에 의존하면 안 된다. 상위 모듈은 하위 모듈에 의존해서는 안 되고, 추상화는 구체화에 의존해선 안 된다. 이를 통해 결합도를 낮추고 유연한 구조를 유지할 수 있다.

'개발지식' 카테고리의 다른 글

POJO JAVA  (0) 2023.06.22
Framework  (0) 2023.06.16
Spirng Framework 와 Spring Boot의 차이  (0) 2023.06.14
Layered architecture  (0) 2023.06.05
Clean Code  (0) 2023.06.05

댓글