바이브코딩

로컬 LLM 쓸 곳 없다고 느꼈다면 AI 대화 자동 요약을 해보세요

16GB 맥북에서 여러 로컬 LLM을 시도했지만 실망만 반복했습니다. EXAONE 3.5 7.8B를 만나고 AI 대화 기록 자동 요약이라는 확실한 용도를 찾은 ODS 프로젝트 개발기를 공유합니다.

#로컬LLM #EXAONE #AI대화요약 #Cloudflare D1 #옵시디언 #ODS프로젝트 #Ollama #바이브코딩
로컬 LLM 쓸 곳 없다고 느꼈다면 AI 대화 자동 요약을 해보세요

북마크 클릭 한번으로 AI 대화 내용 저장하는 방법 (AI코리아24)

EXAONE 3.5 공식 기술 보고서 (LG AI Research)

Ollama 공식 사이트

로컬 LLM을 깔아놓고 매일 고민했다

Ollama를 설치하고, 모델을 받아보고, 몇 번 대화해 보고, 그리고 다시 ChatGPT로 돌아갑니다. 이 루틴을 반복한 분이 저만은 아닐 겁니다. 16GB 맥북에어에서 Qwen 2.5 Coding Instructor 3B, Llama 7B, 여러 소형 모델들을 돌려봤는데 솔직히 형편없었습니다. 한국어 응답은 어색하고, 할루시네이션은 심하고, 속도도 느렸습니다. “로컬 LLM, 대체 어디에 쓰는 거지?”라는 생각이 매일 들었습니다.

그러다 EXAONE 3.5 7.8B를 만났습니다. LG AI Research가 만든 한국어 특화 모델인데, 7B급으로 가볍지만 한국어는 놀라울 정도로 잘합니다. 처음으로 “이거 쓸 만하다”는 느낌을 받았습니다. 하지만 여전히 문제는 남아 있었습니다. 쓸 만한 모델을 찾긴 했는데, 매일 반복적으로 사용할 확실한 용도가 필요했습니다.

그 용도를 찾은 건 전혀 다른 방향에서였습니다. ChatGPT, Claude, Gemini 등 여러 AI와 나눈 대화를 북마클릿으로 마크다운 파일로 저장해 모아두고 있었는데, 파일이 수백 개 쌓이자 원하는 내용을 찾는 것이 거의 불가능해졌습니다. “그때 그 대화에서 뭐라고 했더라?” 이 질문에 답하려면 파일을 하나하나 열어봐야 했습니다. 이 문제를 해결하기 위해 로컬 LLM과 기존에 운영하던 ODS(Obsidian-D1 Sync) 프로젝트를 연결하면서, 지금의 AI 대화 맥락 관리 시스템이 탄생했습니다.

AI 대화 기록이 쌓이면 생기는 진짜 문제

AI와 깊은 대화를 나누다 보면 한 세션에서 수만 토큰이 소모됩니다. 코딩 디버깅, 프로젝트 설계, 아이디어 브레인스토밍 같은 유의미한 작업 기록이 대화 속에 녹아 있는데, 세션이 끝나는 순간 그 맥락에 접근하기가 어려워집니다. ChatGPT에 대화 목록이 남아 있긴 하지만, 수백 개의 대화 중에서 특정 내용을 찾으려면 하나하나 열어봐야 합니다. 실제로 제미나이의 경우 대화 기록이 갑자기 사라져 고객센터에 문의했다는 사례도 있었습니다.

더 근본적인 문제는 맥락의 소실입니다. LLM은 컨텍스트 윈도우 크기에 제한이 있어서, 대화가 길어지면 앞부분의 내용을 점점 잃어버립니다. 세션 끝에서 “이 대화 전체를 요약해줘”라고 요청해도 최근 내용 위주의 편향된 요약만 돌아옵니다. 20만 토큰짜리 긴 대화에서 초반에 내린 핵심 결정이나 중요한 논의는 AI 자체도 까먹어버리는 것입니다.

기존에 Pactify 같은 도구들이 있지만, 이런 도구들은 대화 원문을 저장하는 데 그칩니다. 저장만 하고 요약이나 분류를 하지 않으니, 결국 파일을 직접 열어서 읽어야 하는 것은 마찬가지입니다. 필요한 것은 저장이 아니라 구조화였습니다. 대화 내용을 자동으로 요약하고, 태그를 달고, 어떤 프로젝트에 대한 대화였는지 분류하고, 핵심 결정 사항을 추출하는 시스템이 필요했습니다.

북마클릿으로 저장하고 EXAONE으로 요약하는 구조

uEI0j1Op.webp

