iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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, 반도체, 클라우드, 사이버보안, 통신, 플랫폼 (없으면 []) |
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