Corrective RAG (교정 RAG)

7. Corrective RAG (교정 RAG) 7.1 Corrective RAG란 무엇인가요? Corrective RAG는 “틀린 답을 전제로 설계된” RAG입니다. 검색 결과가 잘못되었거나 부족할 수 있다는 것을 인정하고, 이를 감지하고 교정하는 메커니즘을 내장하고 있습니다. 일반 RAG는 낙관적입니다. “검색하면 좋은 결과가 나올 거야”라고 가정합니다. 하지만 현실에서는: Corrective RAG는 비관적(또는 현실적)입니다. “검색 결과가 틀렸을 수 있어. 확인하고 필요하면 고치자”라고 가정합니다. 7.2 … 더 읽기

Agentic RAG (에이전트 RAG)

6. Agentic RAG (에이전트 RAG) 6.1 Agentic RAG란 무엇인가요? Agentic RAG는 RAG를 단발 호출이 아니라 행위(behavior)로 확장한 것입니다. AI가 단순히 “검색하고 답변”하는 것이 아니라, 목표를 달성하기 위해 계획 → 검색 → 실행 → 관찰 → 재계획의 사이클을 반복합니다. 일반 RAG를 생각해보면, 사용자가 질문하면 한 번 검색하고, 한 번 생성해서 답변합니다. 끝입니다. 하지만 복잡한 질문은 한 … 더 읽기

Self-RAG (자기 평가 RAG)

5. Self-RAG (자기 평가 RAG) 5.1 Self-RAG란 무엇인가요? Self-RAG는 LLM이 스스로 판단하고 평가하는 RAG입니다. 핵심은 모델이 외부의 지시 없이 스스로 다음 질문들에 답한다는 것입니다: 일반 RAG는 어떤 질문이든 무조건 검색부터 합니다. 하지만 생각해보면, “1 더하기 1은?”이나 “Python에서 for 문 어떻게 써?”같은 질문에는 검색이 필요 없습니다. LLM이 이미 알고 있는 기본 지식이니까요. 반면 “우리 회사 작년 … 더 읽기

Graph RAG (그래프 RAG)

4. Graph RAG (그래프 RAG) 4.1 Graph RAG란 무엇인가요? Graph RAG는 지식 그래프(Knowledge Graph)를 활용하는 RAG입니다. 핵심 아이디어는 “문서”가 아니라 “관계”를 검색한다는 것입니다. 일반적인 RAG는 문서를 독립적인 조각으로 취급합니다. 각 청크는 그 안에 있는 텍스트만 담고 있고, 다른 청크와의 관계는 고려하지 않습니다. 하지만 현실 세계의 정보는 서로 연결되어 있습니다. 지식 그래프는 정보를 엔티티(Entity, 개체), 관계(Relationship), … 더 읽기

Modular RAG

3. Modular RAG 3.1 Modular RAG란 무엇인가요? Modular RAG는 RAG 시스템을 여러 개의 독립적인 모듈로 나눠서 구성하는 방식입니다. 핵심은 “RAG를 파이프라인이 아니라 시스템으로 보기 시작한다”는 것입니다. Naive RAG나 Advanced RAG를 생각해보면, 처음부터 끝까지 하나의 흐름으로 연결되어 있습니다. 질문이 들어오면 → 쿼리 처리 → 검색 → 리랭킹 → 생성 → 답변 출력. 이 모든 단계가 하나의 … 더 읽기

Advanced RAG (고급 RAG)

2. Advanced RAG (고급 RAG) 2.1 Advanced RAG란 무엇인가요? Advanced RAG는 Naive RAG의 한계를 개선한 RAG입니다. 핵심은 “검색 품질을 올리는 테크닉의 집합”이라는 것입니다. Naive RAG가 단순히 “검색하고 답변 생성”이라면, Advanced RAG는 검색 전에 질문을 더 좋게 다듬고, 검색 방식을 다양화하고, 검색 후에 결과를 한 번 더 정제하는 과정을 추가합니다. Advanced RAG 기법인 쿼리 재작성, 하이브리드 … 더 읽기

Naive RAG (기본 RAG)

1. Naive RAG (기본 RAG) 1.1 Naive RAG란 무엇인가요? Naive RAG는 RAG의 출발점입니다. “Naive”라는 단어는 “순진한” 또는 “단순한”이라는 뜻인데, 말 그대로 가장 단순하고 직관적인 방식으로 RAG를 구현한 것입니다. 복잡한 기법 없이 “검색하고, 찾은 내용을 AI에게 주고, 답변을 받는다”는 RAG의 핵심 아이디어만 그대로 구현합니다. Naive RAG의 동작 흐름을 한 문장으로 요약하면 이렇습니다. 사용자가 질문하면, 그 질문을 … 더 읽기

Polling, Long Polling, WebSocket, SSE 비교

Polling, Long Polling, WebSocket, Server-Sent Events (SSE)의 개념과 장단점을 비교하고 Python으로 직접 실행해볼 수 있는 예제를 실행해봅니다. 최초작성 2026. 1. 22최종작성 2026. 1. 26 Polling Long Polling WebSocket Server-Sent Events (SSE) 선택 가이드 상세 비교표 예제 코드 Polling 클라이언트가 서버에 주기적으로 요청을 보내 새로운 데이터가 있는지 확인하는 방식입니다. 예를 들어, 클라이언트가 일정한 간격(예: 1초, 5초)마다 … 더 읽기

우분투에서 터미널 늦게 실행되는 경우 해결방법

우분투에서 터미널 실행시 늦게 실행되는 현상이 있어 재설치해야 하나 싶었는데 클로드에게 물어보고 간단하게 해결했습니다. 터미널이 늦게 실행되는 원인은 miniconda/anaconda를 설치한 한 경우 터미널 실행시 .bashrc에 설정되어 있는 base 파이썬 환경이 기본적으로 실행되는데 이게 원인이 었습니다. 이상한건 다른 피시에선 miniconda/anaconda 때문에 터미널이 실행시 늦게 실행되는 문제가 없는 경우도 있었습니다. 사용하는 우분투 버전에 따라 문제가 안되기도 하는 … 더 읽기

Visual Studio Code, MinGW를 사용한 C/C++ 개발환경 만들기-(Windows/Ubuntu)

Windows와 Ubuntu 환경에 설치된 Visual Studio Code에서 C/C++을 컴파일하고 실행시키는 방법에 대해 설명합니다. 테스트에 사용한 운영체제 버전은 Windows 11과 Ubuntu 22.04입니다. Visual Studio Code 버전에 따라 진행 방법이 달라 질 수 있습니다. 문제가 되는 것을 발견할 때마다 문서를 업데이트합니다. 1.  C/C++ 컴파일러 설치 2. Visual Studio Code 설치 3. C/C++ 프로젝트 폴더 생성 4. C/C++ … 더 읽기