전체 흐름은 두 단계로 나뉩니다. 먼저 AI 대화 내용을 마크다운 파일로 저장하는 단계가 있고, 그 다음 저장된 파일을 로컬 LLM으로 자동 요약하는 단계가 있습니다.

첫 번째 단계는 이미 해결했습니다. 크롬 브라우저에서 북마클릿을 만들어 클릭 한 번으로 AI 대화 전체를 마크다운 파일로 다운로드합니다. ChatGPT, Gemini, Claude 등 어떤 AI 채팅이든 적용할 수 있는 방법입니다. 이렇게 저장한 파일들은 옵시디언(Obsidian)에서 관리하면서, ODS 파이프라인을 통해 Cloudflare R2와 D1 데이터베이스에 동기화됩니다. 북마클릿으로 AI 대화를 저장하는 구체적인 방법은 이 글에서 자세히 다루고 있습니다.

두 번째 단계가 이번 프로젝트의 핵심입니다. D1에 저장된 AI 대화 노트들을 로컬에서 돌아가는 EXAONE 3.5 7.8B가 자동으로 읽고 요약을 생성합니다. 핵심 아이디어는 **구간 분할 요약(Chunked Summarization)**입니다. 하나의 긴 대화를 통째로 LLM에 넣는 대신, 약 20턴 또는 3,000에서 5,000 토큰 단위로 구간을 나누어 각각 요약합니다. 그리고 구간 요약들을 다시 합쳐서 전체 요약, 태그, 프로젝트명, 핵심 결정 사항을 자동 생성합니다. 이렇게 하면 긴 대화에서도 초반 맥락이 소실되지 않습니다.

결과물은 D1 데이터베이스에 구조화되어 저장됩니다. 실제로 D1에서 조회하면 각 대화별로 summary(전체 요약), topics(다룬 주제 목록), project(관련 프로젝트명), status(진행 상태) 같은 풍부한 메타데이터가 자동으로 붙어 있는 것을 확인할 수 있습니다. 예를 들어 “뉴스 키워드 프로젝트 (v6)“에 대한 대화였다면, 버전 3.5.0 업데이트 내용, 네이버 크롤링과 키워드 분석 기능 강화, 롱테일 키워드 추출 확대 같은 핵심 정보가 자동으로 정리됩니다.

EXAONE 3.5 7.8B 이 모델이 로컬 요약에 최적인 이유

2026031291048.webp

로컬 LLM, LG 엑사온이 열일하는 모습

16GB 맥북에서 여러 모델을 시도하면서 배운 것이 있습니다. 로컬 LLM은 파라미터 수보다 용도에 맞는 특화가 훨씬 중요하다는 점입니다. Qwen 2.5 같은 다국어 모델은 파라미터가 크더라도 한국어에서 중국어가 섞여 나오는 구조적 문제가 있고, Llama 계열 소형 모델들은 한국어 품질 자체가 실용 수준에 미치지 못했습니다. EXAONE 3.5 7.8B는 이 두 문제를 동시에 해결합니다.

뉴스에서 나오자마자 테스트 했던 중국 모델-중국어와 영어에 특화

EXAONE(Expert AI for Everyone) 은 LG AI Research에서 개발한 대규모 언어 모델입니다. 2024년 12월에 공개된 EXAONE 3.5는 32B, 7.8B, 2.4B 세 가지 크기로 제공되며, 연구 목적으로 누구나 사용할 수 있습니다. 이 모델의 기술적 특성을 살펴보면 이 프로젝트에 왜 적합한지 명확해집니다.

아키텍처 측면에서 EXAONE 3.5 7.8B는 최신 디코더 전용 Transformer 구조를 기반으로 합니다. 32개의 레이어, 32개의 어텐션 헤드, 8개의 KV 헤드를 갖춘 GQA(Grouped Query Attention) 구조로, 추론 효율성이 높습니다. 활성화 함수는 SwiGLU를 사용하고, 피드포워드 차원은 14,336입니다. 위치 인코딩에는 theta 값 1,000,000의 **RoPE(Rotary Position Embedding)**를 적용하여 긴 시퀀스에서도 안정적인 성능을 유지합니다.

컨텍스트 길이는 최대 32,768 토큰을 지원합니다. 이전 모델인 EXAONE 3.0의 4,096 토큰에서 8배로 확장된 것인데, 이 프로젝트에서 대화를 청크로 나누어 처리할 때 한 청크당 3,000에서 5,000 토큰을 사용하므로 충분한 여유가 있습니다. A4 용지 100페이지 분량의 장문도 한 번에 처리할 수 있는 수준입니다.

