5원칙4 객체 지향 설계 5원칙(SOLID) - 의존 역전 원칙 DIP [핵심간단] 의존성 역전 원칙 (Dependency Inversion Principle, DIP) - "의존 관계를 맺을 때, 변하기 쉬운(구체적인) 것보다는 변하기 어려운(추상적인) 것에 의존해야한다." - “추상화에 의존해야지, 구체화에 의존하면 안된다.” 구체화된 클래스에 의존하기 보다는 추상 클래스나 인터페이스와 관계를 맺는 것을 의미한다. 간단히 말해서, 추상성에 의존하라는 원칙이다. 이를 통해 비즈니스와 관련된 부분이 세부 사항에는 의존하지 않고자 한다. 고수준 계층의 모듈(클래스)은 저수준 계층의 모듈(클래스)이 있다고 하자. - 고수준: 입력과 출력에 먼 추상화된, 비즈니스적인 부분을 다루는 - 저수준: 고수준 모듈에서 기능을 수행하기 위해 도와주는 역할로, 입력과 출력으로부터 가까운 HTTP, 데이터.. 개발기초 2023. 2. 22. 객체 지향 설계 5원칙(SOLID) - 인터페이스 분리 원칙 ISP [핵심간단] 인터페이스 분리 원칙 (Interface segregation principle, ISP) - "클라이언트는 사용하지 않는 인터페이스에 의존해서는 안 된다." - "특정 클라이언트를 위한 인터페이스 여러 개가 인터페이스 하나보다 낫다" 사용자가 필요하는 기능만 제공하도록 인터페이스는 최대한 세부적으로, 작게 유지해야한다는 말이다. 구체적으로, 특정 클라이언트에 대해서 인터페이스를 구성할 때 한 개의 범용으로 구성하기보다, 여러 개로 구성하는 것이 나은 것이다. 클라이언트가 사용하지 않는 인터페이스에 변경이 발생하더라도 영향을 받지 않도록 만들어야 한다. 만약 불필요한 인터페이스에 의존하면 예상치 못한 문제에 빠질 수 있다. 사용 기능에 따라 인터페이스를 분리한다면 클라이언트는 그 의존도를 낮출 수 있다... 개발기초 2023. 2. 21. 객체 지향 설계 5원칙(SOLID) - 리스코프 치환 원칙 LSP [핵심간단] SRP, OCP 참고 https://veams.tistory.com/65 객체 지향 설계 5원칙(SOLID) - 단일책임원칙SRP, 개방폐쇄원칙 OCP 객체지향 프로그래밍, 어떤 기준으로 설계하면 좋을까? 객체 지향 설계를 할 때, 시간이 지난 후에도 유지 보수와 확장이 쉬운 프로그래밍을 하기 위한 기본 원칙이 5개가 존재한다. 개발자라면 veams.tistory.com 리스코프 치환 원칙 (LSP, Liskov substitution principle) - "서브타입(derived)은 언제나 상위타입(base)으로 교체가 가능해야 한다." 객체 지향 언어에서는 객체의 상속이 일어나며 부모/자식 관계가 정의된다. 하지만 이 과정에서 상속 관계를 잘못 설정하는 경우가 생긴다. LSP 원칙은 올바른 상속은 .. 개발기초 2023. 2. 21. 객체 지향 설계 5원칙(SOLID) - 단일책임원칙SRP, 개방폐쇄원칙 OCP 객체지향 프로그래밍, 어떤 기준으로 설계하면 좋을까? 객체 지향 설계를 할 때, 시간이 지난 후에도 유지 보수와 확장이 쉬운 프로그래밍을 하기 위한 기본 원칙이 5개가 존재한다. 개발자라면 소프트웨어를 효율적이면서도 안전하고 정확하게 설계하고 싶을 것이다. 이 원칙들은 작성한 코드의 가독성을 높이고, 소프트웨어의 확장이 가능할 수 있도록 돕기 위해 필요한 전략이기도 하다. 여기서 이 5가지 원칙을 기억하기 쉽도록 각 약어의 맨 앞글자를 따서 SOLID 원칙으로 부르게 되었다. 단일 책임 원칙(SRP) 개방 폐쇄 원칙(OCP) 리스코프 치환 원칙(LSP) 인터페이스 분리 원칙(ISP) 의존관계 역전 원칙(DIP) SRP, OCP, LSP, ISP, DIP ==> SOLID 각 원칙이 무엇을 의미하는지, 간.. 개발기초 2023. 2. 21. 이전 1 다음