일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Resilinece4j
- The law of Demeter
- Spring Cloud Netfilx Eureka
- zipkin
- Transaction Pattern
- JPA
- 배치
- 체인 패턴
- Spring Boot Actuator
- 스레드
- 타입스크립트
- MSA
- saga pattern
- 멀티스레드
- Parallel Old GC
- 생산자 소비자 패턴
- spring cloud
- Action Pattern
- 키클락
- 스프링 배치
- 디자인패턴
- 디자인 패턴
- 알고리즘
- 사가 패턴
- Serial GC
- TypeScript
- thread
- Java
- spring batch
- java 정렬
- Today
- Total
목록분류 전체보기 (84)
PSD( Private-Self-Development )
빌더 패턴? 추상 팩토리 패턴을 확장하여 복잡한 생성 절차를 가지는 복합 객체 생성을 위한 생성 패턴입니다. 기존 팩토리, 팩토리 메서드, 추상 팩토리 패턴으로는 단일 객체는 생성 가능하지만, 복합 객체는 생성 불가능 복합 객체? 단일 객체? 단일 객체란 하나의 클래스로 생성된 객체를 의미하고, 반대로 복합 객체란 여러 클래스로 구성된 객체를 의미합니다. 단일 객체의 확장은 주로 상속인데, 강력한 상하 결합 관계와 불필요한 행위가 포함되는 단점이 있습니다.. 객체 지향에서는 이러한 단점 개선을 위해 의존성 주입을 사용하여 복합 객체 사용을 권장합니다. 빌더 패턴 장점 객체 생성 단계 설정 가능 코드 재사용성 증가 단일 책임 원칙 빌더 패턴 단점 여러 클래스를 생성해야 하므로 복잡성 증가 빌더 패턴 구현 ..
추상 팩토리 패턴 생성 메서드만을 추상화하는 팩토리 메서드 패턴에서 더 나아가, 부모클래스 자체를 추상화 하여, 이를 구현하는 여러 개의 자식 팩토리 클래스(객체 모음)를 만드는 패턴이다. 추상 팩토리 패턴의 장점 팩토리에서 생성되는 객체들의 상호 호환성 보장 단일 책임 원칙 개방/폐쇠 원칙 다형성 충족 추상 팩토리 패턴의 단점 관리해야 하는 객체가 많아지므로 공통적으로 적용되어야 하는 내용이 수정되어야 할 경우, 공수가 더 들어간다. 구조가 복잡해진다. 팩토리 메서드 패턴 과의 차이점 추상화 대상 자식 클래스 팩토리 메서드 생성 메서드를 추상화 1개의 자식 생성 클래스 만을 생성하며, 생성 메서드를 오버라이딩 하여 인자 값을 통한, 여러 클래스를 생성한다. 추상 팩토리 부모 클래스 자체를 추상화 모음 ..
JobExplorer( Job 실행 정보 ) JobRepository 의 readOnly 버전 실행 중인 Job 의 실행 정보인 JobExecution 또는 Step 의 실행 정보인 StepExecution 을 조회할 수 있다. [JobExplorer] List getJobInstances(String jobName, int start, int count) // start 인덱스부터 count만큼의 JobInstances을 얻는다. JobExecution getJobExecution(Long executionId) // JobExecutionId 를 이용하여 JobExecutions 을 얻는다 StepExecution getStepExecution(Long jobExecutionId, Long stepE..
스프링 배치 또한 테스트 코드 작성을 지원한다. 알아보자! 1. 의존성 추가 org.springframework.batch spring-batch-test 2. @SpringBatchTest 어노테이션 추가 및 테스트 작성 자동으로 ApplicationContext에 테스트에 필요한 여러 유틸 Bean을 등록해주는 어노테이션 JobLauncherTestUtils launchJob(), launchStep() 과 같은 스프링 배치 테스트에 필요한 유틸성 메소드 지원 JobRepositoryTestUtils JobRepository 를 이용하여 JobExecution 을 생성 및 삭제하는 메소드 지원 StepScopeTestExecutionListener @StepScope 컨텍스트를 생성해 주며 해당 컨텍..

Spring Batch 는 프로세스 간에 다양한 이벤트 리스너 를 제공한다. 이를 공부해보자! JobExecutionListener, StepExecutionListener Job/Step 의 실행 전/후 이벤트 할당 Job/Step 의 성공 여부와 상관없이 호출된다. 성공 실패 여부는 JobExecution/StepExecution을 통해 알 수 있다. 예시 public Job job() { return jobBuilderFactory.get("job") .start(step()) .next(flow()) .listener(JobExecutionListener) .listener(Object) // 어노테이션 방식 .build(); } public Step step() { return stepBuild..
멀티 스레드? 특정 작업을 처리하는 스레드가 단일이 아닌 여래 개 일 경우 멀티 스레드 라고 한다. 일반적으로 복잡한 처리나 대용량 데이터 처리를 할 때, 소요 시간 및 성능상의 이점을 위해 사용한다. 단, 데이터 동기화 에 신경 써줘야 하기 때문에 신중히 사용해야 한다. Spring Batch 에서의 멀티 스레드 마찬가지로 기본적으로 단일 스레드 방식으로 작업을 처리한다. 멀티 스레드를 위한 비동기 처리 및 Scale out 기능을 제공한다. Local( 서버 내부적 ) 과 Remote( 외부 서버적 ) 처리 지원 멀티 스레드 처리 종류 1. AsyncItemProcessor / AsyncItemWriter ItemProcessor 에게 별도의 스레드가 할당되어 작업을 처리하는 방식 Step 내부 It..
1. Repeat 특정 조건이 충족 혹은 충족 전까지 Job 또는 Step 을 반복하도록 구성 가능 하다. 스프링 배치에서는 Step, Chunk 반복을 RepeatOperation을 사용하여 처리하고 있다. 기본 구현체로 RepeatTemplate를 제공한다. 반복을 종료할 것인지 여부를 결정하는 세 가지 항목 RepeatStatus 처리가 끝났는지 판별하기 위한 열거형(Enum) CONTINUALBE : 작업이 남아 있음 FINISHED : 더 이상의 반복 없음 CompletionPolicy RepeatTemplate 의 iterate 메서드 안에서 반복 중단을 결정한다. 실행 횟수 혹은 완료시기, 오류 발생 시 수행할 작업에 대한 반복 여부 결정 정상 종료를 알리는데 사용된다. ExceptionHa..
팩토리 메서드 패턴? 팩토리 패턴의 확장 패턴으로 팩토리 패턴 과 템플릿 메서드 패턴이 결합된 패턴이다. 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하고 자식 클래스 들이 생성될 객체들의 유형을 변경 할 수 있도록 하는 생성 패턴이다. 팩토리 메서드 패턴의 장점 객체간의 느슨한 결합 구현 단일 책임의 원칙 개방/폐쇠의 원칙 => 객체 재사용성이 높다 팩토리 메서드 패턴의 단점 패턴을 구현하기 위함 자식 클래스를 구현해야 하므로 코드가 복잡해 질 수 있다. => 기존 생성 클래스의 계층 구조에 패턴을 도입하는게 BEST! 팩토리 메서드 구현 public abstract class Factory { public Product creat( String brand ){ return createPr..