iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
IT 뉴스·정부 정책 브리핑 웹페이지 (Node.js + HTML/CSS/JS)
Translation pending
MediaGitHub @psn9740-0201OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗IT 뉴스(AI·반도체·클라우드·사이버보안·통신·플랫폼)와 정부 정책(과기정통부·산업부·행안부) 소식을 보여주는 웹페이지입니다.
과제2/
├── backend/ ← 백엔드 (Node.js)
│ ├── server.js 웹 서버: API 제공 + frontend 파일 전달
│ ├── newsService.js RSS 수집 · 기준일 필터 · 분야 분류 · 기사 선정 · 10분 캐시
│ ├── bannerWriter.js 메인 배너 3줄 작성 (OpenAI AI 분석 또는 자동 집계) · 30분 캐시
│ ├── analyzer.js 분야/부처 판별, 업계 영향 생성 (키워드 규칙)
│ ├── aliasStore.js 별칭 DB를 읽어 표준명 찾기 (findEntities, canonicalize, getEntry)
│ └── rssParser.js RSS(XML) 파서
├── api/ ← Vercel 배포용 함수 (backend/server.js의 요청 처리 함수를 그대로 사용)
│ ├── briefing.js GET /api/briefing
│ └── banner.js GET /api/banner
├── frontend/ ← 프론트엔드 (브라우저)
│ ├── index.html 화면 구조
│ ├── style.css 디자인
│ └── app.js API 호출 후 배너·카드 표시, 기준일 선택, 분야 필터, 새로고침, 계절별 헤더(마스코트·효과)
├── data/
│ └── aliases.json ← 별칭 DB (기업·기관·기술의 여러 표기 → 표준명)
├── tests/
│ ├── dedupe.test.js ← 중복 기사 판별 회귀 테스트 (npm test)
│ ├── classify.test.js ← 분야 분류 회귀 테스트 (npm test)
│ └── fixtures/ 실제 기사 제목 23쌍(real-pairs.json), 분류용 실제 기사 24건(classify-articles.json)
├── .env ← 실제 API 키 (직접 작성, GitHub에 올라가지 않음)
├── .env.example ← 필요한 환경변수 이름 안내 (업로드용, 키 없음)
├── .gitignore ← node_modules, .env, 로그, 빌드 결과물 등 업로드 제외
├── vercel.json ← Vercel 설정 (frontend 폴더를 화면으로 제공, 함수에 data 폴더 포함)
├── package.json
├── package-lock.json
└── README.md
| 출처 | 주소 | 용도 |
|---|---|---|
| 전자신문 RSS | https://rss.etnews.com/Section901.xml | IT 뉴스 |
| ZDNet Korea RSS | https://feeds.feedburner.com/zdkorea | IT 뉴스 |
| 연합뉴스 산업 RSS | https://www.yna.co.kr/rss/industry.xml | 산업·정책 뉴스 |
| Google 뉴스 RSS 검색 | https://news.google.com/rss/search?q=... | 분야별·부처별 최신 기사 보충 |
Node.js 설치 확인 (18 이상 필요)
터미널을 열고 다음을 입력합니다. v18.x.x 이상이 나오면 됩니다.
node -v
설치되어 있지 않다면 https://nodejs.org 에서 LTS 버전을 설치하세요.
프로젝트 내려받기 및 폴더로 이동
git clone <이 저장소 주소>
cd <저장소 폴더 이름>
패키지 설치 (배너 AI 분석용 OpenAI SDK openai 하나만 설치됩니다)
npm install
설치하지 않아도 사이트는 동작하며, 이때 배너는 '자동 집계'로 표시됩니다.
(선택) 배너 AI 분석 켜기 — .env 파일에 API 키 넣기
.env.example을 복사해 .env를 만들고(이미 있으면 생략), OPENAI_API_KEY= 뒤에 키를 붙여 넣습니다.
cp .env.example .env
OPENAI_API_KEY=sk-...본인 키...
OPENAI_MODEL=gpt-4o-mini
.env를 자동으로 읽습니다 (Node.js 내장 process.loadEnvFile, 별도 패키지 불필요).서버 실행
npm start
또는 node backend/server.js
✅ 서버 실행 중: http://localhost:3000 이 보이면 성공입니다.
바로 아래 줄에 배너 AI 분석: 켜짐 (모델 gpt-4o-mini)이 보이면 .env의 키가 정상적으로 읽힌 것입니다.
브라우저에서 열기 http://localhost:3000 에 접속합니다. 첫 로딩은 뉴스를 모으느라 몇 초 걸릴 수 있고, AI 분석을 켰다면 배너 작성에 수십 초가 더 걸릴 수 있습니다.
사용하기
종료: 서버를 실행한 터미널에서 Ctrl + C
포트 3000이 이미 사용 중이면
PORT=4000 npm start로 실행하고 http://localhost:4000 에 접속하세요.frontend/index.html을 더블클릭해서 바로 열면 API를 호출할 수 없으므로, 반드시 서버를 통해 접속하세요.
vercel.json이 frontend/를 화면 폴더로 지정하고, api/briefing.js·api/banner.js가 서버리스 함수로 실행됩니다.OPENAI_API_KEY(필요하면 OPENAI_MODEL)를 추가하고 다시 배포합니다.
.env는 GitHub에 올라가지 않으므로 Vercel에는 이 방법으로만 키를 넣습니다. 키가 없으면 배너는 '자동 집계'로 표시됩니다.로컬 실행(npm start)은 Vercel 설정과 관계없이 그대로 동작합니다.
data/aliases.json)같은 대상을 가리키는 여러 표기(예: 北·북한, Google·구글, KERI·전기연·한국전기연구원)를 표준명 하나로 묶는 목록입니다.
별칭은 이 JSON 파일에서만 관리하며, 항목을 추가·수정한 뒤 서버를 다시 시작하면 반영됩니다 (코드 수정 불필요).
{ "canonical": "SK하이닉스", "aliases": ["하이닉스", "SK hynix"], "type": "company", "categories": ["반도체"] }
| 필드 | 설명 |
|---|---|
canonical | 표준명 (항목마다 고유) |
aliases | 별칭 목록. KT처럼 영문으로 시작·끝나는 별칭은 앞뒤가 영문·숫자가 아닐 때만 일치 (SKT 안의 KT는 무시) |
type | company, government, organization, technology, country 중 하나 |
categories | 관련 분야: AI, 반도체, 클라우드, 사이버보안, 통신, 플랫폼 (없으면 []) |
This is the beginning of the README. Read the rest at the original. Read the full README ↗