6월 27일

HSKwon·2022년 6월 27일
0

배포

노트북에 내가 만든 소스코드들을 git clone하고
yarn dev 해서 서버를 실행시킨다. 내 서버에 접속한 누군가의 컴퓨터에 html, css, js가 구현된다. 내 컴퓨터를 만약 종료한다면 yarn dev가 꺼지게 되므로 사이트에 접속이 안된다(24시간 동안 켜놓아야 함!!)

💡 한마디로 "배포"란...

프론트엔드 서버를 실행시키고 서버를 종료하지 않는 상태
서버실의 서버컴퓨터에서 하는 배포와 같음!! 하지만 접속자가 많아진다면 노트북의 cpu가 버티지 못한다!!한대가 접속이 끊겨도 다른 한대의 서버로 접속이 가능하다!

주소로 접속하면 먼저 LoadBalancer(LB)로 접속해서 부하가 적은 서버로 LB가 연결시켜줌!!

💡Round-robin서버에 부하가 최소화 되도록 원형으로 돌면서 서버에 접속자를 위치시키는것

💡Least-connection

서버 접속자가 더 늘어난다면...?

빨리 컴퓨터를 더 주문해서 택배를 기다리고 git clone해서 LB에 연결시킨다. (택배를 기다리고 git clone하고 연결시키고.. 요즘에는 말이 안됨!)

  • amazon, google, microsoft와 같은 서버장비, LB를 가지고 있는 회사들이 있다!
  • 이 회사들이 컴퓨터, 장비 등을
    제공하는 서비스를 제공함!
  • 🚀 홈페이지에서 몇번의 클릭으로 컴퓨터를 빌리는 효과를 갖는 서비스를 제공한다

이런식으로 터미널에 접속할 수 있는 권한을 부여한다.

  • 구글컴퓨터이기 때문에 내 컴퓨터가 꺼지는것과 상관없이 구동된다.
  • /이곳에서 git clone, yarn dev 하면 24시간 켜져있게됨
  • / 이런식으로 LB(부하분산) 마찬가지로 몇번의 클릭으로 접속권한을 얻을 수 있음!

DevOps

이런식으로 배포가 쉬워지다보니 개발자가 배포를 겸하기도 한다 (Development + Operations = DevOps)

네 개의 서버는 LB가 트래픽을 분산시켜주는 대상이 된다.

  • html, css, js 파일을 미리 만들어놓기
  • 미리 만들어놓은 파일들을 구글 스토리지에 업로드 시켜놓기
  • AWS는 CloudFront가 있다!!
  • 도메인에 CloudFront를 연결시켜 놓으면 CloudFront를 통해서 Cloud-storage(S3)로 연결이 되어서 업로드한 파일을 다운받아옴!!

1️⃣. SSG(Static Site Generation) 배포

- 📍 정적인, 변함이 없는 파일들만 배포가 가능함

- 동적으로 변하는 파일들은 불가능함!!!!!!!!

  • [boardId]와 같은 대괄호를 사용하는 다이나믹 라우팅 방식에는 SSG배포 적용이 불가능함
  • yarn build 하면 소스코드가 만들어지고 드래그앤드롭으로 스토리지에 업로드
  • 업로드 한 것들을 CloudFront에 등록시켜놓음
  • aaa.com은 LB에 연결시키는게 아니라 CloudFront에 연결시킨다.
  • aaa.com 입력하면 CloudFront 주소로 자동으로 바뀌어서 CloudFront로 접속이 되어 스토리지에 업로드 되어있는것들을 다운받아와서 보여줌
  • 서버라는 개념이 없어서 사람들이 무제한 접속해도 트래픽 처리를 구글이나 AWS가 다 해줌
  • 컴퓨터가 언제 불시에 종료가 될지 걱정할 필요가 없음 (트래픽 모니터링이 불필요함)
  • 무한 트래픽이 가능함!!!!!!

    - 정적인 것들은 storage로 분리시키고

    - 동적인 것들은 프론트엔드에서 주고받고

2️⃣. LB를 통해서 프론트엔드 서버 접속해서 파일을 받아오는 방식

  • 항상 컴퓨터가 켜져있어야함
  • 일정정도 이상의 컴퓨터 사양이 필요함
  • /boards (미리 만들어놓을수있음)
  • /boards/qmdlsma-1234qi (미리 만들어놓을 수 없음)

배포 전 테스트

  • 마우스로 클릭하는거 대신해주기
  • 구매와 장바구니를 테스트 하다가 상품 기능 테스트를 놓침
  • 사람이 일일이 모든 것을 클릭해서 기능을 테스트하는것은 한계가 있음
  • 그래서 테스트 코드를 작성해줘야 함
  • CRUD + List 각각의 테스트코드

Jest 써보기

profile
공부한 내용이나 관심 있는 정보를 글로 정리하며 익숙하게 만들고자 합니다.

0개의 댓글