Objects Study - Chapter10. 유연한 설계
상속객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 점이다.전통적인 패러다임에서는 코드를 복사 후 붙여넣기 하고 수정하여 코드를 재사용하였다.객체지향에서는 코드를 재사용하기 위해 새로운 코드를 추가한다.재사용 관점에서 상속이란 클래스 안에 정의된 인 ...
Read more
Objects Study - Chapter9. 유연한 설계
개방-폐쇄 원칙개방폐쇄의 원칙(OCP, Open-Closed Principle)은 다음과 같이 설명된다. 소프트웨어 개채(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 여기서의 키워드는 확장과 수정이다. 확장에 ...
Read more
Objects Study - Chapter8. 의존성 관리하기
서론잘 설계된 객체지향 어플리케이션은 작고 응집도 높은 객체들로 구성된다.작고 응집성 높은 객체란 책임의 초점이 명확하고 한 가지 일만 잘하는 객체를 의미한다.따라서 객체 간 협력을 통해 다른 객체에게 도움을 요청하여 여러가지 일을 수행할 수 있다.협력은 객체가 다른 ...
Read more
Objects Study - Chapter7. 객체 분해
추상화와 분해불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만을 남기는 작업을 추상화 라고 부른다.가장 일반적인 추상화 방법은 한 번에 다뤄야 하는 문제의 크기를 줄이는 것이다. 이처럼 큰 문제를 해결 가능한 작은 문제로 나누는 작업을 분해(decomposi ...
Read more
Objects Study - Chapter6. 메세지와 인터페이스
협력과 메세지 협력은 어떤 객체가 다른 객체에게 무언가를 요청할 때 시작된다. 메세지는 객체 사이의 협력을 가능하게 하는 매개체다 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 메세지를 전송하는 것뿐이다. 메세지는 매개로 하는 요청과 응답의 조합이 두 객체 사이의 ...
Read more
Objects Study - Chapter5. 책임 할당하기
책임 주도 설계를 향해책임에 초점을 맞춰서 설계할 때 직면하는 가장 큰 어려움은 어떤 객체에게 어떤 책임을 할당할지를 결정하기가 쉽지 않다는 것이다.책임 할당 과정은 일종의 트레이드오프 활동이다.동일한 문제를 해결할 수 있는 다양한 책임 할당 방법이 존재하며, 어떤 방 ...
Read more
Objects Study - Chapter4. 설계 품질과 트레이드오프
데이터 중심의 설계객체지향 설계에는 두 가지 방법을 이용해 시스템을 객체로 분할할 수 있다. 데이터를 분할의 중심축으로 삼는 방법 (Entity를 먼저 정의하고 비지니스 로직 구현) 데이터 중심의 관점에서는 객체는 자신이 포함하고 있는 데이터를 조작하는 데 필요한 ...
Read more
Objects Study - Chapter3. 역할, 책임, 협력
역할, 책임, 협력객체지향 패러다임의 관점에서의 핵심은 역할(role), 책임(responsibility), 협력(collaboration)이다.애플리케이션의 기능을 구현하기 위해 어떤 협력이 필요하고 협력을 위해 어떤 역할과 책임이 필요한지 고민하지 않은 채 너무 이 ...
Read more
Objects Study - Chapter2. 객체지향 프로그래밍
객체지향을 설계하는 방법 클래스가 아닌 실제 working하는 instance(객체)에 초점을 둔다. 클래스는 객체들의 특징을 추상화 한 것 클래스 -> 객체가 아닌 객체들을 정의하고 객체들의 특징을 기반으로 클래스를 정의한다. 객체를 중심에 두는 접근 방법은 설 ...
Read more
Objects Study - Chapter1. 객체, 설계
소프트웨어의 목적Robert C. Martin은 클린 소프트웨어: 애자일 원칙과 패턴, 그리고 실천방법에서 소프트웨어 모듈이 가져야 하는 세 가지 기능에 관해 설명한다.(모듈이란, 크기와 상관 없이 클래스나 패키지, 라이브러리와 같은 프로그램을 구성하는 임의의 요소를 ...
Read more