Skip to content
vientofactoryPublic

About

국회 입법예고 스냅샷 아카이브 & 디스코드/웹푸시 알림 서비스

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

LawCast

CI

LawCast는 국회 입법예고의 신규 법률안과 기존 법률안의 변동사항을 수집하고 투명하게 공개하는 플랫폼입니다.

이 저장소는 백엔드/프론트엔드 서브모듈을 묶는 루트 오케스트레이션 레이어이며, 역할은 다음과 같습니다.

  • 서비스 전체 실행/배포 진입점 제공
  • 백엔드 + 프론트엔드 개발 동선 통합
  • Docker Compose 기반 운영 구성 관리

이 저장소의 방향성

루트 README는 빠르게 이해하고 바로 실행하기 위한 허브 문서입니다.

  • 백엔드 아키텍처/크론/데이터 무결성 상세는 백엔드 문서에서 관리합니다.
  • UI 구조/페이지/필터 UX 상세는 프론트엔드 문서에서 관리합니다.
  • 의미 검색은 시맨틱 검색 엔진 문서에서 관리합니다.
  • 루트 문서는 시스템 관점(구성, 실행 순서, 운영 스크립트)에 집중합니다.

시스템 구성

flowchart LR
	U[User Browser] --> F[Frontend\nSvelteKit]
	F --> B[Backend\nNestJS]
	B --> R[(Redis)]
	B --> D[(SQLite Volume)]
	B --> O[Ollama Optional]
	B --> P[PAL/NSM Crawling]
	B --> W[Discord Webhook]
Loading

리포지토리 구조

핵심 사용자 가치

  • 입법예고 자동 수집 및 Discord 실시간 알림
  • 로그인 없는 웹훅, 웹푸시 등록 UX
  • 전체 입법예고 조회, 검색/날짜 필터/정렬, 일상 언어로 질의하는 의미 검색
  • AI 요약 브리핑 카드 및 원문 조회 페이지
  • 법률안의 변경과 생애 주기를 투명하게 기록

빠른 시작

1) 서브모듈 준비

git submodule update --init --recursive

2) 로컬 개발 실행

백엔드

cd backend
npm install
npm run start:dev

프론트엔드

cd frontend
npm install
npm run dev

외부 프록시(ngrok 등) 사용 시

ngrok 등 외부 프록시를 통해 개발 서버를 공유하는 경우, Vite HMR WebSocket이 정상 동작하도록 REMOTE_DEV 환경 변수를 설정해야 합니다.

REMOTE_DEV=1 npm run dev

이 설정은 HMR 프로토콜을 ws → wss, 클라이언트 포트를 undefined → 443으로 변경하여 외부 프록시 환경에서 WebSocket 연결이 차단되는 문제를 방지합니다.

환경 변수 상세는 아래 문서를 참고하세요.

Docker Compose 실행 (권장 운영 경로)

docker compose up -d --build

기본 포트

  • Frontend: 127.0.0.1:3002
  • Backend: 127.0.0.1:3001
  • Redis: 127.0.0.1:6399
  • Ollama: 127.0.0.1:11434
  • Semantic Search: 127.0.0.1:8300 (인증 없음, 내부 전용 서비스, 디버깅용 loopback 노출)

시맨틱 검색 사이드카는 semantic-search/artifacts/(인덱스 산출물, gitignore)를 호스트에서 바인드 마운트하고 모델 가중치는 lawcast_semantic_hf_cache 볼륨에 1회 다운로드합니다. 최초 기동 전 인덱스 준비 방법은 semantic-search/README.md의 프로덕션 배포 절을 참고하세요.

중지

docker compose down

운영 스크립트

deploy.sh

  • 전체 롤링 업데이트
./deploy.sh
  • 특정 서비스만 업데이트
./deploy.sh backend
./deploy.sh frontend
  • 서비스 목록 조회
./deploy.sh list

서브모듈 관리 스크립트

  • 서브모듈 원격 정보 동기화: ./submodule_util.sh sync
  • 최신 커밋으로 업데이트: ./submodule_util.sh update
  • 특정 브랜치로 전환/동기화: ./submodule_util.sh branch

문서 맵

라이선스

MIT License

자세한 내용은 LICENSE 파일을 참고하세요.

참고 프로젝트

  • pal-crawl: 국회 입법예고 크롤러 라이브러리
  • pal-webhook: Discord 웹훅 알림 참조 구현

About

국회 입법예고 스냅샷 아카이브 & 디스코드/웹푸시 알림 서비스

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages