목록전체 글 (240)
주뇽's 저장소
개요이번 글에서는 엘라스틱서치 인덱스를 구성하는 전체적인 과정을 단계별로 살펴본다. 우리는 다음 로드맵을 따라 진행한다:인덱스 개념 이해: 엘라스틱서치의 기본 구성 요소인덱스 생성 API: REST 기반 인덱스 생성 방법매핑(Mappings): 필드 정의와 타입 설정설정(Settings): 분석기 구성과 인덱스 옵션한글 처리: Nori 분석기 활용법동의어 처리: 동의어 사전 구성실무 최적화: 인덱스 설계 모범 사례이전 글에서 다룬 역인덱스 구조와 엘라스틱서치의 기본 개념을 바탕으로, 이번에는 실제로 인덱스를 구성하고 최적화하는 방법을 자세히 알아본다.1. 인덱스란? 📚인덱스는 엘라스틱서치에서 문서를 저장하고 검색하기 위한 논리적 단위이다. 관계형 데이터베이스의 테이블과 유사하지만, 검색에 최적화된 구조..
데이터베이스에서 인덱스는 성능의 핵심이다.하지만 단순히 인덱스를 생성하는 것만으로는 부족하다. 이 글에서는 인덱스의 기본 구조부터 단일, 복합, 특수 인덱스(GIN, GiST, BRIN 등)의 동작 방식과 활용 전략까지 실무 기준으로 정리한다. ✅ 인덱스란?인덱스는 테이블에서 원하는 데이터를 빠르게 찾기 위해 사용하는 자료 구조다. RDB에서는 대부분 B+ Tree 구조를 사용하며, 정렬된 데이터를 기반으로 쿼리 속도를 획기적으로 높인다.CREATE INDEX idx_users_name ON users(name);WHERE name = 'Kim' → ✅ 인덱스 사용 가능WHERE age = 30 → ❌ 인덱스 없으면 사용 불가🔹 복합 인덱스두 개 이상의 컬럼을 묶어서 만든 인덱스CREATE IND..
엘라스틱서치의 모든 것 – RDB의 한계를 넘는 검색 시스템 구축 가이드 🔍이번 글에서는 전통적인 RDB의 한계부터 역인덱스 개념, 그리고 이를 기반으로 한 엘라스틱서치의 구조와 검색 방식, 실무 예제까지 한 번에 정리한다.1. LIKE 쿼리의 한계 😵많은 개발자들이 처음에는 RDB의 LIKE '%검색어%' 쿼리로 검색 시스템을 구성한다.하지만 이 방식은 실무에서 금방 한계에 부딪히게 된다.문제설명🔸 부분 일치 한계%API 응답 시간%은 검색되지만 %API 지연 시간%은 누락될 수 있음🔸 대소문자 민감Timeout ≠ timeout🔸 동의어 인식 불가"레디스"와 "Redis"는 별개 처리됨🔸 검색 정확도 없음유사도(score)를 기준으로 정렬 불가능→ 결국, LIKE 쿼리는 단순 문자열 검색에..
검색 시스템에서 빠르고 정확하게 정보를 찾는 일은 매우 중요하다. 그 중심에는 ‘역인덱스(inverted index)’라는 개념이 존재하며, 이를 바탕으로 구현된 대표적인 검색 엔진이 ‘엘라스틱서치(Elasticsearch)’이다. 이번 글에서는 역인덱스의 개념부터 엘라스틱서치가 이를 어떻게 활용하는지까지 쉽게 정리한다. 1. 역인덱스란 무엇인가? 📚 역인덱스는 ‘내용 → 문서’ 방식으로 정보를 저장하는 구조이다. 일반적인 책의 목차나 찾아보기와 유사하다고 볼 수 있다. 예시 문서 3개를 가정해보자. 문서1: “AI가 세상을 바꾼다”문서2: “세상은 빠르게 변하고 있다”문서3: “AI 기술이 빠르게 발전하고 있다” 이를 역인덱스로 바꾸면 다음과 같다:단어포함 문서AI문서1, 문서3세상문서1, 문서2바..

🔗 GitHub App 만들기 (2) - FastAPI로 Webhook 연결하고 GitHub 이벤트 받기지난 글에서 우리는 GitHub 앱 『코드봐드림(CodeBwaDream)』을 만들었어요.아직 GitHub 앱을 안 만들었다면 이전 글을 보고 만들어주세요!이번 글에서는 이 GitHub 앱과 FastAPI를 이용해 Webhook 연결하고 실제로 GitHub의 이벤트를 받는 과정을 설명할게요.🎯 이번 글 목표GitHub 앱이 Webhook 이벤트를 내 서버로 보내는 것 확인하기FastAPI로 webhook 이벤트를 받아서 GitHub 앱과 연결하기🚩 진행할 작업GitHub 앱 Webhook URL 설정하기FastAPI 서버에서 webhook 수신 코드 작성하기실제로 PR 이벤트 발생시켜 webhook..
⸻✨ 코드 리뷰는 AI한테 맡기고 커피나 마시자 ☕️ (feat. GitHub App 만들기)🚨 코드 리뷰, 아직도 직접 하세요?개발자라면 누구나 알죠."코드 리뷰, 중요하긴 한데… 누가 대신 해줬으면 좋겠다."맞아요. 매일 PR 올라올 때마다 리뷰하는 게 쉬운 일은 아니죠.코드 한 줄마다 *"여기 왜 이래요?"* 물어보기도 눈치 보이고, 내가 올린 PR에 아무도 리뷰 안 달아주면 왠지 서운하기도 하고요.(저만 그런 건 아니겠죠? 🙄)그래서 오늘은 이 귀찮고 민감한(!) 코멘트를 대신 해줄 봇을 만들어볼 겁니다.이름하야…『코드봐드림(CodeBwaDream)』코드를 봐드림. 진짜로요.🎯 왜 GitHub App인가요?GitHub Actions도 있지만, 직접 GitHub App으로 하면 장점이 아주 많..

Mininet 가상환경 구축하기 - SDN 네트워크 실험 시작하기Mininet 가상환경을 구축하여 SDN 네트워크를 실험하는 방법을 단계별로 설명한다.주요 내용 요약 💡Mininet 소개 및 필요성 설명한다단일 머신에서 가상 네트워크(호스트, 스위치, 링크, 컨트롤러)를 에뮬레이션할 수 있도록 하여 SDN 연구와 교육에 활용한다.비용 절감과 빠른 프로토타이핑을 가능하게 하여 실제 네트워크 하드웨어 없이 다양한 실험을 진행할 수 있도록 한다.Ubuntu 22.04 LTS 환경 사용을 권장한다Ubuntu 22.04는 pep8 관련 충돌 없이 안정적으로 설치가 진행되므로 추천한다.Ubuntu 24를 사용할 경우 install.sh 스크립트의 pep8 호출 부분을 적절히 수정해야 한다.Python 버전은 Py..
Part 5: LangGraph 상태 수동 업데이트 - AI의 행동 제어하기 🎮LangGraph의 상태를 수동으로 업데이트하여 AI의 행동을 제어하는 방법을 설명한다. AI의 응답을 수정하거나 대화의 흐름을 변경하는 방법을 예제와 함께 알아본다.주요 내용 요약 💡상태 수동 업데이트 방법메시지 수정 기능상태 관리와 검증실제 활용 사례예제 코드로 알아보기 🔍Example 1: 기본적인 상태 업데이트# 기본 상태 업데이트 예제@tooldef update_and_verify(message_content: str) -> str: """메시지를 업데이트하고 검증하는 예제""" # 상태 업데이트 전 검증 수행 verified = verify_content(message_content) if..