블로그 개발 일기

2024-04-28
blogsstmarkdown

블로그

블로그를 만들기에 앞서 사용성이 정말 좋고 간결하게 매력있는 웹 프레임워크, 가입해서 딸깍 몇번으로 내 블로그를 SEO, SSR까지 지원 및 제공 해주는 요즘 트렌디한 느낌의 툴들을 접해보았다. ( nextra, docusaurus, deco.cx )

이번에 만들게 된 블로그가 나의 하나의 포트폴리오이자 내 일상과 과정들을 기록하고, 인프라 구성까지 재미를 볼 수 있다고 생각했다.

플로우

블로그 작성부터 해당 포스트가 보여지기까지 대략적인 플로우로는 아래의 형태로 이뤄진다.

Write

  1. 옵시디언에서 포스트 작성
  2. 작성된 포스트가 저장되면 옵시디언의 Remotely Save를 활용해 내 S3 버킷에 저장
    1. 해당 데이터를 기반으로 데스크탑, 앱에서 동일한 파일을 싱크하여 호환성을 높임.

Read

  1. 사용자는 블로그의 A 포스트에 접근한다.
  2. cloudfront를 통해 S3에 저장된 정적 웹 호스팅 파일을 서빙한다.
    1. S3의 정책과 CF-S3간의 OAI를 적용하여 S3 버킷에는 허용된 액세스를 제한함. ( 중요한 보안 처리 )
  3. 사용자는 SEO가 적용된 퀄리티 있는 문서를 SSR로 빠르게 접한다.

개발 환경 구성

next@14.1.0
tailwind // 스타일
aws-sdk // AWS 상호작용
recoil // 상태 관리
sst // 배포

MarkDown

MarkDown을 블로그에 보여주기 위해 아래의 라이브러리를 적용하기로 했다.

gray-matter

  • front-matter를 객체로 간단히 파싱하기 위해 사용

@uiw/react-markdown-preview

  • react에 맞는 간단한 마크다운 뷰어

다양한 마크다운 라이브러리가 많지만 내 블로그는 Obsidian 내에서 모든 블로그 작성이 이뤄지기에 앱에선 프리뷰 형태로만 사용하기 위해 결정

AWS 구성

sst(CF, S3)

sst란 간단히 설명하면 서버리스 애플리케이션을 구축하고 배포하기 위한 프레임워크이다.
이 도구로 AWS 서비스를 사용해서 간단히 인프라 구성을 해서 배포 및 관리할 수 있다.

sst는 나의 현업에서 일부 도메인에 해당 프레임워크가 적용되어 자동화로 배포가 이뤄지고 있고, 이 프레임워크로 쉽고 빠르게 배포할 수 있어 이번 블로그 구성에도 편하고 무리없이 적용하기 좋다고 생각했다.

이 구성의 핵심은 아래와 같다.

  1. 사용자가 cloundfront CDN을 통해 해당 지역의 데이터에 빠르게 접근
  2. S3에 내 블로그의 정적 웹 호스팅할 수 있도록 설정
  3. lambda@edge를 통한 SSR 페이지에 접근
  • 블로그
  • 플로우
      • Write
      • Read
  • 개발 환경 구성
      • MarkDown
  • AWS 구성
    • sst(CF, S3)