개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← YouTube Shorts 자동화

웹 정비 — 약관 페이지와 OG 메타태그

2026년 7월 14일
webOAuthOGS3

Lambda 전환이 일단락되고 나니 밀어뒀던 잡무가 남았다.

web — 약관·개인정보 처리방침 페이지

Google OAuth 앱 심사에는 이용약관과 개인정보 처리방침 링크가 필수다. YouTube API Limited Use 정책도 명시해야 한다. /terms, /privacy 정적 페이지를 만들고 로그인 화면의 <span>을 실제 링크로 바꿨다.

// 이전
<span className="underline underline-offset-4 cursor-pointer hover:text-white/60">
  이용약관
</span>

// 이후
<a href="/terms" target="_blank" rel="noopener noreferrer" className="underline underline-offset-4 hover:text-white/60">
  이용약관
</a>

리프레시 토큰 저장 방식도 문서에 명시했다.

<p className="text-sm leading-7">
  OAuth 리프레시 토큰은 AES-256-GCM으로 암호화하여 데이터베이스에 저장합니다.
  액세스 토큰은 서버 메모리에서만 사용하며 저장하지 않습니다.
</p>

web — 로그인 배경 비디오 S3 이전

로그인 화면 배경 비디오(bg.mp4)가 106MB라 git에 못 올렸다. 별도 공개 S3 버킷을 만들어서 거기서 서빙하도록 바꿨다.

// src="/bg.mp4"
src="https://shorts-static-682251233572.s3.ap-northeast-2.amazonaws.com/bg.mp4"

OG 이미지도 같은 버킷에 올려서 메타태그를 채웠다.

export const metadata: Metadata = {
  openGraph: {
    title: 'YouTube Shorts Automation',
    description: '주제를 입력하면 AI가 스크립트, TTS, 영상 렌더링, YouTube 업로드를 자동으로 처리합니다.',
    type: 'website',
    images: [{ url: OG_IMAGE, width: 1280, height: 720, alt: 'YouTube Shorts Automation' }],
  },
  twitter: { card: 'summary_large_image', ... },
};

description을 처음엔 영어로 썼다가 몇 분 만에 한국어로 바꿨다. 어차피 한국어 서비스인데 영어로 쓸 이유가 없었다.

infra — 배포 IAM 역할을 코드로

github-actions-deploy IAM 역할이 콘솔에서 수동으로 만들어진 상태였다. 이걸 Terraform state로 import해서 코드로 관리하기 시작했다.

# infra/terraform/envs/prod/github-actions-iam.tf
# 기존 역할을 Terraform state로 import — Lambda/CloudFormation/S3 권한 추가

Lambda 함수 배포, CloudFormation 스택 갱신, serverless 아티팩트용 S3 접근 권한을 여기에 몰아넣었다. 콘솔에서 손으로 고친 권한은 다음번엔 무조건 사라진다는 걸 몇 번 겪고 나서 내린 결정이다.

← 이전 글배포 전환 — EC2와 Lambda 이관
다음 글 →도메인 전환 — DB 스키마 정리