[DEV] 기록 166

[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

[Maven] The cb argument must be of type function received undefined

개요 maven package 명령어를 작성하는데 아래와 같은 에러가 lib/modules/mvn/target.js 파일에서 아래 에러가 발생했습니다. TypeError ERR_INVALID_ARG_TYPE: The cb argument must be of type function received undefined 원인 maven 버전과 java 버전 호환성이 맞지 않아 발생하는 원인인 것 같습니다. 기존 파일에서는 fs.makedir() 메서드가 콜백 메서드가 아니어서 발생하는 문제였습니다. 기존 파일 var path = require('path'); var fs = require('fs'); const config = require('./package'); const http = require("ht..

[DEV] 기록 2023.01.27

[Intellij] resource 폴더를 인식하지 못할 때 해결 방법

개요 깃에서 프로젝트를 pull 받고 실행을 하려는데 Intellij에서 resources 폴더를 인식하지 못하는 문제가 발생했습니다. 해결 방법 위와 같은 문제가 발생할 경우 아래와 같이 수동으로 해결해야 합니다. File > Project Structure > Project Settings > Modules > 프로젝트 구조 내 resources 폴더 클릭 > Mark as Resources 버튼 클릭 > Apply

[DEV] 기록 2023.01.27

[Elasticsearch] received plaintext http traffic on an https channel, closing connection

개요 local에서 elasticsearch를 실행한 뒤 localhost:9200으로 접속하니 아래와 같은 메시지와 함께 정상적으로 접근이 안 되는 것을 확인했습니다. received plaintext http traffic on an https channel, closing connection 원인 elasticsearch를 기동할 때 https를 통해서 ssl 인증서가 필요하게 되는데, 해당 인증서에 대한 선행작업이 이루어지지 않을 경우 보안 관련 이슈가 터져서 발생하는 문제였습니다. 해결 방법 로컬에서 실행할 때는 보안 관련 이슈를 고려하지 않아도 되므로 config > elasticsearch.yml 파일 내 아래의 옵션을 true에서 false로 변경한 뒤 재기동해주면 해결됩니다. xpack...

[DEV] 기록 2022.12.03

[Spring Cloud] Spring Cloud 정리

개요 최근에 MSA와 함께 Spring Cloud를 학습하고 있어 Spring Cloud 하위 프로젝트들 중 자주 쓰이는 프로젝트들 위주로 개념 정리해보겠습니다. 1. Spring Cloud란? 마이크로서비스 아키텍처를 지원하기 위한 프레임워크 공식 사이트: https://spring.io/projects/spring-cloud Spring Boot와 Spring Cloud와 연동돼서 개발이 진행되기 때문에 Spring Boot 환경에서 개발하는 것이 필수 버전 디펜더시를 가짐 ex) Spring Boot 2.4.x, 2.5.x는 Spring Cloud 2020.0.x 버전을 사용 (그 미만 버전들은 호환 불가능) 최신 버전인 2.6.x와 2.6.x는 Spring Cloud 2021.0.x 버전만 연동 ..

[DEV] 기록 2022.10.31

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

[SpringBoot 2.X.X] No beans of 'AuthenticationManager' type found.

개요 Spring Security를 적용하는데 아래와 같은 메시지와 함께 에러가 발생했습니다. Could not autowire. No beans of 'AuthenticationManager' type found. 원인 release note에 따르면 1점대 버전에서는 별도 처리 없이 SpringBoot에서 제공하는 AuthenticationManager를 주입시킬 수 있었지만 2점대 버전부터는 WebSecurityConfigurerAdapter를 상속받는 클래스에서 authenticationmanagerBean() 메서드를 오버라이드 해야 autowire가 가능했습니다. 자세한 내용은 아래 링크로 첨부합니다. https://github.com/spring-projects/spring-boot/wiki..

[DEV] 기록 2022.10.20

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

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

[DEV] 기록 2022.10.15

[SpringBoot] Prometheus, Grafana 연동하는 방법

개요 기존에 엑셀 다운로드 기능을 Apache POI 라이브러리를 통해 구현했는데 메모리도 많이 먹는 것 같고 non streaming 방식이라 streaming 방식인 fastexcel 라이브러리로 변경하려고 합니다. 기존 코드를 대체하기 위해서는 합리적인 이유가 필요한데 이를 위해 모니터링 툴을 연동하여 각각의 라이브러리를 적용했을 때 CPU 사용량, JVM Heap 메모리, 그리고 실행 속도를 비교해봤습니다. 처음에는 Spring Admin UI를 사용하려고 했지만 실무에서 Prometheous와 Grafana가 많이 쓰인다고 해서 프로메테우스와 그라파나를 연동해봤고 연동하는 방법에 대해 간단히 정리하고자 합니다. 다행히 잘 정리된 글들이 있어 해당 글들을 참고했습니다. https://devbksh..

[DEV] 기록 2022.09.01

[SpringBoot] Failed to start bean documentationPluginsBootstrapper

개요 SpringBoot에 actuator를 연동한 뒤 실행하였더니 아래와 같은 오류 메시지가 발생했습니다. org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException: Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getPatterns()" because "this.condition" is null 원인 SpringFox 측에서 업데이트를 진행하지 않아 Spring..

[DEV] 기록 2022.08.31