Unable to load io.netty.resolver.dns.macos 에러 해결

문제 아래의 에러를 맞이했다. Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library 한참오래전에도 스프링에..

Development/Daily Error 2024.01.14
[일간에러] error: invalid source release: 21

문제 인텔리제이의 Spring Initializr를 이용해서 JDK 21을 사용하는 스프링부트 프로젝트를 생성했다. 생성할 때 JDK도 잘 설정해 주었는데, 프로젝트 생성 후 서버를 띄워보려고 하니 다음의 에러가 발생하며 컴파일이 되지 않았다. 원인 원인을 찾아보자. 일단 Java 21을 지원하는 Gradle 버전을 찾아본다. https://docs.gradle.org/8.4/release-notes.html#support-for-building-projects-with-java-21 Gradle 8.4 버전부터 Java 21을 지원한다. gradle --version 위에 보이는 것 처럼, 컴퓨터에 설치된 gradle 버전은 Gradle 8.0.2 로 확인된다. 버전이 낮기 때문에 얼핏 보면 설치된 G..

Development/Daily Error 2024.01.12
Apache Commons net 한글 파일명 문제 해결

문제 다음과 같이 Apache Commons net을 이용해 FTP 접속을 하고 FTPClient ftpClient = new FTPClient(); FtpConfig ftpConfig = config.getFtp(); ftpClient.connect(ftpConfig.getHost(), ftpConfig.getPort()); ftpClient.login(ftpConfig.getUsername(), ftpConfig.getPassword()); ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); setFileType을 해주지 않으면 다운받아온 파일이 깨진다 재귀적으로 파일 목록을 담도록 코드를 작성했다...

Development/Daily Error 2024.01.10
SpringBoot 2.x 버전 프로젝트 생성 방법

Intro 새로운 프로젝트 요청이 왔는데, Java 11 을 사용해 스프링부트로 프로젝트를 만들어야 하는 요구사항이 명시되었다. 그런데 스프링부트 3버전대의 등장 이후 2.x 버전으로 프로젝트를 생성한 적이 한번도 없었어서 이제야 알았는데 Spring Initializr 에서 스프링 부트 2.x 버전이 모두 제거되었다. 스프링 3.0 부터는 최소 JDK 요구 사항이 17이기 때문에 Spring Initialzr 에서는 이제 더이상 17 아래의 자바 버전들도 취급을 안해준다. 자바 버전은 17, 21만 선택 가능하다. 스프링부트는 2버전 선택이 불가능하다 당연하겠지만 start.spring.io 에 들어가서 생성하려 해도 마찬가지다. https://start.spring.io/ 이정도에서 끝나는게 아니고 ..

Programming/JPA ⁄ Spring 2024.01.08
[Java] Carriage return 그리고 Line feed

Intro HWPX 이야기 이 사건은 사용자가 요청하는 정보에 해당하는 HWPX 파일을 서버에서 실시간으로 만들어서 사용자가 다운로드 받을 수 있도록 제공하는 기능을 구현하던 중 발생했다. hwpx파일은 엑셀처럼 기본적으로 zip 파일로 되어 있어, 파일 확장자를 .zip으로 변경한 뒤에 압축을 풀면 내부 파일 구조를 확인 할 수 있다. Contents 폴더, META-INF 폴더, Preview 폴더가 있는데 그 중 Contents 폴더의 section0.xml 이 내용물을 담고있는 핵심 파일이다. 그런데 문제는 마음대로 바꾸고 싶은대로 바꾸면 한컴오피스에서 파일이 열리지 않았다. 줄바꿈, 탭문자등이 들어가면 어김없이 프로세스가 죽어버린다. 그들이 정의해놓은 포맷에 맞게 기입해야만 한다. 예) 줄바꿈 ..

Programming/Java 2024.01.05