서적

    오브젝트 10_ 상속과 코드 재사용

    상속과 코드 재사용에 대한 내용이다 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 상속과 중복 코드 중복 코드는 모두를 의심하게 만든다. 이것만으로 제거하기 충분한 이유지만 결정적이 이유는 따로 있다. DRY 원칙 중복 코드는 변경을 방해한다. 이게 중복 코드를 제거해야 하는 가장 큰 이유다. 중복 코드는 수정과 테스트에 드는 비용을 증가시키고 공황상태로 몰아넣을 수 있다. 중복 여부의 판단 기준은 변경이다. 변경이 생겼을 때 두 코드를 수정해야 한다면 중복이다. 함께 수정이 안..

    오브젝트 09_ 유연한 설계

    유연한 설계에 대한 내용이다 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 개방-폐쇄 원칙(Open-Closed Principle, OCP) 로버트 마틴은 확장이 가능하고 변화에 유연하게 대응하는 설계 원칙 중 하나로 개방-폐쇄 원칙을 고안했다. 확장에는 열려있고, 수정에는 닫혀야 한다. - 확장에 열려있다 : 새로운 요구사항이 생기면 변경에 맞게 새로운 '동작'을 애플리케이션에 추가할 수 있다. - 수정에 닫혀있다 : 기존의 '코드'를 수정하지 않고 애플리케이션의 동작을 추가 ..

    오브젝트 08_ 의존성 관리하기

    의존성 관리에 대한 내용이다 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 시작하면서 객체지향 설계란 의존성을 관리하는 것이고 객체가 변화를 받아들일 수 있게 의존성을 정리하는 기술이라고 할 수 있다 [Metz12] 의존성 이해하기 변경과 의존성 어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이에 의존성이 생기며, 실행 시점과 구현 시점에 서로 다른 의미를 가진다. - 실행 시점 : 의존하는 객체가 동작하기 위해서 실행 시에 의존 객체가 있어야 한다. - 구현 ..

    오브젝트 07_ 객체 분해

    객체 분해에 대한 내용이다 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 시작하면서 문제 해결을 위해 사용되는 기억 저장소는 단기 기억이며, 문제 해결에 필요한 요소의 수가 단기 기억의 용량을 초과하면 해결 능력이 급격하게 떨어지는데 이를 인지 과부하(cognitive overload)라 부른다. 이 인지 과부하를 방지하는 방법은 정보의 양을 조절하는 것이다. 문제 해결에 불필요한 세부 내역을 제거하고 핵심만 남기면 되는데, 이 작업을 추상화라 부른다. 일반적인 추상화 방법은 큰..

    오브젝트 06_ 메시지와 인터페이스

    메시지와 인터페이스 내용이다. 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 이번 장을 시작하면서 OOP의 흔한 오해는 애플리케이션의 클래스의 집합이라는 생각이다. 클래스는 중요하지만 훌륭한 객체지향 코드를 얻기 위해서는 객체를 지향해야 한다. 협력안에서 객체가 수행하는 책임에 초점을 맞춰야한다. 여기서 중요한 건 책임은 객체가 수신할 메시지의 기반이 되는 것이다. 애플리케이션은 클래스로 구성되지만 메시지를 통해 정의된다는 사실을 기억하라 [Metz12] 협력과 메시지 클라이언트..

    오브젝트 05_ 책임 할당하기

    오브젝트 04_ 설계 품질과 트레이드오프에 언급된 데이터 중심 설계 문제점의 해결 방법인 책임 할당하기 내용으로 이전 시간에 언급된 주요 개념들이 자주 등장한다. 중간에 구현으로 검증하는 과정이 있지만 이전에 설명한 내용으로 생략한다. 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 책임 주도 설계를 향해 데이터보다 행동을 먼저 결정하라 객체는 외부에 제공하는 행동이 중요하다. 협력안에서 수행하는 책임이 객체의 존재가치를 증명한다. 데이터는 객체의 행동을 수행할 재료일 뿐이다. 재..

    오브젝트 04_ 설계 품질과 트레이드 오프

    설계 품질과 트레이드오프에 대한 내용이다. 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 객체지향 설계에서는 상태(데이터) 분할의 중심축과 책임 분할의 중심축 두 가지 방법으로 시스템을 객체로 분할할 수 있다. 상태 분할의 중심축은 절차지향 설계라 생각하면 되고, 책임 분할의 중심축은 객체지향 설계라 생각하면 된다. 좋은 설계의 기준으로 사용되는 캡슐화, 응집도, 결합도를 알아보자 캡슐화 객체의 내부 구현을 외부로부터 감추는 걸 캡슐화라 한다. 여기서 나중에 변경이 될 가능성이 ..

    오브젝트 03_ 역할, 책임, 협력

    역할, 책임, 협력에 대한 주제로 내용이다. 이전 챕터에서 언급되어 겹치는 내용이 많아 생략된 게 있으니 자세한 내용이 궁금하면 오브젝트를 펼쳐보는 걸 추천드립니다.📖 오브젝트 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 객체지향 패러다임의 핵심 3가지 - 협력(collaboration) : 기능을 구현하기 위한 상호작용 - 책임(responsibility) : 객체가 협력을 위해 수행하는 로직 - 역할(role) : 객체가 협력안에서 수행하는 책임 협력 협력은 하나의 객체가 다른 객체에게 도움을 요청할 때 시작된다. 이 협력을 위한 커뮤니케이션 ..