전체 글199 13장 컴포넌트 응집도 13장 컴포넌트 응집도태그비어 있음날짜2024년 5월 8일어느 클래스를 어느 컴포넌트에 포함 시켜야 할까?소프트웨어 엔지니어링 원칙의 도움을 받아보자 컴포넌트 응집도와 관련된 세 가지 원칙🏁 REP: 재사용/릴리스 등가 원칙재사용 단위는 릴리스 단위와 같다.릴리스 절차를 통해 추적해서 관리되지 않는다면 컴포넌트를 재사용 할 수 없을 것이다.⇒ 컴포넌트가 서로 호응되는지 보증할 방법이 없다.새로운 버전이 언제 출시되고 무엇이 변했는지를 소프트웨어 개발자들이 알아야한다.적절한 공지와 문서도 작성되어야 함💡소프트웨어 설계와 아키텍처 관점에서 보면 단일 컴포넌트는 응집성 높은 클래스와 모듈들로 구성되어야 함을 뜻한다. 다음에 나오는 원칙 CCP,CRP는 이원칙에 제약을 가하는 측면에서 정의한다.🏁 CCP:.. 2025. 3. 18. 11장 DIP: 의존성 역전 원칙 11장 DIP: 의존성 역전 원칙태그비어 있음날짜2024년 4월 27일의존성 역전 원칙에서 말하는 '유연성이 극대화된 시스템'이란 소스코드 의존성이 추상에 의존하며 구체에는 의존하지 않는 시스템이다.이 아이디어는 확실히 비현실적이다.소프트웨어 시스템이라면 구체적인 많은 장치에 의존하기 때문이다.String 클래스처럼 변경될 일이 거의 없다.이처럼 변경될 일이 거의 없는 운영체제나 플랫폼 같은 안정적인 환경은 DIP를 논할 때 무시하는 편이다.변경되지 않는다면 의존할 수 있다는 사실을 이미 알고 있기 때문이다.우리가 의존하지 않도록 피하고자 하는 것은 바로 변동성이 큰 구체적인 요소다.안정된 추상화추상 인터페이스에 변경이 생기면 이의 구현체들도 수정해야 한다. 반대는 x→ 인터페이스는 구현체보다 변동성이 .. 2025. 3. 18. 9장 LSP: 리스코프 치환 원칙 9장 LSP: 리스코프 치환 원칙태그비어 있음날짜2024년 4월 27일리스코프는 하위타입을 아래와 같의 정의했다.여기에서 필요한 것은 다음과 같은 치환 원칙이다. s 타입의 객체 o1 각각에 대응하는 T 타입 객체 o2가 있고, T 타입을 이용해서 정의한 모든 프로그램 P에서 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위 타입이다.상속을 사용하도록 가이드하기Personal License , Business License 두 가지 하위 타입은 라이선스 비용을 계산한다.이 설계는 LSP를 준수한다. Billing 애플리케이션의 행위가 하위타입 중 무엇을 사용하느지에 의존하지 않기 때문에, 하위타입들을 모두 License 타입을 치환할 수 있다.정사각형/직사각형 문제LSP를.. 2025. 3. 18. 7장 SRP: 단일 책임 원칙 7장 SRP: 단일 책임 원칙태그비어 있음날짜2024년 4월 27일SRP개념: 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야한다는 원칙액터(actor): 해당 변경을 요청하는 한 명 이상의 사람을 지칭모듈: 함수와 데이터 구조로 구성되어 응집된(cohesion) 집합⇒ 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다잘못된 SRP의 의미 주의잘못된 개념1: 모든 모듈이 단 하나의 일만 해야한다는 잘못된 개념> 모든 모듈이 단 하나의 일만 해야한다는 개념은 '함수'의 정의SRP를 위반하는 징후 우발적 중복Employee 클래스는 CFO, COO, CTO 서로 다른 세 그룹의 액터를 가진다calculatePay() : 회계팀에서 기능 정의. CFO 보고를 위해 사용reportHours(.. 2025. 3. 18. 이전 1 ··· 4 5 6 7 8 9 10 ··· 50 다음