전체 글
-
Elasticsearch: BULK란?Search & AI/Elasticsearch 2025. 3. 27. 09:56
🚀 Elasticsearch의 Bulk API란?📌 정의Bulk API는 여러 개의 요청(문서 생성, 수정, 삭제 등)을 한 번의 HTTP 요청으로 묶어서 처리할 수 있는 기능입니다.✅ "많은 문서를 빠르게 처리"하고 싶을 때 사용하는 대표 기능! 🤔 왜 Bulk이 필요할까?일반적인 방식:POST /index/_doc/1POST /index/_doc/2POST /index/_doc/3 ...→ 각 요청마다 네트워크 통신과 인덱싱 오버헤드가 발생Bulk 방식:POST /_bulk { "index": { "_index": "my_index", "_id": "1" } }{ "title": "algo", "professor": "kim" }{ "index": { "_index": "my_index", "_..
-
Elasticsearch란?Search & AI/Elasticsearch 2025. 3. 25. 22:40
1. Elasticsearch란 무엇인가?Elasticsearch는 오픈소스 분산 검색 엔진으로, Apache Lucene을 기반으로 만들어졌습니다. 단순한 텍스트 검색을 넘어서, 대규모의 정형/비정형 데이터에 대한 검색 및 분석을 실시간으로 처리할 수 있습니다. 로그 분석, 모니터링, 데이터 탐색, 검색 서비스 등 다양한 분야에서 핵심 인프라로 사용됩니다.✅ 핵심 키워드: Full-text search, 분산(Distributed), 실시간(Real-time), RESTful API 2. 철학: 검색을 중심으로 한 데이터 저장Elasticsearch의 가장 큰 철학은 "검색이 핵심이다"라는 것입니다. 일반적인 RDBMS는 데이터를 정규화된 형태로 저장하고 나중에 조회하지만, Elasticsearch는 ..
-
ELK Stack이란?Search & AI/ELK 2025. 3. 23. 14:04
로그 분석부터 검색 서비스까지 가능한 데이터 통합 플랫폼서비스를 운영하다 보면 로그는 쌓이고, 사용자들은 검색을 합니다.이 두 가지를 한 번에 해결해줄 수 있는 강력한 도구가 있습니다. 바로 ELK Stack입니다.이 글에서는 ELK Stack이 무엇인지, 왜 많은 개발자와 기업들이 사용하는지, 그리고 단순한 로그 분석을 넘어서 검색 서비스까지도 어떻게 구현 가능한지 쉽게 설명해드릴게요. 1. ELK Stack이란?ELK는 세 가지 오픈소스 도구의 조합입니다:이 세 가지를 함께 사용하면 로그를 수집 → 저장 → 검색 → 시각화하는 강력한 파이프라인이 완성됩니다.💡 최근에는 로그 수집을 더 가볍고 빠르게 하기 위해 Beats도 자주 함께 사용하며, 이들을 묶어 Elastic Stack이라고 부르기도 합니..
-
java: Full GC란?Back-End/Java 2024. 12. 22. 15:15
Full GC(Full Garbage Collection)는 Java Virtual Machine(JVM)에서 Heap 메모리 전체를 검사하여 가비지 객체를 회수하는 작업을 의미합니다. 이것은 Java 런타임(JVM)에 의해 관리되는 메모리 정리 작업으로, Spring 프레임워크 자체의 기능은 아니며, Spring은 JVM 위에서 실행되는 하나의 애플리케이션일 뿐입니다.1. Full GC란?Full GC는 JVM이 Heap 메모리에서 모든 세대(Young, Old, Permanent 혹은 Metaspace)를 스캔하여, 더 이상 참조되지 않는 객체를 정리하는 작업입니다. 이는 메모리를 회수하고 새로운 객체를 저장할 공간을 확보하기 위해 실행됩니다. Full GC 동작 과정: 1. Stop-the-Worl..
-
golang: 런타임(Runtime)이란?Back-End/Golang 2024. 11. 27. 22:18
Go의 Runtime은 Go 프로그램의 실행을 관리하는 핵심 구성 요소입니다. 이는 Go 런타임이 제공하는 동작과 기능을 이해하면, 프로그램의 성능을 최적화하고 동작 방식을 효율적으로 활용할 수 있습니다. Go 런타임의 주요 구성 요소와 개념을 자세히 설명드리겠습니다.1. Go Runtime이란?Go의 런타임은 Go 프로그램이 실행되는 동안 메모리 관리, 병행성 처리, 가비지 컬렉션, 스케줄링 등의 작업을 담당하는 표준 라이브러리 및 런타임 시스템입니다.Go는 컴파일러 기반 언어로, C/C++처럼 런타임이 없는 언어에 가깝지만, 병행성과 메모리 관리 등의 기능을 위해 런타임 환경을 제공합니다.2. 주요 기능과 구성 요소2.1 가비지 컬렉터 (Garbage Collector)Go는 자동 메모리 관리를 위해..
-
LeetCode: Two SumAlgorithm & Data Structure/LeetCode 2024. 11. 26. 22:28
Two Sum 문제 풀이: 두 가지 접근법문제 설명https://leetcode.com/problems/two-sum/ 배열 nums와 정수 target이 주어졌을 때, 합이 target이 되는 두 숫자의 인덱스를 반환하는 문제입니다.각 입력은 하나의 정답을 가지며, 동일한 요소를 두 번 사용할 수 없습니다.반환값은 인덱스 쌍으로, 순서는 상관없습니다.1. 브루트포스(Brute Force) 방법첫 번째로 떠오르는 직관적인 접근법은 모든 가능한 쌍을 검사하는 것입니다.이 방법은 단순하지만, 시간 복잡도가 높아 효율적이지 않습니다.시간 복잡도O(n²): 모든 요소를 두 번 반복하며 쌍을 검사하기 때문입니다.고랭 코드func twoSum(nums []int, target int) []int { for i..
-
오버 페치(Over-Fetch)와 언더 페치(Under-Fetch)란?Back-End 2024. 11. 25. 22:12
현대 웹 애플리케이션 개발에서는 클라이언트와 서버 간의 효율적인 데이터 통신이 매우 중요합니다. 그러나 이 과정에서 오버 페치(Over-Fetch)와 언더 페치(Under-Fetch)라는 문제가 발생할 수 있습니다. 이 두 가지 문제는 애플리케이션의 성능 저하, 사용자 경험 악화, 그리고 네트워크 리소스 낭비로 이어질 수 있습니다.오버 페치(Over-Fetch)란 무엇인가?오버 페치는 클라이언트가 실제로 필요로 하지 않는 불필요한 데이터까지 서버로부터 가져오는 상황을 말합니다. 이는 클라이언트가 요청한 데이터보다 더 많은 데이터를 받아오는 것으로, 네트워크 리소스의 낭비와 성능 저하를 초래합니다.예시사용자가 프로필 페이지에서 자신의 이름과 이메일만 확인하려고 합니다. 그러나 서버에서 프로필 정보를 요청하..
-
자료구조: 해시테이블(Hash Table)Algorithm & Data Structure/DataStructure 2024. 11. 24. 17:11
해시테이블은 효율적인 데이터 저장과 검색을 위해 해시 함수를 사용하여 키(key)를 해시값(hash value)으로 변환하고, 이를 통해 데이터의 위치를 결정하는 자료구조입니다. 해시맵과 해시테이블은 개념적으로 유사하지만, 구현 방식과 충돌 해결 방법에 따라 차이가 있습니다. 이번 글에서는 해시테이블의 기본 개념부터 다양한 충돌 해결 방법까지 자세히 알아보겠습니다.해시테이블이란?해시테이블(Hash Table)은 키를 해시 함수로 해시값으로 변환하고, 이 해시값을 인덱스로 사용하여 데이터를 저장하는 자료구조입니다. 이를 통해 평균적으로 O(1)의 시간 복잡도로 데이터에 접근할 수 있습니다. 그러나 해시 함수의 성능과 충돌 해결 방법에 따라 실제 성능은 달라질 수 있습니다.해시테이블의 동작 원리해시테이블의 ..