Java 26

[SpringBoot] Apache poi 버전에 따른 오류들

개요 프로젝트를 진행하면서 Apache Poi 라이브러리 버전이 맞지 않아 아래와 같은 오류가 발생했습니다. java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Cell.getCellType() Found interface org.apache.poi.util.POILogger, but class was expected error 원인 maven 혹은 gradle 내 Apache Poi 버전이 맞지 않아 발생하는 문제였습니다. 해결 방법 두 문제 모두 아래와 같이 버전을 맞춰주면 해결됩니다. org.apache.poi poi 4.1.2 org.apache.poi poi-ooxml 3.15 결국에는 fastexcel로 바꾸긴 했지만 정보 공유 차원에서 게시물..

[DEV] 기록 2023.02.03

[Maven] java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x2fbb01ba) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler)

개요 SpringBoot 프로젝트를 실행하는데 아래와 같은 에러가 발생했습니다. java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x2fbb01ba) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) 원인 pom.xml에 명시된 Java 버전과 lombok 버전 호환성이 맞지 않아 발생하는 문제였습니다. 해결 방법 저 같은 경우 Java 11 버전을 사용하고 있었고 lombok은 별도 version 명시 없이 사용하고 있었는데 Java 11과 호환성이 맞는 버전인..

[DEV] 기록 2023.01.27

COS Pro 1급 Java, C++, C 합격 간단 후기

