본문 바로가기

전체 글155

LLM + RAG 프로젝트 2 [1] : 전혀 RAG를 하고있지 않아... 최근 몇 주 동안 PDF와 엑셀 문서를 대상으로 질문에 답하는 시스템을 만들면서 가장 크게 배운 점이 하나 있다. 검색 성능을 개선하는 것과, 내가 생각한 검색 시스템을 제대로 만드는 것은 같은 일이 아니었다. 처음에는 데이터 누수나 정답 직접 참조 같은 문제를 막는 데 많은 시간을 썼다. 질문에 정답이 되는 단서가 너무 노골적으로 들어가 있지는 않은지, 파일명이나 기존 결과를 보고 우연히 맞히는 것은 아닌지 계속 확인했다. 그 덕분에 평가 환경은 점점 안전해졌고, 결과 수치도 조금씩 좋아졌다.문제는 그 과정에서 가장 중요한 질문을 늦게 던졌다는 것이다. 지금 좋아지고 있는 것이 정말 내가 만들고 싶었던 검색 시스템인가? 돌이켜보면 프로젝트는 점점 더 정교한 문서 탐색기로 발전하고 있었다. 파일을 찾고,.. 2026. 6. 6.
LLM + RAG 프로젝트 2 [0] : hit@1 +22pt 개선 1. 개요이번 작업의 목적은 NamuWiki 기반 애니메이션 RAG 데이터셋을 단순히 더 많이 수집하는 것이 아니라, 검색 품질을 개선할 수 있는 데이터 구조로 재정비하는 것이었다.초기에는 RAG 성능 저하의 원인을 벡터DB 설정, reranker 설정, MMR 파라미터, 후보군 크기 같은 검색 파이프라인의 하이퍼파라미터 문제로 의심했다. 그러나 여러 실험을 거치면서 핵심 병목은 검색 알고리즘 자체보다 데이터셋 구조와 embedding text 설계에 있다는 점이 드러났다.특히 하위 문서의 제목이 등장인물, 평가, OST, 기타, 회차, 에피소드처럼 일반적인 이름으로 저장되는 문제가 컸다. 이런 제목은 사람이 볼 때는 상위 작품 문맥을 통해 이해할 수 있지만, dense retrieval에서는 문서의 정.. 2026. 4. 30.
Cloud Run 사용 시 Spring Boot @Schedule 사용 주말이 끝나고서야 주중에 고통받던 원인을 찾았다.특정 Cloud run 인스턴스에서 DB에 저장한 내용을, 다른 Cloud Run인스턴스와 의존성을 가지는 새로운 DB에 특정 정보들을 sync시키려고 했었는데 로그도 안찍히고 DB에서도 조회가 안되어 원인을 찾지 못하고 있었다. 해결하고 보니 아주쉬운 문제였다.@Schedule이 들어있었지만 지정한 시간 내에 원하는 DB에 Sync하는 코드가 들어있는 Cloud Run 인스턴스가 호출이 되지 않는다면절 대 로 작동하지 않는, 사실상 죽어버린 코드였다. 그래서 이 문제를 기존 비동기 job을 위해 사용중인 Cloud Tasks로 해결하기로 했다.단순히 상시 최소 1개의 인스턴스를 띄워두면 해결되는 문제지만그렇게 된다면 지금까지의 비용절감을 위한 아키텍쳐 설.. 2026. 4. 5.
신규 프로젝트 [3] : 설계한 아키텍처를 실제로 작동시키기 오늘은 기능을 추가하거나 비즈니스 로직을 구현한 날은 아니었다.대신, 이전 글에서 정리했던 아키텍처를 실제 클라우드 환경에서 작동하게 만드는 작업에 집중했다.https://arin-nya.tistory.com/168 1 설계부터 초기 구현까지 혼자 맡게 되었다.실제 내부 비즈니스 로직, 도메인 관련된 것은 제외하고 아키텍쳐만 서술한다. 우선 서버리스로 결정하" data-og-host="arin-nya.tistory.com" data-og-source-url="https://arin-nya.tistory.com/168" data-og-url="https://arin-nya.tistory.com/168" data-og-image="https://scrap.kakaocdn.net/dn/c7b4oF/dJMb8Z.. 2026. 3. 26.
신규 프로젝트 [2] : 백엔드 레포 분리를 마치고 https://arin-nya.tistory.com/170 신규 프로젝트 [1] : MVP를 위한 백엔드 설계 및 구현https://arin-nya.tistory.com/168 1 설계부터 초기 구현까지 혼자 맡게 되었다.실제 내부 비즈니스 로직, 도메인 관련된 것은 제외하고 아키텍쳐만 서술한다. 우선 서버리스로 결정하" data-og-host="arin-nya.tiarin-nya.tistory.com저번 글에서 LLM 협업 환경을 위한 설계와 Cloud Run 분리를 위한 구조를 언급했었다.그때는 이렇게 빠르게 우선순위를 두고 진행하게 될 줄은 몰랐다.어느 정도 경계를 나눠두고 시작했기 때문에, 생각보다 쉽게 끝날 거라고 본 것도 있었다. 그래서 이번에는 기존처럼 하나의 레포 안에 백엔드 모듈들을 몰아.. 2026. 3. 23.
신규 프로젝트 [1] : MVP를 위한 백엔드 설계 및 구현 https://arin-nya.tistory.com/168 1 설계부터 초기 구현까지 혼자 맡게 되었다.실제 내부 비즈니스 로직, 도메인 관련된 것은 제외하고 아키텍쳐만 서술한다. 우선 서버리스로 결정하" data-og-host="arin-nya.tistory.com" data-og-source-url="https://arin-nya.tistory.com/168" data-og-url="https://arin-nya.tistory.com/168" data-og-image="https://blog.kakaocdn.net/dna/bmhgic/dJMb9hCZQL9/AAAAAAAAAAAAAAAAAAAAAGM_qS1eJpaop09a3F8TuPTfPtfxst410HbwTy98qWV9/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1788188399&allow_ip=&allow_referer=&signature=DNyirK4csqUAG1kIo7%2FGTH0SeMg%3D 2026. 3. 13.
Cloud Run(Spring Boot) 배포 실패 트러블슈팅 정리 Cloud Run 사용해서 core 백엔드를 배포하려고 했는데 의외로 시간을 많이 잡아먹혔다.우선 가장 큰 문제는 local 환경변수들이 Cloud run에 적용이 안되었던것이고두번째로 큰 문제는 Cloud run 인스턴스가 Cloud SQL 접근 권한이 없어서 flyway가 실패하는 문제였다. 아래는 우리 지피티랑 리서치 하면서 해결하고 정리를 요청한 내용에 대한 산출물이다.컨닝페이퍼로 써야겠다.0) 상황 요약Cloud Run에 Spring Boot 컨테이너를 배포했지만 다음 에러로 Revision 생성이 실패하고 서비스가 Ready 상태가 되지 않음.Cloud Run 배포 실패 메시지:The user-provided container failed to start and listen on the por.. 2026. 3. 4.
신규 프로젝트 [0] : 초기 아키텍쳐 설계 이번에 이직을 하면서 신규 프로젝트의 0 -> 1 설계부터 초기 구현까지 혼자 맡게 되었다.실제 내부 비즈니스 로직, 도메인 관련된 것은 제외하고 아키텍쳐만 서술한다. 우선 서버리스로 결정하게 되었다.초기 스타트업이기에 무작정 EC2/c4a 인스턴스에 올리는건 여러가지 의미의 비용 부분에서 손해가 크다고 생각했다.그래서 docker image로 배포가 가능한 GCP Cloud Run 서비스를 사용하기로 했다. 코드 레벨에서 특정 클라우드 런타임에 강하게 종속되는 구조보다는 컨테이너 기반 실행 환경을 유지하는 것이향후 VM/GKE 마이그레이션 시 유리하다고 판단했다. Cloud Run 환경에서 Redis를 사용할 수 없는 것은 아니지만, MVP 단계에서 VPC 구성 및 상시 인프라 운영 부담을 줄이기 위해.. 2026. 2. 22.
open llm vtuber github repo 후기 결과물 캡쳐이다.생각보다 매우 만족스럽다.데스크톱에 오버랩해서 띄울수 있는 기능이 가장 마음에 든다.현재 상황에서 조금 아쉬운건지금 사용하는 모델이 Hugging Face에서 받은 Gemma2-9b-it-Q4-fp16 모델이라 mcp, Stream 지원이 안된다.OpenAI, Gemini API를 사용하면 조금 더 빠르고 퀄 좋게 사용 가능할 것 같다.뭔가 이렇게 띄워놓고 보니 파인튜닝에 대한 욕구가 샘솟는다. https://github.com/Open-LLM-VTuber/Open-LLM-VTuber GitHub - Open-LLM-VTuber/Open-LLM-VTuber: Talk to any LLM with hands-free voice interaction, voice interruption, an.. 2025. 11. 12.