🍋 ⚾️ 💻 🎬 🎮

전체 글 133

[자료구조] 트리(Tree)

1️. 트리의 기본 개념2️. 트리의 특징3️. 트리의 종류3.1. 이진 트리 (Binary Tree)3.2. 이진 탐색 트리 (Binary Search Tree, BST)3.3. 균형 트리 (Balanced Tree)3.4. 힙 (Heap)4️. 트리 순회 (Traversal)4.1. 전위 순회 (Preorder)4.2. 중위 순회 (Inorder)4.3. 후위 순회 (Postorder)4.4. 레벨 순회 (Level Order) 트리(Tree) : 계층적(hierarchical) 구조로 데이터를 표현하는 자료구조 (부모–자식 관계로 연결된 노드들의 집합)예시. 파일 시스템이나 조직도처럼 위에서 아래로 가지가 뻗는 구조1. 트리의 기본 개념트리는 노드(Node)와 간선(Edge)으로 구성노드(Node)..

CS/Data Structure 2026.07.15

[RAG] 공공 데이터로 금융 시스템 구현하기 - 실행 결과(평가)

질문 5 ~ 7은 생활법령정보의 금융 관련 100문100답 데이터로 나와있는 질문이기 때문에, 이 데이터로 RAG 시스템의 답변 품질을 평가해 봤다. 시스템은 생활법령정보의 데이터 중 금융 카테고리 콘텐츠를 스크래핑하고 청킹한 뒤, 사용자가 질문하면 관련 문서를 검색(Retrieval)한 내용을 근거로 LLM이 답변을 생성(Generation)하는 구조다. "답변이 그럴듯하게 나온다"는 것과 "실제로 정확하고 충분한 답변이다"는 다른 문제이기 때문에 답변 품질에 대한 평가가 필요하다고 생각했다. 100문100답에는 질문과 함께 공식 답변(원본 답변)도 같이 나오기 때문에 RAG 시스템이 생성한 답변을 원본 답변과 비교 평가해 볼 수 있었다.평가 기준4가지 항목으로 나눠서 평가를 진행했다.평가 항목설명정확..

Tech/Project 2026.07.13

[SQL] Window Function

