HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👻
개발 기록
/
📑
강의 정리
/
📑
Netlify CD, Serverless Functions ~ Heroku CD
📑

Netlify CD, Serverless Functions ~ Heroku CD

Created
Oct 14, 2021 09:46 AM
Type
Vue
Mento
레온
Created By

Netlify CD

  • 실제 배포하기
  • 배포 후 commit 시 자동으로 다시 배포됨.
  • SPA는 새로고침의 경우 index.html을 찾지 않도록 static에 _redirect란 파일을 만들고 /* /index.html 200를 추가하면 됨.

Serverless Functions

api나 x-username등 노출되면 안되는 정보를 가려야 함.
  1. npm i -D netlify-cli
  1. package.json에 "dev:netlify": "netlify dev" 입력.
  1. 루트에 netlify.toml파일 생성.
    1. [build] command = "npm run build" functions = "functions" publish = "dist" [dev] framework ="#custom" command = "npm run dev:webpack" targetPort = 8079 port = 8080 pushlish = "dist" autoLaunch = false
  1. 루트에 functions 폴더와 leon.js 파일 생성(serverless 함수).
    1. exports.handler = async function () { return { statusCode: 200, body: JSON.stringify({ name: 'Leon', age: 85, email: 'leon@abc.com' }) } }
  1. webpack.config.js에서 devServer에 port:8079로 지정.
  1. package.json의 scripts에 dev:webpack으로 수정. dev:netlify에서 netlify 제거.
  1. workspace.js 파일 생성.
    1. npm i axios
    2. notion image
      notion image
  1. 민감한 정보를 환경 변수로 만들면 커밋했을 때도 노출되지 않음.
    1. npm i -D dotenv
    2. 루트에 .env파일 생성.
    3. gitignore에 .env 포함.
    4. notion image
      notion image
      notion image
  1. deploy status badge를 readme에 추가하면 netlify의 build 상태를 보여줄 수 있음.
⚠️
기존 커밋 내용에도 key가 노출되지 않도록 주의하기.

NuxtJS 소개

  • SSR로 SPA의 검색엔진 취약성을 보완함.
  • Open Graph를 제공해 페이지가 변경될 때마다 open graph 내용을 갱신해 SSR에서 렌더링하여 검색엔진에게 메타정보를 새롭게 제공함.
  • nuxt.config.js에서 hid는 특정 정보를 덮어쓸 수 있는 고유 값. 고유 값이 확인이 돼야 nuxt 프로젝트에서 SSR 렌더링을 온전히 제공할 수 있음.
notion image
  • Heroku를 통해 배포를 진행할 수 있음.
    • Netlify(SPA)
    • Heroku(SSR)