일단 Docker를 Windows에 설치하는 방법은 이 글을 참조하도록 하자. Docker를 Windows에 설치하려고 하는데 install이 다 끝나고 위와 같은 오류가 나오는 경우가 있다. Docker.ApiServices.WSL2.WslKernelUpdateNotInstalledException: 'Docker.ApiServices.WSL2.WslKernelUpdateNotInstalledException' 형식의 예외가 Throw되었습니다. 위치: Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) 파일 C:\..
이전에 Listener 관련 글을 쓰면서 JobListener와 StepListener에 대해 설정과 사용법에 대해 알아보았다. 여기에 추가적으로 ChunkListener에 대해서 알아보도록 하겠다. Job 안에 Step이 있고 Step 안에 Chunk가 있으니 앞서 본 것보다 더 작은 단위라고 이해하면 된다. ChunkListener 외에도 Step 하위에서 실행되는 Listener의 목록은 다음과 같다. Spring Batch는 이렇게 아주 작은 단위까지도 세밀하게 Listener를 넣을 수 있고 Control 할 수 있다. Chunk 단위로 잘 실행이 되는지 테스트를 하며 이 ChunkListener를 사용해 봤다. 물론 Chunk로 수행하는 Step이어야지 Tasklet은 ChunkListener..
Spring Locale처리 - SessionLocaleResolver, LocaleChangeInterceptor 사용법 Spring Locale처리 - AcceptHeaderLocaleResolver 사용법 (Browser Locale 변경방법) 이전에 Spring에서 주로 쓰이는 Locale 처리 방법에 대해서 알아보았다. 이번에는 Cookie를 이용한 Locale을 정의하는 CookieLocaleResolver에 대해 이야기하려한다. SessionLocaleResolver에 대한 이해가 있다면 이 CookieLocaleResolver는 아주 쉽게 이해할 수 있다. CookieLocaleResolver는 말 그대로 Cookie를 이용해서 Locale 정보를 담는 것이다. setLocale()을 통해..
일전에 Spring Batch의 Chunk 방식에 대해 공유를 한적이 있었다. [Spring Batch] Chunk Example (File to DB, Springboot based) Spring Framework의 개발환경이 Springboot 기반으로 변함에 따라 Spring Batch의 개발방식도 이전과는 많이 달라졌다. 필자가 전에 쓴 Spring Batch에 관한 글은 Springboot 기반이 아니라서 Batch Job을 작성하.. oingdaddy.tistory.com 이때 DB Writer는 JdbcBatchItemWriter 라는 것을 사용했었다. 이것은 단점이 있다. 바로 query 를 java 소스에 작성을 해야 하는 문제가 있다. 보기도 좋지 않고 관리도 좋지 못하다. 그래서 이런..
개발을 하면서 여러가지 DB tool을 접해 보았지만 좋다 싶은건 유료고 또는 특정 DB에 종속적이었다. 필자는 처음 이 일을 하고 난 뒤 사수가 Squirrel을 사용해서 이걸 쓰다가 다른걸 써보곤 했는데 이만한게 없어서 다시 이걸 사용하고 있다. 직무 특성상 여러가지 DB에 붙어서 테스트를 해야 할 일이 많은데 정말 가볍고 웬만한 기능은 다 지원해서 유용하게 사용중이다. 설치하고 사용하는 방법에 대해 빠르게 알아보자. 설치방법 SQuirreL SQL Client Home Page SQuirreL SQL Client is a graphical Java program that will allow you to view the structure of a JDBC compliant database, brows..
Spring을 사용하면 기본 Servlet인 Dispatcher Servlet을 사용한다. web.xml 이 있을때는 이곳에 Dispatcher Servlet을 설정했고 그 외의 다른 Servlet이 필요하면 마찬가지로 web.xml 에 등록하여 사용했다. 하지만 Springboot에서는 기본적으로 web.xml을 사용하지 않고 java config 를 사용하므로 전에 사용하던 방식과는 다르게 설정이 필요하다. java config 를 이용해 Dispatcher Servlet이 아닌 다른 Servlet을 어떻게 설정하는지 살펴보자. (참고로 Dispatcher Servlet은 Springboot에서는 기본으로 설정되어 있으므로 설정을 하지 않아도 된다. ) ServletConfig.java @Config..
logback-spring.xml 파일을 application.yml 파일에 옮기는 작업을 일전에 진행했었다. 다 전환을 하고 springboot app을 기동하니 다음과 같은 오류가 발생하였다. [13:23:10.131][DEBUG][sun.rmi.server.call.log:line229] - RMI TCP Connection(2)-127.0.0.1: [127.0.0.1] exception: javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor..