| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 오블완
- kotlin coroutine
- aws
- tucker의 go 언어 프로그래밍
- 바이브코딩
- Spring
- SRE
- minikube
- MySQL
- CKA 기출문제
- go
- CloudWatch
- docker
- 공부
- Kubernetes
- kotlin
- 코틀린 코루틴의 정석
- AWS EKS
- AI
- PETERICA
- HARNESS
- CKA
- Rag
- golang
- 티스토리챌린지
- LLM
- Claude
- Java
- 정보처리기사 실기 기출문제
- 기록으로 실력을 쌓자
- Today
- Total
목록PETERICA (784)
피터의 개발이야기
ㅁ 들어가며이전 글에서 맥미니 위에 RAG를 올려 1,000개의 내 블로그 문서를 검색하게 만들었다.최근 Gemma 4 E2B 모델의 등장으로 온디바이스AI가 가능해 보였다.그래서 내 폰인 Galaxy S23 Ultra에 RAG를 구성해 보았다.온디바이스 RAG는 “작게 시작해서 한 사이클을 끝까지 닫는 것”이 핵심이다.서버 구조를 옮기는 게 아니라, 폰에서 가능한 가장 얕은 구조로 완성해야 한다.ㅁ AI Edge Gallery 테스트내 폰에서 정말 될까?테스트해 방법을 찾아 보았다.Google Play Store에는 AI Edge Gallery라는 앱이 있어 Gemma 4 E2B를 받아 테스트 해 보았다.ㅇ 추론 속도는 CPU 기준 12~20 tok/s — RAG 용도에 충분했다. ㅁ 기술스택기기: G..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며오늘의 글은 [AI] QAT(Quantization-Aware Training) — 양자화를 가장 똑똑하게 하는 방법에서 공부한 내용을 실제 적용한 사례이다. 엣지 RAG의 임베딩 모델은 폰 안에 들어가야 한다.그런데 HuggingFace에서 받은 원본은 448MB다.113MB에 맞춰야 APK 크기도 살고, 메모리도 산다.이 글은 multilingual-e5-small-ko-v2를 ONNX INT8로 줄이고, 품질이 얼마나 보존되는지 재본 기록이다.파이프라인은 네 단계. 코드는 거의 한 줄씩이다. ONNX(Open Neural Network Exchange)는 파이토치(PyTorch), 텐서플로우(TensorFlow) 등 서로 다른 딥러닝 프레임워..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며peterica-edge-rag(엣지 RAG) 작업을 진행하면서 Pythone의 중요성을 다시 한번 확인하였다. 추론·임베딩·양자화·프롬프트가 한 시스템 안에 섞이면 선택지가 많아 보이지만,실제로 붙여보면 도구가 사는 언어가 먼저 결정을 내린다.이 글은 엣지 RAG를 만들 때 필요한 AI 도구들을 정리하고, 왜 Python이 그 접합점이 되는지 보는 지도다.서버 스택을 Next.js(TypeScript)에서 FastAPI(Python)로 옮긴 내 경험을 정리하였다. ㅁ 엣지 RAG에 필요한 AI 도구 4 영역엣지 RAG는 네 개의 컴포넌트로 나뉜다.각 영역마다 표준에 가까운 도구가 몇 개 있고, 대부분 같은 언어 생태계에 산다. ㅇ 추론 엔진 (..
ㅁ 들어가며이전 글에서 나는 맥미니 위에 1,000개 블로그 문서를 검색하는 RAG 시스템을 만들었다.bge-m3로 임베딩하고, sqlite-vec로 벡터 검색하고,exaone3.5로 답변을 생성하는 구조였다.마지막에 이렇게 썼다."1,000개 문서는 보유만으로는 창고. 검색이 붙는 순간 두 번째 뇌가 된다." 그런데 이 두 번째 뇌에는 한계가 있었다.맥미니가 켜져 있어야만 작동한다.와이파이가 없으면, 서버가 내려가면, 내 지식에 접근할 수 없다."기술 선택은 항상 '지금의 문제 크기'에 맞춰야 한다"고 했는데지금의 문제는 검색이 특정 장소에 묶여 있다는 것이다. 그래서 질문을 바꿨다. 서버 없이, 내 손 안에서 검색과 응답이 가능할까? ㅁ 왜 모바일인가ㅇ 서버 의존에서 벗어나기맥미니 RAG는 잘 돌아..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며지난 글, [AI] 1,000개 블로그 글 Wiki에 로컬 RAG 챗봇 붙이기 — peterica-blog-chat에서 sqlite-vec에 대해서 언급하였다.sqlite-vec는 파일 하나(wiki.db)가 벡터 스토어의 전부이다.ㅁ 왜 sqlite-vec를 선택하였는가?ㅇ DB와 인덱스가 파일 하나(`data/wiki.db`)로 구성된다. → 별도의 서버 없이도 하나의 파일만으로 데이터와 검색 구조를 함께 관리할 수 있다.ㅇ 백업과 복구가 단순하다. → 백업은 파일을 복사(`cp`)하면 끝이고, 문제가 생기면 파일을 교체하는 방식으로 롤백이 가능하다. 운영 복잡도가 매우 낮다.ㅇ 별도의 서버나 런타임이 필요 없다. → sqlite 확장 형..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며나는 AI를 잘 운영하는 개발자로 성장하기위해 노력하고 있다.그래서 지난 글 [AI] 1000개 블로그 글을 LLM Wiki로 만든 이야기 — Karpathy의 아이디어를 실전에 적용하다에서1,000개 문서짜리 제 Obsidian Wiki를 만들었다.이번엔 그 위에 로컬 RAG 챗봇을 올렸다.이 글은 그 구축 기록이고, 동시에 왜 Vercel을 버리고 맥미니 + Cloudflare Tunnel로 갔는지에 대한 기록이다. 내가 공부한 llm모델의 임베딩, 로컬 시스템으로 연동하여 나에게 필요한 백터디비의 사양을 파악하는 연습을 하기 위해서다. 우리집 맥미니 M1 8GB에서 local LLM으로 가동 중이다. peterica-blog-chat ㅁ 요..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며예전에 "Claude Code를 소프트웨어처럼 설계하기 — 프롬프트 하네스 아키텍처" 라는 글에서 정리한 적이 있다.프롬프트가 코드이고, 스킬이 함수이며, 에이전트가 마이크로서비스라는 관점이다.그 위에서 블로그 1,000편을 스크래핑하고 위키로 변환하는 파이프라인을 운영했다. 시간이 지나니 스킬이 17개, 18개, 20개로 늘어났다.한편으로는 좋았지만, 다른 한편으로는 "어떤 스킬을 언제 불러야 하는지" 를 나조차 자주 잊어버렸다. "이 초안 팩트체크도 하고 폴리싱도 하고 발행준비도 해줘"라고 말하면,Claude가 어떤 스킬을 어떤 순서로 부를지 매번 다르게 해석했다. 그래서 하나 더 만들었다.이번엔 스킬을 부르는 스킬 - FDE(Forward D..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며오늘 회의 시간에 나온 질문이다. "왜 Argo CD로 다 안 하고 Jenkins로 빌드하죠?" 쿠버네티스 도입 초기 팀에서 자주 나오는 질문이다.Argo CD 이름에 "CD"가 박혀 있으니 CI/CD 풀스택으로 오해하기 쉽지만, 실제로는 그렇지 않다. 결론부터 말하면 이미지 빌드는 Jenkins, 클러스터 배포는 Argo CD 다.둘은 경쟁재가 아니라 조합재다. 이 글은 그 역할 분리가 왜 자연스러운 설계인지 정리한다. ㅁ 역할이 애초에 다르다 — CI vs CD Jenkins와 Argo CD는 파이프라인에서 서로 다른 영역을 책임진다.Jenkins — 코드 변경 → 빌드 → 테스트 → Docker 이미지 생성 → 레지스트리 푸시. CI (Con..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며이 문서는 이전 블로그 글에서 설명한 각 설계 패턴을 실제로 구현할 때 사용한 프롬프트 예시를 모아둔 것이다. 그대로 복사해서 쓸 수 있도록 작성했다. 1. CLAUDE.md — 글로벌 행동 규칙 정의프롬프트: 글로벌 규칙 파일 작성 요청~/.claude/CLAUDE.md에 다음 규칙을 추가해줘:1. 코드 수정 전 반드시 해당 파일을 Read 한 후 Edit 한다2. git commit은 명시적 요청 없이 절대 하지 않는다3. 임시 파일은 작업 완료 후 반드시 삭제한다4. 테스트가 있는 프로젝트에서는 코드 수정 후 테스트를 실행한다5. feature 브랜치에서만 작업하고, main에 직접 커밋하지 않는다프롬프트: 프로젝트 CLAUDE.md 작성이..
[AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며Claude Code를 처음 쓸 때는 대화창에 "이거 만들어줘"라고 치면 됐다.하지만 1,000개 블로그 글을 자동으로 스크래핑하고, 요약하고, 위키로 변환하는 파이프라인을 만들면서 한계를 느꼈다.매번 같은 맥락을 설명해야 했고, 세션이 바뀌면 전부 잊어버렸고, 반복 작업에 비싼 모델의 토큰을 낭비했다. 그래서 접근을 바꿨다. Claude를 "대화 상대"가 아니라 "프로그래밍 가능한 실행 엔진"으로 설계하기로 했다.프롬프트가 코드이고, 스킬이 함수이며, 에이전트가 마이크로서비스인 구조다. 이 글에서 그 설계를 정리한다. 1. 계층적 프롬프트 주입 — 설정 파일처럼 쓰는 CLAUDE.mdClaude Code는 대화 시작 시 여러 레벨의 설정 파일을..
