Langchain 프로젝트 회고

진정·2025년 9월 9일

LangChain으로 주식 정보 수집 프로젝트 진행기 📊

최근 들어 LLM 프레임워크인 LangChain을 활용한 프로젝트를 진행해 보았습니다.
이번 주제는 “주식 정보 수집 및 활용”으로, 단순한 데이터 크롤링이 아니라 언어 모델 기반의 체계적 수집·분석 파이프라인을 만들어보는 것이 목표였습니다.


1. 프로젝트 개요

  • 목표
    단순히 주식 데이터를 가져오는 것을 넘어서,
    → 특정 종목의 뉴스/재무 데이터/실시간 시세를 모아 하나의 구조화된 리포트 형태로 제공

  • 사용 기술 스택

    • LangChain: 데이터 수집·가공 및 LLM 프롬프트 관리
    • OpenAI GPT API: 뉴스 요약 및 자연어 질의응답 처리
    • YFinance + 외부 뉴스 API: 주가와 기업 관련 데이터 수집
    • SQLite: 수집된 데이터 저장 및 검색

2. 시스템 구조

이번 프로젝트는 크게 세 단계로 나누어 진행했습니다.

  1. 데이터 수집 단계

    • yfinance 라이브러리로 일별 주가 데이터 확보
    • 뉴스 API(예: Google News, Yahoo Finance API)로 종목 관련 기사 수집
  2. 데이터 처리 & LLM 분석

    • LangChain의 Document Loader로 뉴스 기사 텍스트 정리
    • Text Splitter를 활용해 문단 단위로 분리
    • GPT 모델을 이용해 기사 요약 및 종목별 긍정/부정 감정 분석 수행
  3. 결과 저장 및 질의응답

    • 분석된 데이터를 SQLite DB에 저장
    • LangChain의 RetrievalQA 체인을 이용해
      “이 기업의 최근 투자 관련 리스크는?” 같은 질문에 답변

3. LangChain 적용 포인트

LangChain의 강점은 단순 API 호출이 아니라 데이터 파이프라인 전체를 연결할 수 있다는 점이었습니다.

  • PromptTemplate: 기사 요약 및 감정 분석을 위한 맞춤 프롬프트 작성
  • LLMChain: “기사 → 요약 → 감정 태그” 흐름 자동화
  • RetrievalQA: DB에 저장된 기사 및 분석 정보를 검색 기반 질의응답으로 연결

덕분에 코드를 모듈화하여 관리할 수 있었고, 새로운 데이터 소스를 추가하는 것도 비교적 간단했습니다.


4. 결과물 & 활용 가능성

프로젝트 결과물은 주식 종목별 자동 요약 리포트 형태였습니다.

예시)

  • 📈 삼성전자 (005930.KQ)

    • 최근 1주 주가 변동률: +2.4%
    • 주요 뉴스 요약:
      • 메모리 반도체 수요 회복 기대
      • AI 서버용 HBM 수요 증가
    • 종합 감정 분석: 긍정
  • 📉 네이버 (035420.KQ)

    • 최근 1주 주가 변동률: -1.1%
    • 주요 뉴스 요약:
      • 글로벌 경기 둔화 우려
      • 광고 매출 성장 둔화
    • 종합 감정 분석: 중립~부정

5. 한계와 개선점

  • 실시간 데이터: 뉴스/주가 API가 제한적이라 완벽한 실시간 대응은 어려웠음
  • 분석 정확도: 단순 감정 분석보다는 금융 특화 LLM(예: BloombergGPT, FinBERT)을 쓰는 것이 더 정확했을 것
  • 시각화 부족: 결과를 단순 텍스트 리포트로 보여주는 대신, 차트나 대시보드와 결합했으면 더 직관적이었을 것

6. 배운 점

  • LangChain은 단순히 LLM을 호출하는 수준을 넘어, 데이터 수집 → 가공 → 분석 → 검색 → 응답의 전 과정을 파이프라인으로 구성할 수 있는 도구라는 걸 체감했습니다.
  • 금융 데이터는 민감하고 복잡하기 때문에, 데이터 품질LLM 프롬프트 설계가 결과 신뢰도를 좌우했습니다.
  • 추후에는 이 구조를 확장해 실시간 알림 시스템이나 Streamlit 대시보드 형태로 발전시켜보고 싶습니다.

7. 마무리

이번 프로젝트는 “LangChain으로 무엇을 할 수 있을까?”를 탐색하는 첫 단계였습니다.
특히 주식 정보처럼 다양한 데이터 소스가 필요한 주제에서, LangChain이 데이터와 모델을 연결하는 허브 역할을 할 수 있다는 점이 가장 큰 인사이트였습니다.

0개의 댓글