This document outlines 10 Spring Batch examples: 1) a hello world example using a tasklet, 2) using Spring batch annotations, 3) using a Reader, Processor, and Writer, 4) using Listeners, 5) using a Multi resource Reader, 6) using database memory data metadata, 7) unit testing with Spring Batch, 8) integrating Spring Batch with Quartz, 9) using a Command line Job Runner, and 10) starting, skipping, and restarting a job. It provides an overview of the required files and components for each example.
Legacy code refactoring video rental systemJaehoon Oh
Legacy Code Refactoring
- 마틴 파울러의 Refactoring 책 1장 예제를 워크샾 형태로 구성했다.
- 레거시 코드인 비디오 렌탈 시스템을 리팩토링 하는 방법을 단계적으로 살펴본다.
- 마이클 페더스의 Characterization Test 방법을 이용해서 Legacy Code 의 테스트를 작성한다.
- 새로운 기능을 추가할 때는 Sprouting Pattern(마이클 페더스가 만든 용어)를 이용해서 기능을 추가한다.
- 코드 스멜을 찾고 코드 스멜을 제거하면서 코드의 설계를 개선한다.
This document outlines 10 Spring Batch examples: 1) a hello world example using a tasklet, 2) using Spring batch annotations, 3) using a Reader, Processor, and Writer, 4) using Listeners, 5) using a Multi resource Reader, 6) using database memory data metadata, 7) unit testing with Spring Batch, 8) integrating Spring Batch with Quartz, 9) using a Command line Job Runner, and 10) starting, skipping, and restarting a job. It provides an overview of the required files and components for each example.
Legacy code refactoring video rental systemJaehoon Oh
Legacy Code Refactoring
- 마틴 파울러의 Refactoring 책 1장 예제를 워크샾 형태로 구성했다.
- 레거시 코드인 비디오 렌탈 시스템을 리팩토링 하는 방법을 단계적으로 살펴본다.
- 마이클 페더스의 Characterization Test 방법을 이용해서 Legacy Code 의 테스트를 작성한다.
- 새로운 기능을 추가할 때는 Sprouting Pattern(마이클 페더스가 만든 용어)를 이용해서 기능을 추가한다.
- 코드 스멜을 찾고 코드 스멜을 제거하면서 코드의 설계를 개선한다.
라쎄 코스켈라 지음 | 이복연 옮김 | 한빛미디어 | 2013년 11월 | 25,000원
예스24: http://www.yes24.com/24/goods/1136108
테스트 라이브러리 사용법에서 나아가 ‘좋은 테스트란 무엇인가’, ‘좋은 테스트를 작성하려면 어떻게 해야 하는가’에 관한 현장의 물음에 해답을 제시한다. 테스트가 갖춰야 할 요건에 따라 나눈 테스트 카탈로그가 수록되어, 필요할 때마다 원하는 목록을 참고하여 자신이 작성한 테스트에서 문제를 발견하고 수정해 나갈 수 있으며 더욱 응용력 높은 학습을 할 수 있다.
객체지향에 관련해서, 가볍게 내용을 정리하였습니다.
참고서적 : 스프링 입문을 위한, 자바 객체 지향의 원리와 이해 김종민 지음
객체지향.
말은 참 어려운데. 프로그래밍 하면서 사람이 인식하는 사물 또는 실체를 하나하나 조합해서 프로그래밍 하자는 패러다임입니다.
쉽게, 객체를 가지고 놀자 이겁니다.
객체지향언어에서는
클래스(Class) 객체(Object)가 존재합니다.
클래스는 추상화 및 분류
객체는 실제를 의미합니다.
예) 사람클래스 -> 원빈 객체 / 동물 클래스 -> 고양이 객체
4대 특징
- 캡슐화
- 상속
- 추상화
- 다형성
객체지향 개념을 완벽히 이해하려면. 많이 공부해야 할거같습니다..ㅠㅠ
라쎄 코스켈라 지음 | 이복연 옮김 | 한빛미디어 | 2013년 11월 | 25,000원
예스24: http://www.yes24.com/24/goods/1136108
테스트 라이브러리 사용법에서 나아가 ‘좋은 테스트란 무엇인가’, ‘좋은 테스트를 작성하려면 어떻게 해야 하는가’에 관한 현장의 물음에 해답을 제시한다. 테스트가 갖춰야 할 요건에 따라 나눈 테스트 카탈로그가 수록되어, 필요할 때마다 원하는 목록을 참고하여 자신이 작성한 테스트에서 문제를 발견하고 수정해 나갈 수 있으며 더욱 응용력 높은 학습을 할 수 있다.
객체지향에 관련해서, 가볍게 내용을 정리하였습니다.
참고서적 : 스프링 입문을 위한, 자바 객체 지향의 원리와 이해 김종민 지음
객체지향.
말은 참 어려운데. 프로그래밍 하면서 사람이 인식하는 사물 또는 실체를 하나하나 조합해서 프로그래밍 하자는 패러다임입니다.
쉽게, 객체를 가지고 놀자 이겁니다.
객체지향언어에서는
클래스(Class) 객체(Object)가 존재합니다.
클래스는 추상화 및 분류
객체는 실제를 의미합니다.
예) 사람클래스 -> 원빈 객체 / 동물 클래스 -> 고양이 객체
4대 특징
- 캡슐화
- 상속
- 추상화
- 다형성
객체지향 개념을 완벽히 이해하려면. 많이 공부해야 할거같습니다..ㅠㅠ
2. • 본 PPT는 Design Patterns Study를 위해 작성되었습니다.
• Study에 사용한 교재는 한빛미디어에서 나온
• [Head First Desgin Patterns]을 사용하였습니다.
• Written by 서울시립대 이희태 For study with
NHN NEXT2기 조현호
서 울 시 립 대 이 희 태
3. Template.
[NOUN] A template is a thin piece of metal or plastic which is cut
into a particular shape. It is used to help you cut wood,
paper, metal, or other materials accurately, or to reproduce the
same shape many times.
출처 – 네이버 영영사전
4. 커피 vs 홍차
커피 만드는 법 홍차 만드는 법
1. 물을 끓인다.
2. 끓는 물에 커피를 우려낸다.
3. 커피를 컵에 따른다.
4. 설탕과 우유를 추가한다.
1. 물을 끓인다.
2. 끓는 물에 차를 우려낸다.
3. 차를 컵에 따른다.
4. 레몬을 추가한다.
12. 템플릿 메소드 패턴 정의
• Def. 템플릿 메소드 패턴에서는 알고리즘의 골격을 정의
합니다. 알고리즘의 여러 단계 중 일부는 서브클래스에서
구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘
의 구조는 그대로 유지하면서 서브클래스에서 특정 단계
를 재정의할 수 있습니다.
18. 헐리우드 원칙(HollyWood Principle)
먼저 연락하지 마세요.
저희가 연락 드리겠습니다.
디자인 원칙 7.
헐리우드 원칙을 사용하면
“의존성 부패(dependency rot)”를 방지할 수 있다.
저수준 구성요소에서 시스템에 접속할 수 있지만, 언제 어떻게 그 구성요
소들을 사용할지는 고수준 구성요소에서 결정하게 된다. 즉, 고수준 구성
요소에서 저수준 구성요소에게 “먼저 연락하지 마세요. 제가 먼저 연락 드
리겠습니다.”라고 얘기하는 것과 같다.
21. 헐리우드원칙과 템플릿 메소드 패턴
prepareRecipe()
boilWater()
brew()
pourInCup()
addCondiments()
CaffeinBeverage
brew()
addCondiments()
Coffee
brew()
addCondiments()
Tea
CaffeinBeverage에서 음료
를 만드는 알고리즘
(template method)을 장악
하고 있다.
brew(),
addCondiments()
같은 메소드의
구현이 필요할
때에만 서브클래
스를 불러낸다.
Coffee와 Tea에서 먼저 추상 클래스를 직접 호출하지 않는다!
22. Q1. 헐리우드 원칙 vs 의존성 뒤집기 원칙
추상화된 것에 의존하도록 만들어라.
구상 클래스에 의존하도록 만들지 않도록 한다.
의존성뒤집기 원칙
공통점 :
1. 객체를 분리시킨다.
2. 클래스가 상호관계가 되지 않도록 만든다.
차이점 :
1. 의존성을 피하는 방법에 있어서 의존성 뒤집기 원칙이 훨씬 더 강
력하고 일반적인 내용을 담고 있다.
2. 헐리우드 원칙은 저수준 구성요소들을 다양하게 사용할 수 있으면
서도, 다른 클래스가 그러한 구성요소에 너무 의존하지 않게 만들
어주는 디자인을 구현하도록 도와준다.