서론 잘 설계된 객체지향 애플리케이션은 작고 응집도 높은 객체들로 구성되는데 이러한 작고 응집도 높은 객체는 책임의 초점이 명확하고 한 가지 일만 잘하는 객체를 의미합니다. 이런 작은 객체들은 혼자서 수행할 수 있는 일이 거의 없기 때문에 애플리케이션의 기능을 구현하기 위해서는 다른 객체들과 협력을 통해 공통의 목적을 이룹니다. 협력은 객체가 다른 객체에 대해 알것을 강요합니다. 다른 객체와 협력하기 위해서는 그 객체가 존재한다는 사실을 알고 있어야 합니다. 객체지향 설계의 핵심을 협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는데 있습니다. 이런 관점에서 객체지향 설계란 의존성을 관리하는 것이고, 객체가 변화를 받아들일 수 있게 의존성을 정리하는 기술이라고 할 수 있습니다. 의..
서론 사람들은 한 번에 해결하기 어려운 커다란 문제를 맞닥뜨릴 경우 이 문제를 해결 가능한 작은 문제로 나누는 경향이 있다고 합니다. 이렇게 나눠진 문제들 역시 한 번에 해결하기 어렵다면 또다시 더 작은 문제로 나눌 수 있습니다. 이처럼 큰 문제를 해결 가능한 작은 문제로 나누는 작업을 분해라고 합니다. 프로시저 추상화와 데이터 추상화 프로그래밍 언어를 통해 표현되는 추상화의 발전은 다양한 프로그래밍 패러다임의 탄생으로 발전했는데 프로그래밍 패러다임은 프로그래밍을 구성하기 위해 사용하는 추상화의 종류와 이 추상화를 이용해 소프트웨어를 분해하는 방법의 두 가지 요소로 결정됩니다. 프로그래밍 패러다임이란 적절한 추상화의 윤곽을 따라 시스템을 어떤 식으로 나눌것인지를 결정하는 원칙과 방법의 집합입니다. 여기에..
서론 훌륭한 객체지향 코드를 얻기 위해서는 클래스가 아닌 객체에 초점을 맞춰야 합니다. 또한 객체에 초점을 맞추되 협력 안에서 수행하는 객체의 책임에 초점을 맞추어야 합니다. 객체지향에서 가장 중요한 것은 객체들 간에 주고받는 메시지입니다. 객체들은 메시지 전송자로부터 메시지를 수신하기 위해 퍼블릭 인터페이스를 구성하고 있습니다. 협력과 메시지 💡 클라이언트-서버 모델 협력은 어떤 객체가 다른 객체에게 무언가를 요청할 때 시작됩니다. 메시지는 객체 간의 협력을 가능케 하는 매개체입니다. 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 메시지를 통해 접근하는 것입니다. 클라이언트-서버 모델이란? 협력 안에서 메시지를 전송하는 객체를 클라이언트, 메시지를 수신하는 객체를 서버라고 부릅니다. 협력은 클라이..
서론 책임에 초점을 맞춰서 설계할 때의 가장 큰 어려움은 어떤 객체에 어떤 책임을 주어야 하는가?입니다. 이러한 책임 할당 과정은 일련의 트레이드오프의 활동입니다. 책임 주도 설계를 향해 💡 데이터보다 행동을 먼저 결정하라. 객체에게 중요한 것은 데이터가 아닌 협력하는 객체에게 제공하는 행동입니다. 클라이언트의 관점에서 객체가 수행하는 행동은 곧 책임을 의미합니다. 객체는 협력에 참여하기 위해 존재하며 협력안에서 적절한 행동을 수행할 때 비로소 객체는 존재합니다. 데이터는 객체가 책임을 수행할 때 필요로 하는 재료일 뿐입니다. 행동의 관점에서 바라보는 방법 데이터 중심의 설계는 "이 객체가 포함해야 하는 데이터는 무엇인가?"를 결정한 후에 "데이터를 처리하는데 필요한 작업은 무엇인가?"를 결정합니다. 책..
- Total
- Today
- Yesterday
- 람다 표현식
- pipe and filter architecture
- transactional outbox pattern
- polling publisher spring boot
- spring boot poi excel download
- pipeline architecture
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- spring boot redisson destributed lock
- 레이어드 아키텍처란
- space based architecture
- redis sorted set으로 대기열 구현
- spring boot redisson 분산락 구현
- spring boot redisson sorted set
- spring boot redis 대기열 구현
- 서비스 기반 아키텍처
- java userThread와 DaemonThread
- microkernel architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- 공간 기반 아키텍처
- @ControllerAdvice
- spring boot 엑셀 다운로드
- java ThreadLocal
- spring boot excel download paging
- service based architecture
- 자바 백엔드 개발자 추천 도서
- redis sorted set
- spring boot excel download oom
- transactional outbox pattern spring boot
- redis 대기열 구현
- 트랜잭셔널 아웃박스 패턴 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |