Java Optional 바르게 쓰기

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 스케줄러 적용 아키텍처 개선 - 3

Quartz 스케줄러 적용 아키텍처 개선 - 31편에서는 Quartz 스케줄러 적용 시 변경 주기가 다른 스케줄러 모듈과 작업 클래스 모듈을 분리해서 클린 아키텍처에 다가가는 방법을 알아봤다. 2편에서는 Quartz 작업 클래스 모듈에 의존 관계를 주입하는 방법을 알아봤다. 이렇게 두 개의 고개를 성공적으로 넘었고 마지막으로 @Tranactional 고개가
Continue reading

Quartz 스케줄러 적용 아키텍처 개선 - 2

Quartz 스케줄러 적용 아키텍처 개선 - 21편에서는 Quartz 스케줄러 적용 시 변경 주기가 다른 스케줄러 모듈과 작업 클래스 모듈을 분리해서 클린 아키텍처에 다가가는 방법을 알아봤다. 분리된 작업 클래스 모듈은 DB 작업을 할 수도 있고, 하둡 인프라 관련 작업을 할 수도 있고, 알림 메일도 보내야하는 등 여러 작업을 할 수 있어야 한다. 그런데
Continue reading

Quartz 스케줄러 적용 아키텍처 개선 - 1

Quartz 스케줄러 적용 아키텍처 개선 - 1Quartz는 스프링에서도 지원하고 있어서 스프링 기반 프로젝트에도 쉽게 통합해서 사용할 수 있으므로 널리 사용되고 있다. 게다가 properties 파일 설정만으로 간단하게 클러스터를 구성해서 부하 분산 및 fail-over가 가능한 것도 장점이다. Quartz에 나오는 주요 등장 인물에 대한 설명이나 기본
Continue reading

JPA 일대다 단방향 매핑 잘못 사용하면 벌어지는 일

JPA 일대다 단방향 매핑 잘못 사용하면 벌어지는 일Parent : Child = 1 : N 의 관계가 있으면 일대다 단방향으로 매핑하는 것보다 일대다 양방향으로 매핑하는 것이 좋다. 왜 그런지 구체적으로 살펴보자. 조인테이블 방식의 일대다 단방향 매핑그런데 어떤 특별한 이유가 있을 수도 있고, 그냥 별 생각없이 작성된 레거시 일 수도 있고, 아니면 JPA
Continue reading

Java NIO Direct Buffer를 이용해서 대용량 파일 행 기준으로 쪼개기

Java NIO Direct Buffer를 이용해서 대용량 파일 행 기준으로 쪼개기기가 단위의 파일을 외부에 전송할 일이 생겼다. 한 방에 보내기엔 너무 커서 파일을 쪼개서(split) 보내려고 하는데, 그마저도 쉽지 않다. 쪼개기 위해 대용량 파일을 읽을 때 이미 수십분 동안 CPU를 너무 잡아 먹어서 이 쪼개는 배치 작업을 스케줄링하는 스케줄러(Qua
Continue reading

Java 클래스로더 훑어보기

Java ClassLoader 훑어보기아주 예전에 SCJP 시험볼 때나 살펴본 이후로 자바의 클래스로더를 직접 다뤄야 할 일은 솔직히 없었다. 그래서 거의 잊고 살아왔는데 요즘 Quartz를 다루면서 Quartz에 없는 기능인 외부 Job 클래스 로딩 기능을 만들면서 정말로 오랜만에 들여다보게 됐다. 클래스로더는 Java9에 모듈 시스템이 도입되면서 적지
Continue reading

스펙따라 만들어보는 OAuth 1.0a Client

스펙따라 만들어보는 OAuth 1.0a ClientOAuth 탄생 배경 많은 서비스가 API를 통해 서로 연결 내가 A라는 앱에 쓴 글이 내 트위터 타임라인에도 표시되면 좋겠다. 하지만 A 앱은 내 트위터 타임라인에 글을 쓸 권한이 없다. 물론 A 앱이 내 트위터 계정 정보를 알고 있다면 A 앱이 내 트위터 타임라인에 글을 쓸 수 있겠지만, 필요한
Continue reading

Java Quartz Scheduler - Job Chaining 구현

Java Quartz Scheduler - Job Chaining 구현Java로 Job Scheduling을 쉽게(참 조심스러운 단어.. ㅋㅋ) 할 수 있게 해주는 쿼츠(Quartz) 스케줄러가 있다. 이 사이트에 나와있는 문서들은 여태 본 기술 사이트 문서 중에 가장 맘에 드는 스타일로 구성되어 있다. 길지 않은 설명, 간략하면서도 필요한 정보를 모두 담
Continue reading

HomoEfficio


Seoul, Korea.