RSS와 깃헙 액션(Github action)

JEONGYUJIN·2025년 1월 15일
1

RSS란 무엇일까요?

RSS(Really Simple Syndication)는 웹사이트의 콘텐츠 업데이트를 쉽게 확인할 수 있게 해주는 피드 형식입니다. XML 형식으로 데이터를 제공하는데, 실제로 한번 살펴볼까요?

티스토리의 RSS 피드를 브라우저에서 열어보면 이런 형태로 되어있습니다:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>블로그 제목</title>
        <link>https://example.tistory.com</link>
        <item>
            <title>첫 번째 글</title>
            <link>https://example.tistory.com/1</link>
            <description>글 내용...</description>
            <pubDate>Wed, 15 Jan 2025 12:00:00 +0900</pubDate>
        </item>
        <!-- 더 많은 item들... -->
    </channel>
</rss>

RSS의 장점 |

  • 실시간으로 콘텐츠 업데이트를 확인할 수 있음
  • 표준화된 형식이라 프로그래밍으로 쉽게 처리 가능
  • 여러 사이트의 업데이트를 한 번에 모아볼 수 있음

RSS 피드 파싱하기

RSS 피드를 파싱한다는 것은 이 XML 데이터를 우리가 사용하기 좋은 형태로 변환하는 것을 말합니다. Node.js에서는 rss-parser 라이브러리를 사용하면 아주 쉽게 할 수 있어요.

import Parser from 'rss-parser';
const parser = new Parser();

// RSS 피드 파싱하기
const feed = await parser.parseURL('https://example.tistory.com/rss');

console.log(feed.title); // 블로그 제목
feed.items.forEach(item => {
    console.log(item.title); // 각 글의 제목
    console.log(item.link);  // 각 글의 링크
});

파싱된 결과는 이런 형태의 JavaScript 객체가 됩니다!

{
    title: "블로그 제목",
    items: [
        {
            title: "첫 번째 글",
            link: "https://example.tistory.com/1",
            pubDate: "2025-01-15T12:00:00+09:00"
        },
        // 더 많은 글들...
    ]
}

GitHub Actions 가이드

GitHub Actions는 GitHub에서 제공하는 자동화 도구입니다. CI/CD(지속적 통합/배포)를 위한 도구지만, 우리처럼 다른 자동화 작업에도 활용할 수 있죠.

GitHub Actions의 주요 구성 요소

  1. Workflow (워크플로우)

    • .github/workflows 디렉토리의 YAML 파일로 정의
    • 하나 이상의 Job으로 구성
    • 특정 이벤트나 스케줄에 의해 트리거됨
  2. Event (이벤트)

    • 워크플로우를 실행시키는 트리거
    • 예: push, pull request, 스케줄 등
    on:
      push:
        branches: [ main ]
      schedule:
        - cron: "0 */1 * * *"  # 매 시간마다 실행
  3. Jobs (작업)

    • 독립된 가상 머신이나 컨테이너에서 실행
    • 여러 Step으로 구성
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v3
          - name: Run a script
            run: npm start
  4. Steps (단계)

    • Job 안에서 순차적으로 실행되는 작업 단위
    • Action을 사용하거나 shell 명령어를 실행
    steps:
      - name: Check out repository
        uses: actions/checkout@v3
      
      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16'

GitHub Actions의 장점

  1. 통합성: GitHub와 완벽하게 통합되어 있어 별도의 설정이 거의 필요 없습니다.
  2. 무료!: 공개 저장소는 무제한 무료, 비공개 저장소도 매월 일정량 무료
  3. 다양한 환경: Linux, Windows, macOS 등 다양한 실행 환경 제공
  4. 재사용성: 다른 사람이 만든 Action을 마켓플레이스에서 가져다 쓸 수 있음

환경 변수와 시크릿

GitHub Actions에서는 민감한 정보를 시크릿으로 저장하고 사용할 수 있습니다:

steps:
  - name: Use a secret
    env:
      SUPER_SECRET: ${{ secrets.GITHUB_TOKEN }}
    run: echo "Using secret"

💡 Tip: GitHub Actions에서 자주 사용되는 환경 변수들

  • GITHUB_WORKSPACE: 워크플로우의 작업 디렉토리
  • GITHUB_TOKEN: GitHub API 접근용 토큰
  • GITHUB_REPOSITORY: 현재 저장소 이름
profile
일단 하고 보자 (펠리컨적 마인드 ㅠㅠ)

0개의 댓글