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
HikariCP Maximum Pool Size 설정 시, 고려해야할 부분
이 글의 예상 독자 아래와 같은 에러의 원인을 찾아헤멘 개발자 o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: null o.h.engine.jdbc.spi.SqlExceptionHelper : ...
Read more
HikariCP Failed to Validate Connection Warning 이야기
hikari-pool - Failed to validate connection Springboot2.x를 사용하다 보면 이런 warn level 에러를 마주칠 수 있습니다. 123hikari-pool - Failed to validate connection com.my ...
Read more
Spring-Kafka-Streams Serde 내부 이야기
Version Up 팀에서 사용하는 Spring boot version up (2.1.6 -> 2.2.2)을 하면서 호환성을 맞추기 위해 spring-cloud-stream-binder-kafka-streams 라이브러리도 같이 버전업을 하게 되었습니다. (2.2 ...
Read more
Custom @Enable Annotation 만들어보기
Multi 모듈 프로젝트에서 발생하는 일 Maven, Gradle을 이용해서 멀티 모듈을 구성하다 보면 각 모듈 별로 중복된 Bean을 계속 생성 코드를 만드는 경우가 있습니다. (ex: Datasource, TransactionManager 등등) 예시 : Cust ...
Read more