Spring Batch에서 Chunk 작업이 길어지는 경우 주의할 점
들어가며 Spring Batch 실행 중 아래와 같은 에러 메세지를 확인 하는 경우 이 글에서 설명하는 case일 수 있습니다. Caused by: java.io.EOFException: unexpected end of stream, read 0 bytes from ...
Read more
Objects Study - Chapter15. 디자인 패턴과 프레임워크
디자인 패턴 애플리케이션을 설계하다 보면 어떤 요구사항을 해결하기 위해 과거에 경험했던 유사한 해결방법을 다시금 사용하는 경우가 있다. 소프트웨어 설계에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결방법을 디자인 패턴 이라고 부른다. 디자인 패턴은 ...
Read more
Objects Study - Chapter13. 서브클래싱과 서브타이핑
상속의 용도 타입 계층 구현 : 부모클래스는 일반적인 개념을 구현하고 자식 클래스는 특수한 개념을 구현한다. 부모 클래스는 자식 클래스의 일반화(generalization) 자식 클래스는 부모 클래스의 특수화(specialization) 코드 재사용 간단한 선 ...
Read more
Objects Study - Chapter12. 다형성
상속의 오해와 진실 코드 재사용을 목적으로 상속을 사용하면 변경하기 어렵고 유연하지 못한 설계에 이를 확률이 높아진다. 상속의 목적은 코드 재사용이 아니다. 상속은 타입 계층을 구조화하기 위해 사용해야 한다. 타입 계층은 객체지향 프로그래밍의 중요한 특성 중의 하나인 ...
Read more
Objects Study - Chapter11. 합성과 유연한 설계
상속과 합성 상속과 합성은 객체지향 프로그래밍에서 가장 널리 사용되는 코드 재사용 기법이다. 상속 부모 클래스와 자식 클래스를 연결해서 부모 클래스의 코드를 재사용한다 컴파일 타임 의존성을 가진다 (정적인 관계) is-a 관계 부모 클래스의 내부 구현에 대해 상세히 ...
Read more
Objects Study - Chapter10. 유연한 설계
상속 객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 점이다. 전통적인 패러다임에서는 코드를 복사 후 붙여넣기 하고 수정하여 코드를 재사용하였다. 객체지향에서는 코드를 재사용하기 위해 새로운 코드를 추가한다. 재사용 관점에서 상속이란 클래스 안에 정 ...
Read more
Objects Study - Chapter9. 유연한 설계
개방-폐쇄 원칙 개방폐쇄의 원칙(OCP, Open-Closed Principle)은 다음과 같이 설명된다. 소프트웨어 개채(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 여기서의 키워드는 확장과 수정이다. 확장에 ...
Read more
Objects Study - Chapter8. 의존성 관리하기
서론 잘 설계된 객체지향 어플리케이션은 작고 응집도 높은 객체들로 구성된다. 작고 응집성 높은 객체란 책임의 초점이 명확하고 한 가지 일만 잘하는 객체를 의미한다. 따라서 객체 간 협력을 통해 다른 객체에게 도움을 요청하여 여러가지 일을 수행할 수 있다. 협력은 객체가 ...
Read more
Objects Study - Chapter7. 객체 분해
추상화와 분해 불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만을 남기는 작업을 추상화 라고 부른다. 가장 일반적인 추상화 방법은 한 번에 다뤄야 하는 문제의 크기를 줄이는 것이다. 이처럼 큰 문제를 해결 가능한 작은 문제로 나누는 작업을 분해(decompos ...
Read more
Objects Study - Chapter6. 메세지와 인터페이스
협력과 메세지 협력은 어떤 객체가 다른 객체에게 무언가를 요청할 때 시작된다. 메세지는 객체 사이의 협력을 가능하게 하는 매개체다 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 메세지를 전송하는 것뿐이다. 메세지는 매개로 하는 요청과 응답의 조합이 두 객체 사이 ...
Read more