어휘 사전(Vocabulary)은 102,400개의 토큰으로 구성되어 있으며, BBPE(Byte-level Byte Pair Encoding) 토크나이저를 사용합니다. 중요한 것은 어휘 사전의 약 50%가 한국어, 50%가 영어로 구성되어 있다는 점입니다. 한국어 토큰 비중이 높기 때문에 한국어 텍스트를 처리할 때 토큰 효율이 좋고, 자연스러운 한국어 출력이 기본으로 보장됩니다. 중국어가 섞여 나올 구조적 가능성 자체가 없습니다.

학습 데이터 규모도 인상적입니다. 7.8B 모델은 9조(9T) 토큰으로 사전학습되었는데, 이는 같은 EXAONE 3.5 시리즈의 32B 모델(6.5T)이나 2.4B 모델(6.5T)보다 오히려 많은 양입니다. LG AI Research는 SFT(Supervised Fine-tuning)와 DPO/SimPO 기반의 선호 최적화(Preference Optimization)를 통해 지시 따르기 능력과 인간 선호에 대한 정렬을 강화했습니다.

벤치마크 성과를 보면, EXAONE 3.5 7.8B는 실제 사용 사례(Real-world Use Cases) 벤치마크와 긴 컨텍스트(Long Context) 벤치마크에서 동급 모델 대비 최상위 성능을 기록했습니다. 한국어 벤치마크인 KoMT-Bench, LogicKor에서도 다른 모델을 압도했고, 영어 벤치마크에서도 경쟁력 있는 결과를 보여 이중 언어 능력이 입증되었습니다. 수학 능력과 프로그래밍 능력도 우수한데, 다만 코딩의 경우 Hard 이상 난이도에서는 한계가 있는 것으로 테스트되었습니다.

실제 로컬 환경에서의 효율성도 핵심입니다. Ollama를 통해 실행하면 모델 용량은 약 4.8GB이고, 추론 시 메모리는 약 7GB 수준입니다. 16GB 맥북에서 RAM 점유율이 약 44%에 불과해, 다른 프로그램들을 동시에 돌려도 스왑 없이 안정적으로 운영할 수 있습니다. 발열은 눈에 띄게 올라갑니다. 한 건의 대화 요약에 약 15초에서 1분 정도가 소요되며, 이 프로젝트에서 117개의 기존 대화를 한꺼번에 소급 처리(backfill)하는 작업도 안정적으로 완료되었습니다.

ODS 프로젝트의 현재와 로드맵

2026031291004.webp

로컬LLM 대화내용을 요약한 결과물

ODS(Obsidian-D1 Sync) 프로젝트는 원래 옵시디언의 마크다운 파일을 Cloudflare D1 데이터베이스에 동기화하는 것에서 시작했습니다. 옵시디언에 저장한 노트들을 D1에 올려두면 모바일에서도 검색하고 열람할 수 있고, Worker(ods-mobile)를 통해 업로드와 검색이 가능합니다. AI 대화는 북마클릿으로 md 파일로 저장한 뒤 같은 경로로 D1에 들어갑니다.

현재 기술 스택은 서버 쪽에 Cloudflare D1, Workers, R2를 사용하고, 로컬에서는 Ollama + EXAONE 3.5 7.8B가 돌아갑니다. Python 스크립트(backfill-summaries.py)가 D1에서 AI 대화 노트를 조회하고, tags에 genspark, claude, chatgpt 등이 포함된 것을 필터링해서, 각 대화를 청크로 분할한 뒤 Ollama API(localhost:11434)를 통해 EXAONE에 보내 구간 요약을 생성합니다. 구간 요약을 합쳐 전체 요약, 태그, 프로젝트명, 핵심 결정 사항을 만들고, 결과를 다시 D1에 업데이트합니다.

지금은 1단계인 기존 데이터 소급 처리 단계에 있습니다. D1에 이미 저장된 수백 건의 AI 대화 노트들을 EXAONE으로 소급 정리하는 중입니다. 터미널에서 backfill 스크립트가 실행되면서 POST /api/generate 요청이 순차적으로 처리되고, 각 요청이 15초에서 1분 사이에 200 응답을 받아 정상 완료되는 것을 로그에서 확인할 수 있습니다.

향후 로드맵은 다음과 같습니다. 2단계에서는 D1 테이블을 확장하여 conversation_sessions와 conversation_chunks 테이블을 추가하고, 세션에서 청크로, 청크에서 원문으로 드릴다운하는 검색 구조를 만들 예정입니다. 현재는 LIKE 검색밖에 안 되는데, 구조화된 테이블이 갖춰지면 요약과 태그 기반의 빠른 검색이 가능해집니다.

