Song's Tech Blog

기술 블로그

Effective Java / Item 10

Item 10. equals는 일반 규약을 지켜 재정의하라.

Equals 재정의 해? 말아?우리는 equals 메서드를 재정의 해야할까? 아니면 하지 말아야할까? Effective Java에서는 다음과 같이 말한다. 다음의 상황 중 하나의 상황에 해당한다면 재정의 하지 않는 것이 최선이라고 말이다. 재정의 하지 말아야 할 때 각 인스턴스가 본질적으로 고유하다. 주로 값을 표현하는게 아니라 동작하는 것을 표현......

spring batch - 버그해결기(chunk)

chunk 무한지옥 해결법

문제상황Spring Batch를 이용해 대량의 데이터 전송 로직을 구성중 대량의 데이터를 페이징 처리 후 chunk를 반복하며 전송해야 하는 상황이 생겼다. 

 이때 구성 흐름은 reader에서 데이터를 읽고 writer에서 FeignClient를 이용해 전송한후, StepExecutionListener를 통해 로깅 처리를 한다. 그 후 다시 rea......

Effective Java / Item 6

Item 6. 불필요한 객체 생성을 피하라.

재사용하자1String s = new String("hi"); 위의 코드를 보면서 어떤생각이 들어야 할까. 책에서는 절대 따라하지 말라고 강력히 권고하고 있다. String 인스턴스는 문장이 실행될 때마다 새로 생성된다. 이 문장이 반복문 안에 있다면 생성되는 String 인스턴스의 갯수는 상상할 수 없다. 1String s = &......

Effective Java / Item 5

Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

사용하는 자원에 따라 동작이 달라지는 클래스많은 클래스가 하나 이상의 자원에 의존한다. 한 예로 맞춤법 검사기(SpellChecker)는 dictionary에 의존한다. 다음 두 예는 의존 객체에 대해 잘못 구현한 예이다. 12345678910public class SpellChecker { private static final......

Effective Java / Item 4

Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라.

정적 메서드와 정적 필드로 이루어진 클래스들객체지향의 관점에서는 적합하지 않지만 단순히 정적 메서드와 정적 필드로만 이루어진 클래스들은 나름의 쓰임새가 있다. 아래는 이 목적에 부합하는 대표적인 클래스들이다. java.lang.Mathjava.util.Arraysjava.util.Collections Collections 클래스 Collect......

RestTemplate

RestTemplate 알아보기

RestTemplate이란 spring 3.0 부터 지원한다. Spring에서 제공하고 있는 JdbcTemplate이나, JmsTemplate과 같은 맥락의 Template http 통신에 유용하게 쓸 수 있는 템플릿 RESTful Service 호출과 관련된 여러 메소드를 제공하여 REST 클라이언트를 쉽게 개발할 수 있도록 도와준다. 동작 순서......

쉽게 따라 만드는 Spring Batch (1)

IntelliJ 로 만드는 Spring Batch

Spring Btach란batch는 일괄처리의 뜻을 가지고 있다. Spring Batch는 Accenture와 Spring Source의 공동 작업으로 2007년에 탄생했는데 Accenture의 배치 노하우 & 기술력과 Spring 프레임워크가 합쳐져 만들어진 결과물이다. 간단히 말해, 스프링 배치란 실시간처리가 아니라 한번에 일괄처리 한다는 ......