All Articles

개츠비(gatsby)로 스팀잇 블로그 만들기

스팀잇 블로그 서비스티스토리워드프레스처럼 내가 원하는 테마로 UI를 바꿀수가 없습니다. 그리고 카테고리 분류도 안 됩니다. 구글 통계/구글 광고도 사용할 수 없습니다. 그래서 아쉬운 점이 많아요.

이번에도 스팀잇 글로 깃허브 페이지 블로그를 만들었습니다. 블로그 UI(테마)는 오픈소스에서 찾아서 적용하고, 카테고리는 스팀잇에 글 제목이 [카테고리] 제목 형태면 분류하도록 했습니다. 참고로, 이전 글 [Hexo Steem 개인 블로그 만들기]에서도 깃허브 페이지(GitHub Pages)로 블로그 만들기 포스팅을 한번 했었습니다.

깃허브 페이지(GitHub Pages)는 무료입니다. 그래서 개인 블로그에 많이 사용됩니다. 깃허브 페이지에 블로그 배포하는 방법은 Jekyll, Hexo, Gatsby 등이 있습니다. 대표적으로 [카카오 기술 블로그]가 깃허브 페이지로 운영되고 있습니다.

이번에는 Gatsby를 사용하여 깃허브 페이지에 블로그를 만들어 보겠습니다. Gatsby는 빌드 속도가 매우 빠릅니다. 그리고 ReactGraphQL을 사용하기 때문에 사이트가 가볍고 빠릅니다.

참고로 Hexo와 Gatsby는 둘 다 정적(HTML) 사이트 생성기입니다. Hexo는 모든 페이지(HTML)을 생성하는 반면, Gatsby는 React와 GraphQL를 사용하여 사이트를 SPA로 만듭니다.


Gatsby를 이용하여 만든 블로그는 아래 URL로 접속하면 볼 수 있습니다.


아래부터는 스팀잇을 Gatsby 블로그로 생성하고, 깃허브 페이지에 배포하는 과정을 기록한 글입니다. Gatsby 사용 방법을 더 자세히 알고 싶으면 Gatsby 공식 튜토리얼을 참고하기 바랍니다. 그리고 블로그 소스는 깃허브(https://github.com/anpigon/blog)에 모두 공개되어있습니다.


* * *

개츠비(Gatsby) 사이트 생성하기


먼저 Gatsby CLI를 설치한다. 나는 주로 yarn을 사용한다. 그래서 yarnnpm 두 가지 방법을 모두 기술하였다.

$ yarn global add gatsby-cli

#또는
$ npm i -g gatsby-cli

사이트 생성은 gatsby new <프로젝트명> 명령으로 한다. gatsby는 “스타터”(기본 구성이 있는 일부만 구성된 사이트)를 사용하여 사이트를 생성할 수도 있다. 나는 lumen 테마를 사용하기 위해 gatsby-starter-lumen 스타터를 사용하여 사이트를 생성했다.

https://github.com/alxshelepenok/gatsby-starter-lumen


사이트를 생성하려면, 아래 명령어를 차례대로 입력한다.

$ gatsby new blog https://github.com/alxshelepenok/gatsby-starter-lumen
$ cd blog
$ yarn develop #또는 npm run develop

develop가 성공하고 나서, 브라우저에서 http://localhost:8000 를 접속하면 확인 할 수 있다.

보이는 페이지는 샘플 블로그 사이트다.



개츠비(Gatsby) 스팀잇 플러그인


혹시 hexo처럼 gatsby도 스팀잇 플러그인이 있지 않을까? 해서 찾아봤다. 역시 있었다.

https://github.com/Sekhmet/gatsby-source-steem


gatsby-source-steem 플러그인을 설치한다.

yarn add gatsby-source-steem

#또는
$ npm i -save gatsby-source-steem


그리고 gatsby-config.js 파일에 gatsby-source-steem 플러그인 설정을 추가한다.

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-source-steem',
      options: {
        tag: 'sekhmet', // 스팀잇 아이디 입력
        sortBy: 'blog',
      },
    }
  ],
};


그런데 원하는데로 동작하지 않았다. 그래서 해당 프로젝트를 내 깃허브로 포크(Fork)하고 코드를 수정했다.


수정된 gatsby-source-steem 플러그인 사용하기


내가 수정한 gatsby-source-steem 플러그인을 사용하려면 다음과 같이 설치한다.

$ yarn add git+https://github.com/anpigon/gatsby-source-steem.git

#또는
$ npm i -save git+https://github.com/anpigon/gatsby-source-steem.git


그리고 gatsby-config.js 파일은 아래와 같이 설정한다.

plugins: [
    {
    resolve: 'gatsby-source-steem',
    options: {
      path: `${__dirname}/src/pages/articles`, // posts.md 파일 생성 경로
      tag: 'anpigon', // 스팀잇 아이디
      sortBy: 'blog',
    },
  },
]



로컬에서 테스트하기


develop를 실행하여 로컬에서 확인해보자.

$ gatsby develop


브라우저에서 http://localhost:8000를 접속하면 아래와 비슷한 화면을 볼 수 있다. 내가 스팀잇에서 작성한 글들이다.



깃허브 페이지에 블로그 배포하기


깃허브에 저장소를 생성한다. 그리고 package.json 파일을 열어 repository의 url를 수정한다. 그리고 homepage를 추가한다. homepagehttps://<유저명>.github.io/<프로젝트명>형태이다.

{
  "repository": "git+https://github.com/anpigon/blog.git",
  "homepage": "https://anpigon.github.io/blog",
}


마지막으로 deploy명령을 실행한다. 생성된 블로그를 깃허브 페이지에 업로드하는 제일 중요한 과정이다.

$ yarn deploy

#또는
$ npm run deploy


여기까지 블로그 생성하고 배포하기 끝.


* * *

사실 저는 Travis-ci 에서 블로그를 자동 배포하는 과정까지 하고 싶었습니다. 그런데 Travis-ci에서는 빌드하는 과정 중에 sharp 모듈 오류가 발생합니다. 그래서 빌드가 안되네요. ㅠㅠ

Travis-ci에는 sharp 모듈 컴파일에 필요한 라이브러리가 누락되어 있어서, 오류가 나는 게 아닐까 생각하고 있습니다. 혹시 이 오류 해결 방법을 아시는 분은 알려주세요. ㅎㅎ


요즘은 개인 블로그 호스팅에 Netlify 서비스도 많이 이용하고 있는 것 같습니다. 이 서비스는 자동 빌드/배포/호스팅 기능을 제공한다고 해요. 그래서 다음번에는 Netlify를 사용한 스팀잇 블로그 자동 배포를 해볼 거예요. ㅎㅎ

참고: Hugo와 Netlify로 ‘스매싱’ 웹사이트 만들기


* * *

대문 이미지는 대문 장인 레이첼(imrahelk)님의 작품입니다. 놀랍게도 제 요구사항을 정확하게 파악하고 만들어주셨어요.👍

여기까지 읽어주셔서 감사합니다.


Sponsored ( Powered by dclick )
매직다이스하러 가자!

스팀 블록체인 기반 주사위 게임

Published 23 Dec 2018

안피곤의 블로그입니다.