Spring Boot 1.5 -> 2.5 마이그레이션 회고

Intro 최근 스프링 부트 1.5 버전으로 작성된 프로젝트를 Spring Boot: 2.5.10 버전으로 올리는 작업을 진행 하였습니다. 스프링부트 앞자리 버전 차이가 굉장히 큰데, 온라인 게임에 비유한다면 메이플스토리에서의 빅뱅 혹은 와우의 대격변 전후를 생각하면 이해가 빠르겠습니다. 단순히 pom.xml에서 버전 명시를 변경한다고 뿅 하고 바뀌는건 아니고, 스프링 부트 변경에 따라 여러가지 클래스가 사라지고 새로 생겨났으며 각종 메서드들의 변화도 상당합니다. 스프링 설정 하는 방법도 달라지고, 구석구석 영향이 가지 않는 곳이 거의 없기 때문에 프로젝트가 크면 클수록 그 여파가 상당합니다. 제가 이번에 마이그레이션을 진행한 프로젝트도 몇년간 진행되며 몇번의 고도화를 거친 프로젝트이다 보니 규모도 제법..

Programming/JPA ⁄ Spring 2022.03.15
일간에러 2022-03-15 WARN No appenders could be found for logger

Intro log4j:WARN No appenders could be found for logger (io.github.makbn.thumbnailer.util.mime.MimeTypeDetector). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.Spring Project 실행 시 위와 같은 에러가 발생했다. 일단 log4j 1.2 라는 에러 문구에서 쉽게 느낌이 왔기 때문에 어렵지 않게 해결 할 수 있겠다. 원인 일단 위에서 안내 해 주는 링크로 이동하면 https://logging.apache.or..

Development/Daily Error 2022.03.15
HikariCP) Connection Pool 설정 및 확인하기

Intro 실제 사용하는 커넥션 수에 비해서 커넥션 풀을 넉넉하게 잡고 있었는데, 해당 DB를 여기저기서 다 사용하다 보니 커넥션 풀을 조금 타이트하게 가져가 달라는 요청을 받았습니다. Connection Pool을 조절하고, 실제로 DB에서 커넥션을 몇개나 물고 있는지 확인 해 보도록 하겠습니다. 설정 application.yml 스프링 부트에서 Hikari 설정은 spring.datasource.hikari 에 합니다. 변경 전 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/postgres usern..

Programming/JPA ⁄ Spring 2022.03.04
일간에러 2022-03-04 Lombok@Slf4j 적용 에러 해결

Error java: Can't get the delegate of the gradle IncrementalProcessingEnvironment. java: cannot find symbol symbol: variable log location: class openapi.OpenApiController롬복 플러그인을 활용해 @Slf4j 어노테이션을 사용하던 중 위와 같은 에러 발생. 해결 방법1 보통의 경우에는 Annotation Processor 설정이 안되있거나 Lombok 플러그인이 설치되어 있지 않을 때 발생. 둘중 하나라도 걸린다고 생각한다면 Lombok 플러그인이 설치되어 있는지 확인 하고, 없으면 설치 Preferences -> Build, Execution, Deployment -..

Development/Daily Error 2022.03.04
Java) 클립보드에 텍스트 복사 / 붙여넣기

Intro 저에게 필요한 기능이 있어 쉘에서 간단하게 만들어 보려고 했는데.. shell script에는 제가 익숙하지가 않아서 자바로 프로그램을 작성 하고 alias로 등록 해서 사용하기로 했습니다. 해당 기능을 구현하며 클립보드로 텍스트를 복사해내거나 클립보드에 있는 텍스트를 꺼내오는 기능을 사용 해야 했는데 굉장히 생소해서 해당 내용을 정리 해 보았습니다. 복사, 붙여넣기 코드만 확인 하실분은 복사의 경우 Copy to the clipboard 부분의 코드를, 붙여넣기가 필요한 분은 맨 아래의 argument 없이 실행 부분의 코드만 확인 하시면 됩니다. Requirements 저는 LeetCode 문제풀이를 할 때 테스트 코드 작성이나 디버깅등을 위해 IDE로 옮겨와 작업을 합니다. 매번 적당한 ..

Programming/Java 2022.02.26