Java Optional 바르게 쓰기Brian Goetz는 스택오버플로우에서 Optional을 만든 의도에 대해 다음과 같이 말했다.
… it was not to be a general purpose Maybe type, as much as many people would have liked us to do so. Our intention was to p
Continue reading
Quartz 스케줄러 적용 아키텍처 개선 - 31편에서는 Quartz 스케줄러 적용 시 변경 주기가 다른 스케줄러 모듈과 작업 클래스 모듈을 분리해서 클린 아키텍처에 다가가는 방법을 알아봤다.
2편에서는 Quartz 작업 클래스 모듈에 의존 관계를 주입하는 방법을 알아봤다.
이렇게 두 개의 고개를 성공적으로 넘었고 마지막으로 @Tranactional 고개가
Continue reading
Quartz 스케줄러 적용 아키텍처 개선 - 21편에서는 Quartz 스케줄러 적용 시 변경 주기가 다른 스케줄러 모듈과 작업 클래스 모듈을 분리해서 클린 아키텍처에 다가가는 방법을 알아봤다.
분리된 작업 클래스 모듈은 DB 작업을 할 수도 있고, 하둡 인프라 관련 작업을 할 수도 있고, 알림 메일도 보내야하는 등 여러 작업을 할 수 있어야 한다. 그런데
Continue reading
Quartz 스케줄러 적용 아키텍처 개선 - 1Quartz는 스프링에서도 지원하고 있어서 스프링 기반 프로젝트에도 쉽게 통합해서 사용할 수 있으므로 널리 사용되고 있다. 게다가 properties 파일 설정만으로 간단하게 클러스터를 구성해서 부하 분산 및 fail-over가 가능한 것도 장점이다.
Quartz에 나오는 주요 등장 인물에 대한 설명이나 기본
Continue reading
재미로 보는 언어별 스트림 처리 비교NBA를 즐겨보는데 갑자기 역대 MVP가 궁금해서 찾아보니 https://www.nba.com/history/awards/mvp 여기에서 볼 수 있었다. 연도별로 주욱 나열되어 있는데 수상횟수 기준으로 집계해서 내림차순으로 보고 싶었다.
그래서 연습도 할 겸 자바로 먼저 짜봤는데 다른 언어로 짜주신 분들도 계셔서 재미로
Continue reading
Java NIO Direct Buffer를 이용해서 대용량 파일 행 기준으로 쪼개기기가 단위의 파일을 외부에 전송할 일이 생겼다.
한 방에 보내기엔 너무 커서 파일을 쪼개서(split) 보내려고 하는데, 그마저도 쉽지 않다. 쪼개기 위해 대용량 파일을 읽을 때 이미 수십분 동안 CPU를 너무 잡아 먹어서 이 쪼개는 배치 작업을 스케줄링하는 스케줄러(Qua
Continue reading
Back to the Essence - Java 컴파일에서 실행까지 - (2)Java 11 JVM 스펙을 기준으로 Java 소스 코드가 어떻게 컴파일되고 실행되는지 살짝 깊게 알아보자.
이번엔 2탄 실행 편이다. 1탄 컴파일 편은 여기에..
실행자바 애플리케이션은 java 명령어로 실행할 수 있다. 오라클의 Tools Reference 문서에 나오는 jav
Continue reading
Back to the Essence - Java 컴파일에서 실행까지 - (1)Java 11 JVM 스펙을 기준으로 Java 소스 코드가 어떻게 컴파일되고 실행되는지 살짝 깊게 알아보자.
이번엔 1탄 컴파일 편이다. 2탄 실행 편은 여기에..
컴파일전통적으로 컴파일이라고 하면 어떤 언어로 된 소스 코드를 기계가 인식할 수 있는 네이티브 코드로 변환하는 과정을
Continue reading
Java URLClassLoader로 알아보는 클래스로딩Bootstrap ClassLoader, Extension ClassLoader, Application ClassLoader 이 3가지 기본 클래스로더 말고도 자주 사용되는URLClassLoader가 있다.사실 Java 8의 Extension ClassLoader와 Application ClassLoa
Continue reading
Java ClassLoader 훑어보기아주 예전에 SCJP 시험볼 때나 살펴본 이후로 자바의 클래스로더를 직접 다뤄야 할 일은 솔직히 없었다. 그래서 거의 잊고 살아왔는데 요즘 Quartz를 다루면서 Quartz에 없는 기능인 외부 Job 클래스 로딩 기능을 만들면서 정말로 오랜만에 들여다보게 됐다.
클래스로더는 Java9에 모듈 시스템이 도입되면서 적지
Continue reading