Obsidian 에 GitHub Trend를 지식베이스로 자동화하기

GitHub Trend를 Obsidian 지식베이스로 자동화하기

소개

매일 GitHub Trending을 확인하는 것이 귀찮아서, GitHub Trending 프로젝트들을 자동으로 수집하고, 핵심 정보를 정리해서 Obsidian 지식베이스에 체계적으로 저장하는 시스템을 구축했습니다. 매일 아침 9시에 자동으로 실행되어 그날의 트렌딩 프로젝트들을 분석하고, Slack으로 Obisidian Deep링크를 보내주도록 구현 했습니다.

영상

전화 번호를 보여주는 전화 화면의 스크린 샷

진행 방법

사용한 도구

  • N8N: 워크플로우 자동화 플랫폼

  • Google Gemini API: README 분석 및 핵심 메시지 추출

  • Google Drive: Markdown 파일 저장소

  • Obsidian: 지식 관리 도구

  • PostgreSQL: 메타데이터 저장

  • Slack: 알림 전송

워크플로우 구성 개념

[매일 9시 실행] → [GitHub 크롤링] → [상세정보 수집] → [AI 요약] 
                                                          ↓
[Slack 알림] ← [Google Drive 저장] ← [Obsidian 노트 생성]

핵심 구현 내용

1. GitHub Trending 크롤링

N8N의 HTTP Request 노드로 GitHub Trending 페이지를 가져와서 HTML Extract 노드로 repository 목록을 추출합니다. 각 프로젝트의 이름, 설명, 언어 정보를 파싱합니다.

2. AI 프롬프트로 핵심 정보 추출

Google Gemini API를 사용해 각 프로젝트의 README와 메타데이터를 분석하여 핵심 메시지를 추출합니다.

사용한 프롬프트:

아래는 GitHub Trend에 올라온 Repository 데이터입니다.
이 데이터를 활용하여 Repository의 핵심 메시지를 정리해주세요.

[입력 데이터]
title: {{ $json.title }}
url: {{ $json.url }}
description: {{ $json.description }}
stars: {{ $json.stars }}
readme: {{ $json.readme }}

[출력 형식]
- ⭐ Stars: (숫자)
- 💻 Language: (주요 언어)
- 📌 핵심 메시지: (이 프로젝트의 본질적 가치, 해결하는 문제)
- 📖 요약: (중요 기능, 사용 사례 등 핵심만)

주의: 기술적 배경이 없어도 이해할 수 있도록 쉽게 설명

3. Obsidian 노트 템플릿

생성되는 Obsidian 노트의 기본 구조:

---
id: [고유ID]
created_at: [생성일시]
type: github-trending
---

# GitHub Trending - [날짜]

[AI가 요약한 프로젝트들이 여기에 추가됨]

4. Google Drive 저장 및 Slack 알림

  • markdown 파일을 Google Drive의 daily 폴더에 자동 저장

  • Slack으로 Obsidian 딥링크와 함께 알림 전송

실제 출력 예시

Obsidian에 저장되는 노트:

---
id: 019468e7-3d21-7842
created_at: 2025-01-21T09:00:00.000Z
type: github-trending
---

# GitHub Trending - 2025-01-21

## langchain4j/langchain4j

- ⭐ Stars: 4,812
- 💻 Language: Java
- 📌 핵심 메시지: Java 개발자들이 LLM 기반 애플리케이션을 쉽게 만들 수 있는 프레임워크. Python의 LangChain을 Java 생태계에 맞게 구현한 것으로, Spring Boot와 완벽하게 통합됩니다.
- 📖 요약: 다양한 LLM 제공자(OpenAI, Claude, Gemini 등) 통합 지원, RAG(검색 증강 생성) 구현, 에이전트 시스템 구축, 벡터 데이터베이스 연동 기능 제공

---

## denoland/deno

- ⭐ Stars: 95,234
- 💻 Language: Rust
- 📌 핵심 메시지: Node.js의 원저자가 만든 차세대 JavaScript/TypeScript 런타임. 보안을 최우선으로 설계되어 기본적으로 파일시스템이나 네트워크 접근이 차단됩니다.
- 📖 요약: TypeScript 기본 지원(별도 설정 불필요), 보안 샌드박스 환경, 내장 포매터/린터/테스트 러너, 단일 실행 파일로 배포 가능

---

## microsoft/PowerToys

- ⭐ Stars: 112,456
- 💻 Language: C++
- 📌 핵심 메시지: Windows 파워유저를 위한 생산성 도구 모음. 마이크로소프트가 공식 제공하는 Windows 기능 확장 프로그램입니다.
- 📖 요약: FancyZones(창 관리), PowerRename(대량 파일명 변경), ColorPicker(색상 추출), File Explorer 미리보기 확장 등 20개 이상의 유틸리티 포함

Slack 알림 메시지:

📅 2025-01-21 Git Trend Report

- 📊 GitHub Trending 보기
  obsidian://open?vault=Research&file=github_trend/daily/GitHub%20Trending%20-%202025-01-21

결과와 배운 점

성과

  • 시간 절약: 매일 30분씩 하던 트렌딩 확인이 완전 자동화

  • 빠른 검색: Obsidian에서 과거 트렌딩 프로젝트 즉시 검색 가능

시행착오와 해결 과정

  1. README가 너무 길 때

    • 문제: 일부 프로젝트의 README가 Gemini API 토큰 제한 초과

    • 해결: README 텍스트를 5000자로 제한하여 전송

  2. 중복 프로젝트 처리

    • 문제: 인기 프로젝트는 여러 날 연속으로 트렌딩에 등장

    • 해결: 날짜별로 별도 파일 생성하여 트렌딩 이력 추적

앞으로의 계획

  1. 주간 리포트 자동 생성: 일주일간 가장 인기 있던 프로젝트 TOP 10 요약

  2. Star 증가율 추적: 빠르게 성장하는 "떠오르는 프로젝트" 발견

  3. 트렌드 대시보드: Obsidian Dataview로 언어별, 주제별 트렌드 시각화

4
1개의 답글

👉 이 게시글도 읽어보세요