서론 책임에 초점을 맞춰서 설계할 때의 가장 큰 어려움은 어떤 객체에 어떤 책임을 주어야 하는가?입니다. 이러한 책임 할당 과정은 일련의 트레이드오프의 활동입니다. 책임 주도 설계를 향해 💡 데이터보다 행동을 먼저 결정하라. 객체에게 중요한 것은 데이터가 아닌 협력하는 객체에게 제공하는 행동입니다. 클라이언트의 관점에서 객체가 수행하는 행동은 곧 책임을 의미합니다. 객체는 협력에 참여하기 위해 존재하며 협력안에서 적절한 행동을 수행할 때 비로소 객체는 존재합니다. 데이터는 객체가 책임을 수행할 때 필요로 하는 재료일 뿐입니다. 행동의 관점에서 바라보는 방법 데이터 중심의 설계는 "이 객체가 포함해야 하는 데이터는 무엇인가?"를 결정한 후에 "데이터를 처리하는데 필요한 작업은 무엇인가?"를 결정합니다. 책..
서론 객체지향 설계의 핵심은 책임, 역할, 협력입니다. 협력은 애플리케이션의 기능을 수행하기 위해 다른 객체들과 메시지를 주고받는 상호작용입니다. 책임은 객체가 다른 객체와 협력하기 위해 수행하는 행동이고, 역할은 대체 가능한 책임들의 집합입니다. 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 만드는 활동입니다. 객체지향 설계에 관한 관점 두가지 첫째, 객체지향 설계의 핵심은 책임이다. 둘째, 책임을 할당하는 작업은 응집도와 결합도 같은 설계 품질과 연관되어 있다. 결합도와 응집도를 합리적인 수준으로 유지하는 방법 객체의 상태가 아닌 객체의 행동에 초점을 맞춥니다. 객체를 단순한 데이터의 집합으로 바라보는 시각은 객체의 내부 구현을 노출시키는 결과를 초래할 수 있으..
서론 앞에서는 객체지향 프로그래밍을 구성하는 클래스, 추상 클래스, 인터페이스 등을 알아봤습니다. 이는 객체지향 프로그래밍 구현을 위한 내용이고 조금 더 거시적인 측면에서 역할, 책임, 협력을 바라봐야할 필요가 있습니다. 객체지향의 본질은 협력하는 객체들의 공동체를 구성하는 것입니다. 객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고, 적절한 책임을 할당하는 과정에서 드러난다고 합니다. 클래스, 추상클래스, 인터페이스는 책임과 협력이 어느정도 자리잡은 후에 사용할 수 있는 구현 매커니즘입니다. 애플리케이션의 기능을 구현하기 위해 어떤 협력이 필요하고, 협력을 위해 어떤 역할과 책임이 필요한지 먼저 우선적으로 생각해야 합니다. 그렇지 않으면 변경하기 어렵고 유연하지 못한 코드를 낳을 수 있습..
영화 예매 시스템 이번에 다룰 예제는 영화 예매 시스템입니다. 영화의 상영시간을 예매하는 예매자는 1개의 할인 정책과 N개의 할인 조건에 만족한다면 요금을 할인 받을 수 있습니다. 할인 정책은 금액 할인 정책과 비율 할인 정책으로 구체화할 수 있습니다. 할인 조건은 순번 조건, 기간 조건 등으로 구체화할 수 있습니다. 앞서 구체화 한다는 말은 나눌 수 있다는 의미를 가집니다. 객체지향 프로그래밍을 향해 💡협력, 객체, 클래스 앞서 나온 예제를 중심으로 영화 예매 시스템을 프로그래밍할 때 가장 처음 할 일은 각 역할에 맞는 클래스를 선언하고 역할에 맞게 속성을 세팅하는 것입니다. 하지만 이는 객체지향의 본질과는 거리가 멀다고 합니다.(그럼 어떻게 구성해,,,?) 진정한 객체지향 패러다임으로서의 전환은 클래..
- Total
- Today
- Yesterday
- redis sorted set
- spring boot excel download oom
- redis sorted set으로 대기열 구현
- 람다 표현식
- spring boot redisson destributed lock
- spring boot redisson 분산락 구현
- microkernel architecture
- java userThread와 DaemonThread
- service based architecture
- spring boot 엑셀 다운로드
- spring boot poi excel download
- redis 대기열 구현
- pipe and filter architecture
- 서비스 기반 아키텍처
- 공간 기반 아키텍처
- pipeline architecture
- transactional outbox pattern spring boot
- space based architecture
- spring boot redis 대기열 구현
- 레이어드 아키텍처란
- @ControllerAdvice
- spring boot redisson sorted set
- java ThreadLocal
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- JDK Dynamic Proxy와 CGLIB의 차이
- 자바 백엔드 개발자 추천 도서
- polling publisher spring boot
- spring boot excel download paging
- 트랜잭셔널 아웃박스 패턴 스프링부트
- transactional outbox pattern
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |