Programing/Java & Spring 35

[Spring] TimeZone에 대해 활용해보자

회사에서 최근에 TimeZone을 이용하여 권역에 따른 서비스 분리 운영을 진행하려고 한다.조건은 서비스의 코드는 동일 코드지만, 컨테이너 혹은 Application의 TimeZone을 분할하는 방향으로 설계가 되었고이에 따라 나는 어플리케이션 단에서 TimeZone을 유동적으로 처리할 수 있도록 구성이 필요했다. 즉, Application에 TimeZone 설정하는 방법에 대해 해당 포스팅에서 리뷰해보려고 한다.  1. TimeZone이란 무엇인가?TimeZone이란 전 세계적으로 사용되는 표준 시간을 의미한다. 주로 UTC/GMT를 많이 사용하는 편이고 예를 들어 한국 기준을 표준 시간대로 변경하면 UTC+9라는 값을 가지게 된다. 2. TimeZone을 사용해야 하는 이유?우선적으로 TimeZone..

Spring ConstraintValidator 활용하여 유효성 검증하기 : 세기무민의 코딩일기

기본적으로 Spring에서 @Valid 어노테이션을 이용하여 DTO에 대해 기본적인 검증이 가능하다. 자세한 내용은 Spring Validation Docs를 참고하면 된다. Getting Started | Validating Form InputThe application involves validating a user’s name and age, so you first need to create a class that backs the form used to create a person. The following listing (from src/main/java/com/example/validatingforminput/PersonForm.java) shows how to do so: pacspring...

세무민의 코딩일기 : 맥북에서 Java 11 -> 17 Version으로 변경하기

안녕하세요 세기무민입니다. 현재 집에서 맥북으로는 Java 11버전을 사용하고 있으나 코틀린 공부를 할 생각과 최근 회사에서 자바 17버전을 사용했다보니 아싸리 내 맥북에도 Java 17로 변경해봐야겠다는 생각에 진행해봤습니다. 1. echo $SHELL 가장 먼저 내가 어떤 쉘을 사용하고 있는지 확인을 했습니다. 내가 사용하고 있는 쉘은 zsh 쉘입니다. zsh은 상호작용 로그인 셸이자 셸 스크립트를 위한 강력한 명령 줄 인터프리터로 사용할 수 있는 유닉스 셸 2. brew install openjdk@17 자바 17 버전 설치를 진행해줍니다. 3. usr/libexec/java_home -V 설치가 정상적으로 되었는지, 그리고 현재 사용중인 자바 버전을 체크해줍니다. 저의 경우는 17을 다운 받았으나..

세무민의 코딩일기 : Junit > Port was already in use 해결 방법

안녕하세요 세기무민입니다. 오늘 포스팅 할 내용은 테스트 코드를 작성하다가 우연히 발견한 내용에 대해 기록으로 남겨보려고 합니다. 1. 현상 단일 테스트 코드를 실행했을 때는 문제가 없으나 통합하여 실행 시 몇몇 테스트 코드들에서 위와 같이 현재 Port 가 사용중이라는 오류가 발생하였습니다. 원인으로 추정되는 건 아직 없으나, 이전에 Java 11 버전과 그에 맞는 Javax, Tomcat 버전을 사용했을 때는 위와 같은 문제는 발생하지 않았었으며 버전 올린 후 Junit에서 Tomcat Port가 잡힌다는 점에서 버전 upgrade에 따른 이슈라고 판단된다. Java 17 Version으로 올리면서 jakarta 및 Tomcat Version은 올렸으나 junit은 그대로 4 version을 사용했는..

세무의 코딩일기 : JobRegistry @Autowird Bean이 없다고 오류 날 때 처리 방안

회사에서 일을 하다가 굳이 리펙토링 할 필요는 없는데... 어떨결에 리펙토링을 하려고 Batch 관련 API 코드를 까보던 중에 AutoWird Bean이 없다고 오류가 떴다. 실질적으로 서비스 작동에는 문제가 없어서 크게 이슈되는 상황은 아니였지만 혹시 몰라서 글을 적어본다. 추가로 Spring Batch 5.x 버전을 사용한다면 위의 이슈는 없을 것으로 보인다. 다만, 5.x 버전보다 낮은 버전을 이용할 경우 실제 서비스 작동에는 문제가 없지만 JobRegistry가 Bean이 없어서 빨간줄이 뜨는 경우들이 존재할 것이다. 버전에 따라 다른 것으로 보이지만 내가 사용한 4.x 버전의 JobRegistry 인터페이스 로직이다. 보면 Bean으로 등록되어 있지 않다. 이에 따라 Bean으로 수동으로 등록..