책55 1장 설계와 아키텍처란? 1장 설계와 아키텍처란?태그비어 있음날짜2024년 4월 11일설계와 아키텍처는 아무런 차이가 없다.아키텍처는 보다 더 고수준을 가리킬 때 흔히 사용되지만 실제로 하는 일을 보면 이러한 구분은 무의미하다.저수준의 세부사항과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소다. 개별로 존재할 수 없고 이 둘을 구분 짓는 경계는 뚜렷하지 않다.고수준에서 저수준으로 향하는 의사결정의 연속성만이 있을 뿐이다.좋은 소프트웨어 설계의 목표는?소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 데 있다.설계 품질을 재는 척도는 고객의 요구를 만족시키는 데 드는 비용을 재는 척도와 다름없다. 사례 연구 개발자 수는 증가했지만 코드 생산성은 낮아진다. (처음제품보다 40배 많.. 2025. 3. 17. 15. 디자인 패턴과 프레임워크 15. 디자인 패턴과 프레임워크태그비어 있음날짜2024년 5월 22일소프트웨어 설계에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결 방법을 디자인 패턴이라고 부른다.디자인 패턴 정의패턴은 추상적인 원칙과 실제 코드 작성 사이의 간극을 메워주며 실질적인 코드 작성을 돕는다.저저가 동의하는 마틴 파울러의 디자인 패턴 정의패턴은 한 컨텍스트에서 유용한 동시에 다른 컨텍스트에서도 유용한 ‘아이디어’다.캡슐화와 디자인 패턴대부분의 디자인 패턴의 목적은 특정한 변경을 캡슐화 함으로써 유연하고 일관성 있는 협력을 설계할 수 있는 경험을 공유하는 것이다.패턴을 맹목적으로 사용하면 안된다.어떤 컨텍스트에서 어떤 패턴을 적용해야 하는지 다양한 실무경험을 통해 감각을 익히자프레임워크와 코드 재사용프레임워.. 2025. 3. 17. 14. 일관성 있는 협력 14. 일관성 있는 협력태그비어 있음날짜2024년 5월 22일휴대폰 과금 시스템을 구현할 때 처음 예제는 일관성이 없어서 이해하기 어렵다유사한 기능은 유사한 방식으로 구현해야 한다. 협력을 일관성 있게 만들어야 한다.설계에 일관성 부여하기변하는 개념을 변하지 않는 개념으로부터 분리하라변하는 개념을 캡슐화 하라추상화를 찾아 추상화에 의존하도록 만드는 것조건에 따라 분기되는 어떤 로직들이 있다면 이 로직들이 바로 개별적인 변경이라고 볼 수 있다.클래스를 분리하면 유사한 행동을 하는 클래스들을 역할이라는 추상화로 묶을 수 있고 이는 설계를 일관성있게 유지시킬 수 있다.캡슐화 다시 살펴보기캡슐화는 데이터 은닉 이상이다.캡슐화는 변하는 어떤 것이든 감추는 것이다.캡슐화 종류데이터 캡슐화메서드 캡슐화객체 캡슐화서브.. 2025. 3. 17. 13. 서브클래싱과 서브타이핑 13. 서브클래싱과 서브타이핑태그비어 있음날짜2024년 5월 14일올바른 타입 계층을 구성하는 원칙을 살펴보자🏁 타입객체의 타입이란 객체가 수신할 수 있는 메시지의 종류를 정의하는 것이다.⇒ 퍼블릭 인터페이스 🏁 타입 계층타입 계층을 구성하는 두 타입 간의 관계에서 더 일반적인 타입을 슈퍼타입, 더 특수한 타입을 서브타입이라고 부른다.🏁 서브클래싱과 서브타이핑언제 상속을 사용해야 하는가?상속 관계가 is-a관계를 모델링하는가?is-a로 연결해 문장을 만들어도 어색하지 않은 단어로 타입의 이름을 정하라 클라이언트 입장에서 부모 클래스의 타입으로 자식 클래스를 사용해도 무방한가?행동의 호환 여부를 판단하는 기준은 클라이언트의 관점이다.인터페이스를 클라이언트의 기대에 따라 분리함으로써 변경에 의해 영향을.. 2025. 3. 17. 이전 1 ··· 4 5 6 7 8 9 10 ··· 14 다음