3단계에서는 브라우저 확장 프로그램을 만들어, MutationObserver로 AI 대화를 실시간 감지하고 20턴마다 자동으로 구간 요약을 생성하는 것을 목표로 합니다. 대화가 끝나면 전체 요약이 자동 생성되어 Worker를 통해 D1에 저장됩니다. Claude를 우선 지원하고 ChatGPT와 Gemini로 확장할 계획입니다.

4단계에서는 Cloudflare Vectorize와 임베딩을 활용한 의미 검색(Semantic Search)을 도입합니다. “지난달에 Python 크롤러 관련해서 Claude랑 얘기한 거” 같은 자연어 질문으로 관련 대화를 찾을 수 있게 됩니다.

5단계에서는 전체 프로젝트를 GitHub에 오픈소스로 공개합니다. 개발 과정 자체를 AI코리아24의 바이브코딩 강좌 시리즈로 발행하고, AI코리아24 도구 디렉토리에 등재하여 “직접 도구를 만드는 사람이 운영하는 사이트”라는 신뢰도를 확보하려고 합니다.

왜 이 조합이 작동하는가

20260312101615.webp

OBS 대화내용 저장도구, 수동으로 북마크릿을 통해 얻은 마크다운 파일을 저장 하고, 검색을 통해 해당 파일을 찾는 역할을 합니다.

20260312102448.webp

OBS의 검색화면

이 프로젝트가 성립하는 핵심 이유는 세 가지입니다.

첫째, 비용이 0원입니다. 로컬 LLM을 쓰기 때문에 API 호출 비용이 없습니다. 수백 건의 대화를 소급 처리해도 전기요금 외에는 추가 비용이 발생하지 않습니다. OpenAI API로 같은 작업을 하면 상당한 비용이 들지만, EXAONE이 맥북에서 직접 돌면서 전부 처리합니다.

둘째, 프라이버시가 보장됩니다. AI와 나눈 대화에는 코드 스니펫, 사업 아이디어, 개인적인 고민 등 민감한 내용이 포함될 수 있습니다. 이것을 외부 API에 보내는 것은 부담스러울 수 있지만, 로컬 LLM은 데이터가 내 컴퓨터 밖으로 나가지 않습니다.

셋째, 요약이라는 작업이 로컬 LLM의 강점에 딱 맞습니다. 로컬 소형 모델이 복잡한 추론이나 코딩에서는 클라우드 모델에 미치지 못하지만, 이미 존재하는 텍스트를 읽고 핵심을 뽑아내는 요약 작업은 7B급 모델로도 충분한 품질이 나옵니다. 특히 EXAONE 3.5 7.8B는 한국어 요약 성능이 7B급 모델 중 최상위라서, 한국어로 된 AI 대화 기록을 처리하는 데 최적의 선택입니다.

로컬 LLM의 확실한 쓸모를 찾기까지

로컬 LLM을 설치해 놓고 쓸 곳을 못 찾는 분들에게 전하고 싶은 이야기입니다. 저도 똑같은 고민을 했습니다. 3B, 7B 여러 모델을 돌려봤지만 실망의 연속이었고, “이걸 왜 깔았지” 하는 생각이 매일 들었습니다.

전환점은 두 가지였습니다. 하나는 한국어에 특화된 모델을 만난 것이고, 다른 하나는 모델의 강점에 맞는 용도를 찾은 것입니다. 범용적으로 뛰어난 모델을 기대하면 로컬 LLM은 항상 실망스럽습니다. 하지만 “한국어 텍스트 요약”이라는 좁은 영역에 집중하면 이야기가 달라집니다. EXAONE 3.5 7.8B는 4.8GB의 가벼운 모델이지만, 이 특정 작업에서는 충분히 실용적인 결과를 만들어냅니다.

이 프로젝트가 구체화되면 GitHub에 올려서 누구나 자신의 AI 대화 기록을 체계적으로 관리할 수 있도록 공개할 계획입니다. 로컬 LLM의 확실한 쓸모를 찾고 있다면, AI 대화 자동 요약을 시도해 보시길 추천합니다. API 비용 0원에, 프라이버시 걱정 없이, 쌓여만 가는 대화 기록을 검색 가능한 지식 자산으로 바꿀 수 있습니다.

#로컬LLM #EXAONE #AI대화요약 #ODS프로젝트 #옵시디언 #CloudflareD1 #Ollama #바이브코딩 #LG엑사원 #AI활용

함께 읽으면 좋은 글

📋 CertKorea

2026년 국가자격증 시험일정을 한눈에 확인하세요. 613개 자격증의 필기·실기 D-day 카운트다운.

자격증 시험일정 확인하기 →
링크가 복사되었습니다!