본문 바로가기

전체 글26

LLM이 만든 SQL을 그대로 믿으면 안 되는 이유 — 자연어 선수 검색 만들기 해당 프로젝트의 간략 소개:KBO 선수 기록을 조회하고 시각화해주는 개인 사이드 프로젝트입니다.선수 카드, 인생 그래프, 퍼스널 구장 등으로 통계를 보여주다가, 최근 여기에 AI 기능 3종(뉴스 검색+챗봇, 자연어 선수 검색, 경기 리뷰 자동 생성)을 추가했습니다.해당 프로젝트를 진행하면서 겪었던 몇 가지 문제들에 대해 공유할 예정입니다. 자연어 → 구조화 쿼리로 바꾸는 흐름자연어 질문 ↓ ① LLM(gpt-4o-mini)이 질문을 JSON으로 변환 {relevant, positionType, year, teamCode, conditions: [{field, operator, value}], ...} ↓ ② JSON의 field 값을 화이트리스트와 대조해, 허용된 것만 Query.. 2026. 7. 11.
운영 중인 서비스에 RAG를 붙여봤다 — KBO 뉴스 검색 해당 프로젝트의 간략 소개:KBO 선수 기록을 조회하고 시각화해주는 개인 사이드 프로젝트입니다.선수 카드, 인생 그래프, 퍼스널 구장 등으로 통계를 보여주다가, 최근 여기에 AI 기능 3종(뉴스 검색+챗봇, 자연어 선수 검색, 경기 리뷰 자동 생성)을 추가했습니다.해당 프로젝트를 진행하면서 겪었던 몇 가지 문제들에 대해 공유할 예정입니다. 제가 만들고 있는 KBO 선수 통계 서비스 Let's Baseball에 최근 AI 뉴스 검색/챗봇 기능을 추가했습니다. KBO 공식 뉴스를 자동으로 수집해서, 사용자가 "요즘 성적이 가장 좋은 타자는 누구야?" 같은 자연어로 물으면 관련 기사 또는 해당 선수의 성적 데이터를 찾아 답변해주는 기능입니다. (현재는 2025년까지의 선수 데이터만 업데이트됨.)이 글에서는 .. 2026. 7. 10.
오픈 레이크하우스 구축기 3편: 2개월의 사내 MVP, 그 시작과 끝 시리즈 소개사내 AWS 비용 분석 솔루션의 1차 MVP를 만들면서 데이터 레이크하우스 아키텍처를 도입한 경험을 3편에 걸쳐 공유합니다.1, 2편이 기술적인 구축과 최적화 과정이었다면, 3편은 그 기술이 어떤 비즈니스 맥락에서 시작됐고, 어떤 결과로 이어졌는지를 다룹니다.시리즈 목차1편왜 이 조합인가? 개념 이해 + Docker Compose 로컬 환경 구축2편쿼리 응답 속도 최적화: 1.6초대에서 191ms로3편 (현재)사내 MVP 적용기: 2개월의 시작과 끝 과제의 시작: 왜 이걸 만들게 됐나이 프로젝트는 개인 사이드 프로젝트가 아니라 회사에서 요청한 과제였다.해당 과제의 산출물을 통해 "지금 쓰고 있는 외부 솔루션과 비슷하거나 더 나은 걸 우리가 직접 만들 수 있는지" 검증하는 단계였다.요구사항은 명.. 2026. 6. 19.
오픈 레이크하우스 구축기 2편: 쿼리 응답 속도 1.6s → 191ms, 그 사이의 시행착오 시리즈 소개사내 AWS 비용 분석 솔루션의 1차 MVP를 만들면서 데이터 레이크하우스 아키텍처를 도입한 경험을 3편에 걸쳐 공유합니다.1편에서 환경을 구축했다면, 2편에서는 그 환경에서 실제로 부딪힌 성능 문제와 해결 과정을 다룹니다.시리즈 목차1편왜 이 조합인가? 개념 이해 + Docker Compose 로컬 환경 구축2편 (현재)쿼리 응답 속도 최적화: 1.6s에서 191ms로3편사내 MVP 적용기: 1차 버전 개발 과정문제 상황: 생각보다 느린 응답 속도1편에서 구축한 환경으로 실제 CUR 2.0 데이터를 조회해보니, 사용자 요청부터 서버 응답까지 걸리는 시간이 최대 2945ms, 평균적으로도 1초 후반대였다.일반적인 API 응답 시간이 0.1초 이내인 걸 생각하면 확연히 느린 수치였다. 그래서 ".. 2026. 6. 19.
오픈 레이크하우스 구축기 1편: Trino + Hive Metastore + Iceberg, 왜 이 조합인가? 시리즈 소개사내 AWS 비용 분석 솔루션의 1차 MVP를 만들면서 데이터 레이크하우스 아키텍처를 도입한 경험을 3편에 걸쳐 공유합니다.AWS CUR 2.0 데이터(수백만 건의 비용 레코드)를 효율적으로 저장하고 조회하는 과정에서Trino + Hive Metastore + Iceberg 조합을 선택하게 된 배경부터 실제 적용까지 담았습니다. 시리즈 목차1편 (현재)왜 이 조합인가? 개념 이해 + Docker Compose 로컬 환경 구축2편쿼리 성능 최적화: 1~2.9초에서 250ms로 줄인 방법3편사내 MVP 적용기: 1차 버전 개발 과정배경: 왜 새로운 스택이 필요했나사내 AWS 비용 분석 솔루션의 1차 MVP를 만들면서 AWS CUR(Cost and Usage Report) 2.0 데이터를 다루게 됐.. 2026. 6. 19.
n8n을 이용한 Confluence 글 자동 게시 1. n8n이란?n8n(pronounced "n-eight-n")은 노드 기반 워크플로우 자동화 플랫폼이다.코딩 없이 시각적 인터페이스를 통해 다양한 서비스와 애플리케이션을 연결하여 자동화 워크플로우를 구축할 수 있다.요즘은 비개발자들도 n8n을 통해 자동화 워크플로우를 많이 사용하고 활용한다는 것을 듣고, 사내에서도 활용할 수 있는 면에서 사용되면 좋겠다는 생각을 하게 되었다.사내에서 모든 팀과 팀원들은 Confluence를 통해 문서화하고 보고 업무를 하고 있어서, 조금 더 편하게 접근하고 도움을 줄 수 있는 부분이 없을까 생각하게 되었고, 매주 주간업무보고를 위해 생성되는 주간 업무 페이지를 자동으로 생성하는 간단한 워크플로우를 만들어보기로 했다.2. n8n 초기 세팅우선, n8n을 설치하고 초기 .. 2026. 2. 14.