← 포트폴리오

LawNGood

POC

LawAndGood의 사건 발굴 및 검토 흐름을 지원하기 위해 만든 법률 뉴스 모니터링 proof of concept입니다.

2인 인턴십 팀 · 2026.02 - 2026.03

Role 백엔드 및 AI 워크플로우 구현
Team 2인 인턴십 팀
Period 2026.02 - 2026.03
Links GitHub 공개 · Live 없음
DjangoNaver News APIBeautifulSoup4Gemini APIPostgreSQLPydantic
GitHub →

배경

LawAndGood 인턴십에서 2인 팀으로 진행한 프로젝트입니다. 수동 키워드 검색에 의존하지 않고, 법률 분쟁 관련 뉴스 신호를 더 빠르고 일관되게 검토할 수 있는 흐름이 필요했습니다.

해결하려던 문제

  • → 수동 검색 중심의 모니터링은 커버리지가 좁고 담당자별 편차가 컸습니다
  • → 기사 단위 검토를 사람이 직접 반복해야 해서 분류 속도가 느렸습니다
  • → 수집, 분류, 사건 검토를 하나의 흐름으로 연결할 내부 도구가 필요했습니다

구현 내용

  • → Naver News API 기반 뉴스 수집 흐름
  • → BeautifulSoup4를 활용한 기사 본문 파싱 및 정제
  • → Gemini 기반 법률 분쟁 관련성 및 리스크 분류 흐름
  • → Pydantic 스키마를 통한 구조화된 LLM 출력 검증
  • → 사건과 기사 매칭 결과를 검토할 수 있는 Django 기반 리뷰 화면
  • → 기사 이력과 분류 결과를 저장하는 PostgreSQL 구조

내가 한 일

  • → Naver News API와 BeautifulSoup4 기반 수집·파싱 흐름을 설계했습니다
  • → Gemini 기반 관련성 분류 파이프라인과 검증 구조를 구현했습니다
  • → 기사와 사건 검토를 연결하는 백엔드 리뷰 흐름을 만들었습니다
  • → 기사 이력, 분석 결과, 검토 상태를 PostgreSQL에 구조화했습니다

아키텍처

수집 → 파싱 → 분류 → 검토, 단계별로 역할을 분리했습니다. Pydantic이 Gemini와 PostgreSQL 사이에서 스키마 검증을 담당해 구조화되지 않은 LLM 출력이 직접 DB에 저장되는 일이 없습니다.

파이프라인

Naver News API
1차 기사 발굴 소스
↓ 수집
BeautifulSoup4
본문 파싱 · HTML 정제
↓ 정제된 텍스트
Gemini API
relevance_score · risk_label · summary
↓ 구조화 출력
Pydantic
스키마 검증 · 저장 안전 확인
PostgreSQL
articles · analyses · cases · case_articles
Django 리뷰 UI
모니터링 · 트리아지 · 사건-기사 매칭

결과

작동하는 POC로 전달했습니다. 수동 뉴스 확인 중심의 작업을 더 구조화된 모니터링 흐름으로 바꾸고, 기사 수집부터 분류와 검토까지 한 시스템 안에서 다룰 수 있도록 만들었습니다.

기술 노트

파이프라인 메모

  • Naver News API를 1차 기사 발굴 소스로 사용합니다.
  • BeautifulSoup4가 본문을 정제하고 분석 가능한 텍스트로 만듭니다.
  • Gemini 분류 결과는 Pydantic 검증 뒤 저장되어 리뷰 흐름으로 연결됩니다.

데이터 모델 스냅샷

articles
- id
- source_url
- title
- published_at

analyses
- article_id
- relevance_score
- risk_label
- summary

cases
- id
- case_name
- status

case_articles
- case_id
- article_id
- match_reason