
프로젝트를 하다 보면 LogFactory 관련 오류가 나는 경우가 있다. 말그대로 LogFactory 클래스를 찾지 못해서 발생하는 exception이다. 이유는 다 exclusion 만 시켰지 '연결'을 시켜주지 않아서이다. org.springframework spring-core commons-logging commons-logging ${org.springframework.version} 보통 이런 식으로 slf4j로 logging을 하기 위해 commons-logging을 exclusion을 시킨다. 그리고 slf4j, 구현체 logging framework를 dependency에 추가를 하고 다음을 추가해줘야 한다. org.slf4j jcl-over-slf4j ${slf4j.version} jc..

이클립스를 통해 Maven 프로젝트 수행시 다음과 에러가 나면서 에러표시가 사라지지 않는 경우가 생긴다. 이건 자식 프로젝트의 pom.xml 설정이다. 결론부터 미리 말하자면 위와 같은 오류가 발생했을때는 조치를 안해도 된다. 그냥 오류창에서 오류를 지워주면 된다. 이건 이클립스 m2e 플러그인의 문제이고 실제 오류는 아니라고 한다. 이렇게 오류가 난걸 못고치고는 안되겠다 싶은 사람은 다음과 같이 조치를 해주자. 부모 프로젝트의 pom.xml 에 pluginManagement를 설정하고 자식 프로젝트 pom.xml 에서는 이걸 상속받아서 사용을 해보라고 가이드가 되어 있다. pluginManagement는 부모의 pom.xml 에 plugin을 설정해놓고 자식이 손쉽게 사용할 수 있도록 해주는 용도로 사..
지난 글인 File to File 예제를 통해 어떤것이 Chunk 지향적인것인지 간단히 알수 있었다. Spring Batch Chunk Example (1) - File to File (with FlatFileItemReader, FlatFileItemWriter) 현재까지 진행한 대부분의 프로젝트는 복잡하기도 하고 상황에 맞지 않아(WebService, EAI 연동 등) Spring Batch에서 일반적으로 사용하고 있는 chunk 방식 대신에 tasklet을 이용하여 사용하였다. tasklet을 oingdaddy.tistory.com DB to DB는 File to File에서 기본적인것은 충분히 언급을 했으므로 바로 예제로 들어가겠다. context-batch-job-db2db.xml ... 생략 ..
현재까지 진행한 대부분의 프로젝트는 복잡하기도 하고 상황에 맞지 않아(WebService, EAI 연동 등) Spring Batch에서 일반적으로 사용하고 있는 chunk 방식 대신에 tasklet을 이용하여 사용하였다. tasklet을 이용한다면 하나의 자바 메소드 안에 내가 필요한 내용만을 쭉 기술해서 사용하면 되므로 Spring Batch에 대한 개념이 없어도 쉽게 접근이 가능하다. 하지만 Spring Batch에서 일반적으로 사용되고 또 권고하는 chunk 방식이 더욱 강력한 성능을 가지고 있기에 공부를 더 하고 이를 활용한 개발방식의 변화도 필요하다. 그래서 Spring Batch를 사용하며 이론적으로는 많이 들었던 개념인 chunk (file2file, file2db, db2file, db2d..
요즘 JAVA 버전이 참 정신없이 나오고 있다. 6개월에 한번씩 버전업데이트라니... 유료화 되면서 구독형 라이센스니 뭐니 해가지고 신경써야 되는게 늘었다... 개발환경을 구성해야 하는 입장에서는 발빠르게 대응을 해야하는데 쉽지 않다. 꽤 오랜기간 JAVA 8을 사용하다가 이제 놓아주고 JAVA 11로 넘어가야하는 상황이다. OpenJDK를 써야 하지만 자바 애플릿같은걸 나는 쓰지 않기 때문에 큰 무리는 없게 전환이 가능할 것으로 예상이 되었다. 실제로도 Oracle JDK냐 OpenJDK냐는 migration을 하는데 크게 영향이 없었다. 그만큼 OpenJDK의 성능이나 기능 모두 문제없이 성장했다. JDK 10 JDK 10 JDK 10 is the open-source reference impleme..

Spring Batch 를 통해 Batch Job을 만들었으면 이걸 주기적으로 돌려주는 무언가가 필요하다. 배치와 스케쥴러를 혼동하는 사람들이 종종 있는데 이것은 완전히 다른 개념이다. 배치는 실시간으로 처리를 하는것이 아닌 일괄 처리를 뜻하며 보통은 특정 시간에 행해진다. 이 특정 시간을 정의해 주는 것은 스케쥴러의 역할이다. 내가 만든 Batch Job을 어느 스케쥴러를 통해서 동작시킬지 먼저 결정을 해야 한다. 선택을 할수 있는건 다음과 같았다. 상용으로 나온 배치 전문 솔루션 Control-M Jenkins의 Schedule(Build Periodically)를 사용하는 방법 Quartz 를 사용해서 자체 제작하는 방법 배치 어플리케이션이 올라갈 서버(linux)의 crontab 을 사용하는 방법..
라디오버튼(input type="radio") 을 핸들링 시 크롬에서는 정상동작하지만 IE에서는 비정상으로 동작하는 경우가 있다. 바로 다음과 같은 경우이다. .attr("checked", true); 이렇게 작성을 하면 IE에서는 정상동작하지 않는 경우가 있다. 이럴 경우에는 다음과 같이 조치해주면 된다. .prop("checked", true); 이 둘의 명확한 차이에 대해 잘 기술해 놓은 포스팅이 있어서 관심있는 사람은 참조하면 큰 도움이 될것이다. .prop(), .attr()의 차이 jQuery를 통해서 동적으로 화면 구성을 만들일이 많다. 그런 경우, selector를 통해 선택한 element나 append 하면서 새롭게 생성하는 element에 특정한 속성을 지정하게 되는 경우가 많은데 이..

spring batch는 여러 회사가 제각기 만들던 batch framework을 통합시켰을만큼 잘 만들어진 batch framework이다. 많은 사람들이 사용을 하고 또 표준이 되었다는건 그만큼 강력한 기능과 누구나 쉽게 다룰수 있는 편의성 때문일것이다. 이런 spring batch를 사용하기 위해 어떤 일들을 해야 하는지 알아보자. 참고로 jdk11, spring batch 버전은 4.0.1.RELEASE을 사용을 했다. pom.xml org.springframework.batch spring-batch-core ${org.springframework.batch.version} org.springframework.batch spring-batch-infrastructure ${org.springfr..