COS Pro 1급에는 총 3 영역이 있는데 아래와 같습니다. 1. 코드 이해 (빈칸 채우기) 2. 디버깅 (코드 한 줄 수정) 3. 설계 (풀 코딩) 저번 SQLD 합격 후기와 비슷하게 작성해보겠습니다. 문제 유형 총 10문제 (부분점수 인정) 처음 4문제: 코드 이해 (빈칸 채우기) 그다음 3문제: 디버깅 (코드 한 줄 수정) 마지막 3문제: 설계 (풀 코딩) 합격기준 COS Pro 1급 Java에 합격하기 위해서는 총점 1000점 중 600점 이상을 취득해야 하며, 각 영역에 대한 과락은 없습니다. 즉, 설계를 다 틀리더라도 코드 이해 및 디버깅에서 600점 이상을 취득하면 합격할 수 있습니다. 문제 난이도 문제 난이도는 프로그래머스에서 제공하는 COS Pro 1급 샘플 문제와 유사합니다. (쉽습니..

[DEV] 기록 2022.10.23

[Java] 엑셀 데이터 읽어오는 코드

개요 기존에 Apache Poi 라이브러리를 활용해 업로드된 엑셀 데이터를 읽은 뒤 처리하는 코드가 있었는데 fastexcel 라이브러리로 생성된 엑셀을 읽어오지 못하는 문제가 발생했습니다. 이에 따라 fastexcel 라이브러리를 활용해 엑셀 데이터를 읽어오는 코드를 구현했고 테스트한 결과 모든 엑셀을 읽어올 수 있었습니다. fastexcel 라이브러리 관련해서는 아래 글을 참고해주세요. https://jaimemin.tistory.com/2191 [SpringBoot + Fastexcel] 대용량 엑셀 생성 및 다운로드 개요 여태까지 엑셀 생성 및 다운로드 기능을 구현할 때 Apache Poi 라이브러리를 사용했었고 이와 관련하여 게시글을 여러 번 남겼습니다. https://jaimemin.tisto..

[DEV] 기록 2022.10.15

[SpringBoot + Fastexcel] 대용량 엑셀 생성 및 다운로드

개요 여태까지 엑셀 생성 및 다운로드 기능을 구현할 때 Apache Poi 라이브러리를 사용했었고 이와 관련하여 게시글을 여러 번 남겼습니다. https://jaimemin.tistory.com/2069 [SpringBoot] 대용량 엑셀 파일 생성 및 다운로드 삽질기 개요 작년에 이어 올해도 엑셀 파일 생성 및 다운로드 기능을 담당하게 되었습니다. https://jaimemin.tistory.com/1889 [SpringBoot] 대용량 엑셀 다운로드를 위한 SXSSFWorkbook 개요 기존에 Excel 생성 및 다운.. jaimemin.tistory.com Apache Poi 라이브러리가 보편적으로 사용됨에 따라 레퍼런스도 많고 주기적인 버전업이 이루어졌기 때문에 지금까지 해당 라이브러리를 사용해왔..

리서치 2022.09.14

SQLite DB 사용기

개요 현업에서는 주로 MariaDB나 PostgreSQL을 사용했는데 이번에 개인적으로 간단한 프로젝트를 하고 싶어 로컬 파일로 데이터베이스를 관리하는 SQLite DB를 사용해봤습니다. Dokon Jang님 포스팅을 많이 참고했고 자세한 설명은 아래 블로그를 방문하시면 확인하실 수 있습니다. https://docko.tistory.com/entry/Java-SQLite-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 Java - SQLite 데이터베이스 사용하기 안드로이드 개발 시 SQLite 데이터베이스를 자주 활용하고 했습니다. Java Application에도 SQLite 데이터베이..

[DEV] 기록 2022.07.10

[Java] "No suitable driver found for jdbc:sqlite"

개요 Maven 저장소에서 org.xerial:sqlite-jdbc jar를 다운로드했음에도 불구하고 DB에 연결 시도할 때 아래와 같은 메시지가 발생했습니다. "java.sql.SQLException: No suitable driver found for jdbc:sqlite" 해결 방법 우선, Maven 저장소에서 jar 파일을 정상적으로 다운받았는지 확인해야 합니다. Intellij 기준 프로젝트 구조 내 External Libraries에 pom.xml에 등록한 jar 파일이 있는지 확인합니다. External Libraries에 있는데도 불구하고 계속 동일한 에러가 발생한다면 DB에 연결하기 전에 Class.forName("org.sqlite.JDBC"); 구문을 추가해줍니다. 참고 https:/..

[DEV] 기록 2022.07.10

[Java] 위도, 경도 간 실제 거리 구하는 방법

개요 현재 위치 기준 가까운 순서대로 나열하기 위해 위도, 경도 간 실제 거리를 구해야 했습니다. 저는 clean_h님 블로그 글을 참고하여 아래 코드를 작성하였고 자세한 설명은 아래 블로그를 방문해서 봐주시면 될 것 같습니다. https://se-jung-h.tistory.com/entry/%EC%9E%90%EB%B0%94intelij-%EC%A2%8C%ED%91%9C%EC%9C%84%EB%8F%84%EA%B2%BD%EB%8F%84%EB%A1%9C-%EC%8B%A4%EC%A0%9C-%EA%B1%B0%EB%A6%AC-%EA%B5%AC%ED%95%98%EA%B8%B0?category=839321 자바(intelij) / 좌표(위도,경도)로 실제 거리 구하기 위도, 경도 지구는 위도와 경도로 나타낼 수 있다..

[DEV] 기록 2022.07.10

[Java] zip 파일에서 원하는 파일 추출해서 저장하는 방법

개요 클라이언트에서 zip 파일을 업로드했을 때 zip 파일 내 tar.gz 파일만 추출해서 NAS에 저장하도록 로직을 바꿔야 했습니다. 찾아본 결과 추출할 파일명만 안다면 생각보다 간단하게 코드를 작성할 수 있었습니다. 코드 비고 같은 Java 8버전이더라도 JDK-8223197 버전 이전 버전을 사용할 경우 FileSystem.newFileSystem(zipFilePath, null) 코드에서 ambiguous가 뜰 것입니다. https://bugs.openjdk.java.net/browse/JDK-8223197 [JDK-8223197] Release Note: Added FileSystems.newFileSystem(Path, Map) Method - Java Bug System Three new ..

[DEV] 기록 2022.05.29

[Java] UTF-8로 파일 작성하는 코드

개요 파일에 한글로 된 데이터를 한 줄씩 작성하는데 UTF-8 인코딩을 하지 않아 텍스트가 깨지는 현상이 발생했습니다. 찾아본 결과 생각보다 간단하게 코드를 작성할 수 있었습니다. 코드 참고 https://mkyong.com/java/how-to-write-utf-8-encoded-data-into-a-file-java/ How to write a UTF-8 file in Java - Mkyong.com In Java, we can use `OutputStreamWriter` to write data to a UTF-8 file. mkyong.com

[DEV] 기록 2022.05.29