본문 바로가기

분류 전체보기41

Spring data Elasticsearch 사용 중 발생한 ApplicationContext 초기화 예외 문제 발견 콘솔 화면 핵심 예외 메시지 Invalid bean definition with name 'elasticsearchClient' defined in class path resource [com/example/demo/config/MyClientConfig.class] 예외 원인 해당 예외의 원인은 elasticsearchClient라는 빈이 유효하지 않은 정의이기 때문입니다. 문제 상황 이건 제가 ElasticsearchClient만 따로 사용하려고 빈 등록을 해둔 상태였습니다. 사실 여태 제가 Spring data Elasticsearch를 사용하는 것이 아닌 elasticsearch-rest-client만 의존성에 추가해서 사용하고 있는 줄 알았습니다… 그래서 빈 등록을 저렇게 해둔 거였는.. 2023. 8. 18.
HttpMessageConversionException 발생 원인과 해결책 알아보기 이번 포스팅에서는 개발 진행 중 만난 예외에 대해 원인과 해결책에 대해 정리해보려고 합니다. 예외 화면 원인 MetricAnomalyDto는 HttpConverter에 의해 직렬화/역직렬화되는 대상입니다. HttpConverter가 Json Java 객체로 변환은 Jackson 라이브러리를 사용하는데 Jakson이 객체를 역직렬화 하기 위해 reflection이라는 기술을 사용하 생성자를 검사하고 선택해 객체 인스턴스를 만드는데 일반적으로 선택되는 것이 기본 생성자 입니다! 해결책 lombok의 @NoArgsConstructor 애너테이션을 추가해 기본 생성자를 만들어 주었습니다. 기존의 생성자가 jackson이 reflection을 이용해서 역직렬화 하기에는 무리가 있는 생성자라 예외가 터진 것 같습니.. 2023. 8. 12.
git이란? 이번 포스팅 주제는 git 입니다. 소프트웨어라는 것은 항상 다수의 사람들과 협업해서 만들어 진다고 생각합니다. 그러기 위해서 내가 담당하는 코드 영역을 남들과 분리하고 모두 공용해서 사용하는 외부 프로젝트 저장소의 필요성이 점점 높아졌습니다. 그렇기에 요즘 git과 github에 대한 개념과 사용법을 익히는 것이 매우 중요해 졌다고 생각합니다. 그래서 이번 포스팅에서는 git에 대한 간단한 개념과 구조에 대해 한번 살표보겠습니다. git 이란? git은 버전 관리 시스템(VCS) 입니다. VCS란 프로젝트의 변경 사항(파일들의 추가/수정/삭제)을 버전으로 관리해주는 역할을 합니다. git은 변경 사항을 commit 으로 저장하고 이것이 버전이 되는 것입니다. 이렇게 버전을 만들어서 관리해주면 이전의 상.. 2023. 8. 12.
모던 자바 인 액션 - 7장 - 병렬 데이터 처리와 성능 배울 내용 병렬 스트림으로 데이터를 병렬 처리 병렬 스트림의 성능 분석 포크/조인 프레임워크 Spliterator로 스트림 데이터 쪼개기 배웠던 내용 새로운 스트림 인터페이스를 이용해서 데이터 컬렉션을 선언형으로 제어하는 방법에 대해 배움 외부 반복 -> 내부 반복으로 바꾸면 네이티브 자바 라이브러리가 스트림 요소의 처리를 제어할 수 있음 그래서 자바 개발자들은 컬렉션 데이터 처리 속도를 높이려고 따로 고민할 필요 X 컴퓨터의 멀티 코어를 활용해서 파이프라인 연산을 실행할 수 있음 자바 7 에서는 컬렉션을 병렬로 처리하기 굉장히 까다로웠습니다. 간단한 병렬 처리 순서 데이터를 서브파트로 나누어서 각각의 스레드로 할당 자원에 대한 레이스 컨디션(race condition)이 발생하지 않도록 동기화 처리 마.. 2023. 8. 10.