본문 바로가기

전체 글199

10. 상속과 코드 재사용 10. 상속과 코드 재사용태그비어 있음날짜2024년 5월 5일🏁 상속과 중복 코드DRY 원칙중복 코드는 수정과 테스트에 드는 비용을 증가시킨다.중복 여부를 판단하는 기준은 변경이다. 요구사항이 변경됐을 때 두 코드를 함께 수정해야 한다면 이 코드는 중복이다. 중복 코드를 결정하는 기준은 코드의 모양이 아니다. 모양이 유사하다는 것은 단지 중복의 징후일 뿐이다.DRY 원칙모든 지식은 시스템 내에서 단일하고, 애매하지 않고, 정말로 믿을 만한 표현 양식을 가져야 한다.타입코드 사용하기요금제를 구분하는 타입코드를 추가하고 타입에 따라 로직을 분기시킬 수 있다. 하지만 타입 코드를 사용하는 클래스는 낮은 응집도와 높은 결합도라는 문제에 시달리게 된다.상속을 이용해서 중복 코드 제거하기상속을 염두에 두고 설계되.. 2025. 3. 17.
09. 유연한 설계 09. 유연한 설계태그비어 있음날짜2024년 4월 28일개방-폐쇄 원칙소프트웨어 개체는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.확장과 수정은 각각 동작과 코드의 관점을 반영한다.의존성 관점에서 개방-폐쇄 원칙을 따르는 설계란 컴파일타입 의존성은 유지하면서 런타임 의존성의 가능성을 확장하고 수정할 수 있는 구조이 원칙의 핵심은 추상화에 의존하는 것 추상화 과정을 거치면 문맥이 바뀌더라도 변하지 않는 부분만 남게되므로 각 문맥에 적합하게 기능을 구체화하고 확장할 수 있다.💡단순히 어떤 개념을 추상화했다고 해서 수정에 대해 닫혀 있는 설계를 만들 수 있는 것은 아니다. 개방-폐쇄 원칙에서 폐쇄를 가능하게 하는 것은 의존성의 방향이다.생성 사용 분리유연하고 재사용 가능한 설계를 원한.. 2025. 3. 17.
08. 의존성 관리하기 08. 의존성 관리하기태그비어 있음날짜2024년 4월 28일객체지향 설계의 핵심은 협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는데 있다. ✅ 의존성 이해하기변경과 의존성설계와 관련된 대부분의 용어들이 변경과 관련있듯이 의존성도 그렇다.두 요소 사이의 의존성은의존되는 요소가 변경될 때 의존하는 요소도 함께 변경될 수 있다는 것을 의미한다. 의존성 전이의존성은 전이될 수 있다. 의존성이 실제로 전이될지 여부는 변경의 방향과 캡슐화의 정도에 따라 달라진다.집적 의존성 : 한 요소가 다른 요소에 직접 의존하는 경우를 가리킨다.간접 의존성 : 직접적인 관계는 존재하지 않지만 의존성 전이에 의해 영향이 전파되는 경우를 가리킨다.런타임 의존성과 컴파일 타임 의존성컴파일 타임 의존성이라는.. 2025. 3. 17.
07. 객체 분해 07. 객체 분해태그비어 있음날짜2024년 4월 16일조지 밀러의 이론에 따르면 사람이 동시에 단기 기억 안에 저장할 수 있는 정보의 개수는 9개 정도를 넘지 못한다고 한다. 프로그램은 시간과 공간의 트레이드오프를 통해 효율을 향상시킬 수 있지만, 사람의 단기 기억에 있어 시간과 공간의 두 측면 모두가 병목지점으로 작용한다. 본질적인 정보만 남기는 추상화를 통해 단기 기억의 한계를 초월할 수 있다.이런 추상화는 인류가 소프트웨어 개발 영역에 사용해 왔다.프로시저 추상화와 데이터 추상화현대적인 프로그래밍 언어를 특징 짓는 중요한 두 가지 추상화 매커니즘은 프로시저 추상화와 데이터 추상화다. 데이터 추상화를 할 때 데이터를 중심으로 타입을 추상화 하는 것을 추상 데이터 타입이라고 하고 , 데이터를 중심으로 .. 2025. 3. 17.