책55 08. 의존성 관리하기 08. 의존성 관리하기태그비어 있음날짜2024년 4월 28일객체지향 설계의 핵심은 협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는데 있다. ✅ 의존성 이해하기변경과 의존성설계와 관련된 대부분의 용어들이 변경과 관련있듯이 의존성도 그렇다.두 요소 사이의 의존성은의존되는 요소가 변경될 때 의존하는 요소도 함께 변경될 수 있다는 것을 의미한다. 의존성 전이의존성은 전이될 수 있다. 의존성이 실제로 전이될지 여부는 변경의 방향과 캡슐화의 정도에 따라 달라진다.집적 의존성 : 한 요소가 다른 요소에 직접 의존하는 경우를 가리킨다.간접 의존성 : 직접적인 관계는 존재하지 않지만 의존성 전이에 의해 영향이 전파되는 경우를 가리킨다.런타임 의존성과 컴파일 타임 의존성컴파일 타임 의존성이라는.. 2025. 3. 17. 07. 객체 분해 07. 객체 분해태그비어 있음날짜2024년 4월 16일조지 밀러의 이론에 따르면 사람이 동시에 단기 기억 안에 저장할 수 있는 정보의 개수는 9개 정도를 넘지 못한다고 한다. 프로그램은 시간과 공간의 트레이드오프를 통해 효율을 향상시킬 수 있지만, 사람의 단기 기억에 있어 시간과 공간의 두 측면 모두가 병목지점으로 작용한다. 본질적인 정보만 남기는 추상화를 통해 단기 기억의 한계를 초월할 수 있다.이런 추상화는 인류가 소프트웨어 개발 영역에 사용해 왔다.프로시저 추상화와 데이터 추상화현대적인 프로그래밍 언어를 특징 짓는 중요한 두 가지 추상화 매커니즘은 프로시저 추상화와 데이터 추상화다. 데이터 추상화를 할 때 데이터를 중심으로 타입을 추상화 하는 것을 추상 데이터 타입이라고 하고 , 데이터를 중심으로 .. 2025. 3. 17. 06. 메시지와 인터페이스 06. 메시지와 인터페이스태그비어 있음날짜2024년 4월 15일협력과 메시지객체는 협력에 참여하는 동안 클라이언트와 서버 역할을 동시에 수행하는 것이 일반적이다. 객체가 독립적으로 수행할 수 있는 것보다 더 큰 책임을 수행하기 위해서는 다른 객체와 협력해야 한다.메시지 : 오퍼레이션명 + 인자전통적인 방식의 함수 호출과 프로시저 호출은 다르다.전통적인 방식 : 어떤 코드가 실행될지를 정확하게 알고 있는 상황에서 함수 호출이나 프로시저 호출 구문을 작성한다. 코드의 의미가 컴파일 시점과 실행 시점에 동일하다는 것객체는 메시지와 메서드라는 두 가지 서로 다른 개념을 실행 시점에 연결해야 하기 때문에 컴파일 시점과 실행 시점의 의미가 달라질 수 있다.실행 시점에 메시지와 메서드를 바인딩하는 메커니즘은 두 객.. 2025. 3. 17. 05. 책임 할당하기 05. 책임 할당하기태그비어 있음날짜2024년 4월 5일책임 할당 과정은 일종의 트레이드오프 활동이다. 올바른 책임을 할당하기 위해서는 다양한 관점에서 설계를 평가할 수 있어야 한다.책임 주도 설계를 향해협력이라는 문맥 안에서 책임을 결정하라책임 주도 설계책임 할당을 위한 GRASP 패턴도메인 개념에서 출발하기정보 전문가에게 책임을 할당하라높은 응집도와 낮은 결합도 LOW COUPLING 패턴HIGH COHESION 패턴창조자에게 객체 생성 책임을 할당하라CREATOR 패턴구현을 통한 검증변경의 이유가 하나 이상인 클래스에 나타나는 위험 징후를 드러내는 패턴타입 분리하기 - 다형성을 통해 분리하기변경으로부터 보호하기Movie 클래스 개선하기 변경과 유연성책임 주도 설계의 대안느낀점책임 주도 설계를 향해두.. 2025. 3. 17. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음