-
Hibernate Fetch 전략 중 대부분의 경우에 LAZY가 더 좋다.시리즈/Spring 2025. 3. 9. 00:12
많은 신입 개발자들이 놓치고 있는 사실을 한번 이야기 해보려고 한다.보통 Eager 전략이 Lazy보다 더 좋다고 알고 있는데 이는 데이터가 적거나 토이 프로젝트 수준의 연관 관계에서만 그러하다.??? : 대체 무슨 소리냐? 네트워크 I/O가 Eager가 훨씬 적고, Lazy는 N+1 문제가 발생하기 때문에 반드시 Eager 전략을 따라야 한다. 괜히 사람들이 Eager를 쓰는 것이 아니다.하지만 나는 자신 있게 대부분의 실무 상황에서 약간의 설정(defatul_batch_fetch_size)과 함께 Lazy Fetch 전략을 사용하면 성능도 좋아지고, 코드의 복잡성을 떨어뜨려 생산성을 증가시킨다고 말한다.이유 : Eager는 데카르트 곱(Cartesian Product) 문제를 발생시킨다.실제로 서비스..
-
opensearch에 csv 파일 넣는 bat 파일 with csv2opensearch카테고리 없음 2025. 3. 8. 03:15
아래 라이브러리를 설치하고서bat 파일 생성해서 사용하면 끝 https://github.com/ovidiugiorgi/csv2opensearch GitHub - ovidiugiorgi/csv2opensearch: Import CSV files into OpenSearch or ElasticsearchImport CSV files into OpenSearch or Elasticsearch. Contribute to ovidiugiorgi/csv2opensearch development by creating an account on GitHub.github.com @echo offREM csv2opensearch_windows.bat - OpenSearch CSV 자동 삽입 도구REM 사용법: csv2..
-
Avro Gradle source, outputDir (사용자 지정)시리즈/Avro 2024. 10. 2. 03:47
지난 포스트에 이어서 *.avsc 파일의 위치와 outputDir의 위치를 바꾸는 방법으로 설정해봅시다.setting.gradle은 지난 포스트와 같습니다.githubbuild.gradleimport com.github.davidmc24.gradle.plugin.avro.GenerateAvroJavaTaskplugins { id 'java' id 'org.springframework.boot' version '3.3.4' id 'io.spring.dependency-management' version '1.1.6' //avro// id "com.github.davidmc24.gradle.plugin.avro" version "1.9.1" id "com.github.davi..
-
Avro Gradle Plugin (디폴트 설정)시리즈/Avro 2024. 10. 2. 03:44
Avro가 다양한 언어에서 스키마를 지원 하듯 자바에서도 지원 합니다. 그리고, *.avsc 스키마 파일을 자바 객체로 변환 해주는 플러그인도 존재 하는데요. 이번 포스트에서는 이를 디폴트 설정으로 사용해보는 시간을 가져 보겠습니다.Java 에서 Avro객체를 생성하는 방법Avro는 json으로 스키마를 작성하며, 이를 gradle plungin을 통하여 java 객체 생성이 가능합니다.queryDSL 사용시 Entity를 작성하면 QEntity를 자동으로 만들어 주는 것과 같은 원리로 동작합니다.setting.gradle// -> 가장 위에 추가pluginManagement { repositories { gradlePluginPortal() mavenCentral() ..
-
Avro VS JSON시리즈/Avro 2024. 10. 2. 03:43
이번 포스트에서는 Avro와 우리가 흔히 사용하는 JSON를 비교 해보겠습니다.Avro의 강점효율적인 데이터 처리: 컴팩트한 바이너리 인코딩으로 데이터 크기 감소, 네트워크 전송 및 저장 공간 효율성 향상 (요금절약)스키마 진화 지원: 데이터 구조 변경에 유연하게 대응, 시스템 확장성 용이빅데이터 환경에 적합: 빠른 처리 속도와 효율적인 저장 방식으로 대용량 데이터 처리에 유리JSON의 강점사람이 읽기 쉬운 형식: 텍스트 기반, 데이터 구조 직관적 파악 가능, 디버깅 및 문제 해결 용이웹 개발 및 NoSQL 데이터베이스에 적합: 웹 서비스 및 NoSQL 데이터베이스와의 호환성 우수선택 기준데이터 효율성: 저장 공간 및 전송 속도 중요 → Avro가독성: 사람이 쉽게 읽고 이해해야 하는 경우 → JSON스..
-
Avro 란?시리즈/Avro 2024. 10. 2. 03:29
Avro?Avro는 데이터를 컴퓨터가 이해하고 저장하거나 전송하기 쉬운 바이너리 형식으로 변환하는 JSON과 같은 역할을 하는 '데이터 직렬화 시스템'입니다. 직렬화/역직렬화 성능과 공간 효율성이 높아 특히 Hadoop, Kafka와 같은 빅데이터 처리 시스템에서 널리 사용됩니다.특징:스키마 기반: 데이터 구조를 JSON 형식으로 정의하는 스키마를 제공하여 데이터 유효성 검사 및 프로그램 간 호환성 보장풍부한 데이이터 표현 구조: 기본적인 데이터 타입 뿐만 아니라 Enum, Arrays, Maps, Unions, Fixed 와 같은 구조도 기본 제공컴팩트한 바이너리 형식: 데이터를 압축된 바이너리 형식으로 인코딩하여 저장 공간 절약 및 네트워크 전송 속도 향상언어 독립성: 다양한 프로그래밍 언어(Java..