1. Window Function 이란?행(Row)은 그대로 유지하면서 집계 결과를 계산하는 함수GROUP BY: 여러 행을 한 행으로 합침Window Function: 여러 행을 합치지 않고 그대로 유지(table) Employee > employeedeptsalaryAIT5000BIT6000CIT7000DHR4000EHR4500 2. GROUP BY 비교GROUP BYSELECT dept, AVG(salary)FROM EmployeeGROUP BY dept; deptavg_salaryHR4250IT6000 5개의 행이 2개의 행으로 감소Window FunctionSELECT employee, dept, salary, AVG(salary) OVER(PARTITION BY..

Tech/SQL 2026.07.06

[Claude MCP] Spreadsheet와 연결하기(Read, Write)

요새 Claude를 자주 사용하다 보니 스프레드 시트 작업을 할 때도 창을 옮겨 다니지 않고, 클로드에서 스프레드 시트 작업을 함께 하면 편리할 것 같다는 생각이 들었다. 작년에 인턴을 하며 외부 교육으로 Google Apps Script를 처음 접했고, GAS를 웹 앱으로 배포하면 API 인증 없이 MCP를 사용해서 HTTP 엔드포인트처럼 쓸 수 있다는 것을 알게 되었다. 이거 잘하면 더 다양하게 자동화해볼 수 있을 것 같은데 라는 생각이 들면서 당장 구현해 봤다. (실무에서는 이미 활발하게 쓰고 있겠지..?) 구현해보고 싶은 서비스라고 하기엔 엄청 빈약한 것들이지만 만드는 과정이 너무 재밌다.. 전체 구조Claude Desktop ↓ (MCP)Node.js MCP 서버 ↓ (HTTP P..

Tech/Project 2026.06.30

[RAG] 공공 데이터로 금융 검색 시스템 구현하기 - 실행 결과

질문 5 ~ 7은 원본 데이터의 출처인 생활법령정보 사이트에 100문 100답으로 나와있는 질문이다. 답변도 함께 나와있어서 LLM 답변을 평가할 수 있겠다고 생각했다.(간략하게 평가 내용을 작성했고, 다음 내용에서 좀 더 구체적인 평가와 평가를 기반으로 한 개선 작업을 하게 될 것 같다.) 다른 질문에 대한 답변 방식은 더 고민해봐야 할 것 같다.LLM 답변 질문답변참고1예금자보호제도는 무엇이고, 보호 한도는 얼마인가요?예금자보호제도는 금융회사가 영업정지나 파산 등으로 예금 등을 지급할 수 없는 경우 예금보험공사가 해당 금융회사를 대신하여 예금 등을 지급하는 제도입니다(「예금자보호법」 제1조). 이 제도는 예금자의 권익을 보호하기 위해 마련되었으며, 보호대상 금융회사가 취급하는 예금등에 대해서만 적용됩..

Tech/Project 2026.06.25

[RAG] 공공 데이터로 금융 검색 시스템 구현하기 (2)

벡터 임베딩 → 검색 → Streamlit 구현 및 테스트지난 포스팅(크롤링 → EDA → 청킹)에 이어, chunks.json을 벡터로 임베딩하고 검색 시스템을 구축한 뒤, Upstage API를 연결해 실제 RAG(Retrieval-Augmented Generation) 앱을 만들고 테스트한 과정을 기록했다. 1. 전체 파이프라인크롤링 → EDA → 청킹(chunks.json) ↓벡터 임베딩 (embeddings.npy) → 이 내용부터 시작 ↓FAISS 벡터 인덱스 (faiss_index.bin) ↓Streamlit 검색 UI + LLM 답변 생성 2. 벡터 임베딩2.1 모델 선택한국어 검색에 쓰이는 jhgan/ko-sroberta-multitask (sentence-transformer..

Tech/Project 2026.06.24

[RAG] 공공 데이터로 금융 검색 시스템 구현하기 (1)

금융 법령정보 크롤링 → EDA → 청킹(Chunking)금융 관련 검색 시스템(RAG)을 만들기 위해 생활법령정보 사이트에서 금융 관련 콘텐츠를 수집하고, 임베딩 전 단계인 청킹(Chunking)까지 진행한 과정을 기록했다.1. 프로젝트 개요목표: 생활법령정보(easylaw.go.kr)의 금융 관련 콘텐츠를 검색할 수 있는 Streamlit 기반 검색 페이지 구축전체 파이프라인웹 크롤링으로 원본 데이터 수집EDA를 통한 데이터 구조/품질 파악검색(임베딩)에 적합한 형태로 청킹(Chunking)(이후 진행 예정) 벡터 임베딩 및 검색 시스템 구현2. 데이터 크롤링 2.1 대상 페이지 구조 파악생활법령정보 사이트의 url은 csmSeq(콘텐츠 시퀀스), ccfNo, cciNo, cnpClsNo 등의 파라미..

Tech/Project 2026.06.12

[DB] 트랜잭션 격리 수준 (Transaction Isolation Level)

트랜잭션 격리 수준여러 트랜잭션이 동시에 실행될 때 서로 어떻게 영향을 주고받는지를 제어하는 규칙격리 수준이 높을수록 데이터 정확성이 높아지지만, 동시성(성능)은 낮아지는 트레이드오프가 있다.ㅤREAD UNCOMMITTED (격리 수준 0)가장 낮은 격리 수준으로 다른 트랜잭션이 아직 커밋하지 않은 데이터도 읽을 수 있어서 Dirty Read가 발생 Dirty Read 예시 계좌 이체 시스템에서 A가 잔액을 5천원 → 1천원으로 변경했지만 아직 커밋하지 않았고, B가 1천원을 읽어 처리를 시작한다. 이후 A가 롤백하면 실제 잔액은 5천원인데 B는 없는 1천원을 기준으로 처리한 셈이 된다. READ COMMITTED (격리 수준 1)커밋된 데이터만 읽을 수 있어서 Dir..

CS/Database 2026.04.10

[DB] 트랜잭션(Transaction)

트랜잭션(Transaction)데이터베이스의 상태를 변경하는 하나의 논리적 작업 단위여러 개의 쿼리를 묶어서 "모두 성공하거나, 모두 실패하거나" 둘 중 하나만 가능하게 만드는 매커니즘 트랜잭션 흐름📌 트랜잭션이 왜 필요할까?예시) 은행 계좌 이체"A가 B에게 10만원을 송금하는 경우로 생각해보자." 첫 번째 쿼리: A 잔액 -10만원 두 번째 쿼리: B 잔액 +10만원만약 첫 번째 쿼리가 실행된 직후 서버가 죽으면 A의 돈은 차감됐는데, B에게는 입금이 안되는 문제가 발생한다.따라서, 트랜잭션은 이 두 쿼리를 하나의 단위로 묶어서 둘 다 성공 or 둘 다 실패 로 만들어준다. 트랜잭션 특징ACID 속성Atomicity(원자성)트랜잭션의 모든 작업은 전부 성공하거나 전부 실패하며, 중간 상태는..

CS/Database 2026.04.10

[자료구조] 힙(Heap)

힙(Heap)힙은 우선순위 큐(Priority Queue)를 구현하기 위해 고안된 완전 이진트리(Complete Binary Tree) 형태의 자료구조(여러 개의 값 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 최적화되어 있음) 힙의 특징반정렬 상태 (느슨한 정렬): 부모 노드와 자식 노드 간에만 크기 관계가 성립하며, 형제 노드 간의 순서는 정해져 있지 않다.완전 이진 트리: 마지막 레벨을 제외한 모든 노드가 꽉 차 있어야 하며, 마지막 레벨은 왼쪽부터 차곡차곡 채워진 형태이다.중복 허용: 일반적인 이진 탐색 트리(BST)와 달리 중복된 값을 허용한다. 힙의 종류최대 힙 (Max Heap): 부모 노드의 키값이 자식 노드의 키값보다 크거나 같은 힙 (루트 노드가 전체에서 가장 큰 값)최소 힙 (Min ..

CS/Data Structure 2026.02.26
728x90
반응형