CS/OOP

    [객체지향] 응집도와 결합도의 차이

    객체지향의 관점에서 설계의 품질 척도를 결정하기 위해 다양한 평가 기준을 도입하였다. 그 중, 가장 대표적인 척도인 응집도(cohesion)과 결합도(coupling)의 차이를 알아보고자 한다. 응집도란(cohension)? 응집도란 모듈에 포함된 내부 요소들이 연관되어 있는 정도를 나타낸다. 다시 말해, 한 모듈 내에서 내부 요소들이 같은 목적을 추구하는지에 대한 척도이다. 모듈 내의 요소들이 동일 목적을 위해 긴밀하게 협력한다면, 높은 응집도를 가진다고 말한다. 일반적으로 응집도가 높을수록 좋은 설계라고 말할 수 있다. 결합도란(Coupling)? 결합도란 의존성의 정도를 말한다. 한 모듈이 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 나타내는 척도이다. 어떤 모듈이 다른 모듈에 대해 필요한 ..

    DDD 설계 vs SQL 중심 설계

    DDD 설계 vs SQL 중심 설계

    1. DDD란? DDD(Domain Driven Design : 도메인 주도 설계)란? 도메인 패턴을 중심에 놓고 설계하는 패턴이다. 즉, 도메인 간의 상호작용이 설계의 중심이 된다. 도메인이란, 소프트웨어로 해결하고자 하는 문제의 영역, 실세계에서 사건이 발생하는 집합과 같은 말들로 정의할 수 있다. DDD에서의 도메인이란 비즈니스 도메인을 의미하며, 비즈니스 도메인은 유사한 업무의 집합이다. DDD의 특징 핵심 도메인과 도메인 로직에 초점을 맞춘다. Entity와 도메인 개념의 일치를 지향한다. 각 도메인은 서로 협력하지만 책임과 역할이 명확하여 높은 응집도와 낮은 결합도를 갖는 상태를 지향한다. 이를 통해 변경과 확장에 대해 유연한 코드를 작성할 수 있다. DDD의 Layered Architectu..