인프런 커뮤니티 질문&답변

yongsoocho님의 프로필 이미지
yongsoocho

작성한 질문수

mongoDB 기초부터 실무까지(feat. Node.js)

AWS lightsail 서버 준비

배포시 플랫폼

작성

·

437

0

리액트/뷰 처럼 SPA 를 배포할때..

aws 로 배포를 해도 되지만

npm build 를 이용하여 dist 폴더가 생기면 netilfy로

배포를 해도 되잖아요? 

aws 나 netilfy 배포나 차이를 잘 모르겠어요 

후자가 훨씬 가격이 저렴한데 왜 굳이 aws 를 이용하는 거죠?

답변 1

0

김시훈님의 프로필 이미지
김시훈
지식공유자

yongsoocho님 안녕하세요 :)

프론트엔드의 경우 그렇게 하셔도 되죠. 빌드에서 만들어진 html, css, js 정적 파일들을 그냥 클라이언트에 보내주면 되니깐요. 이미지 파일 불러오듯이 그냥 파일 불러오는거에요. 해당 코드를 브라우저가 실행하는거고요.

즉, 프론트는 계속 돌아가고 있는 서버가 아예 존재 하지 않는거에요. netlify는 빌드된 파일들만 가지고 있고 요청이 오면 파일을 전달해주는거니깐요. 그래서 저렴한거에요. AWS에서도 S3 + Cloudfront로 netlify처럼 정적 파일들을 관리할 수 있는데 이것도 엄청 저렴하고 netlify보다도 저렴할 수 있어요.

백엔드는 정적 파일이 아니라 express 서버를 돌려야겠죠? app.listen하고 있는 부분이 요청이 들어오는지 확인하고 있는거에요. 그래야 요청이 들어왔을 때 반응하고 연산 작업을 하겠죠. 프론트는 서버쪽에서 연산이 없고 파일을 넘겨주기만 하면 되는거고요. 백엔드는 계속 돌아가는 프로그램을 컴퓨터에 실행하는 것과 같고 프론트는 그냥 html, css, js 파일을 다운받는것과 같아요. 

그리고 SPA 프론트엔드도 서버사이드렌더링(SSR)을 도입하게 되면 백엔드처럼 서버가 필요합니다. 서버사이드 렌더링을 한다는건 서버에서 백엔드로 데이터를 요청하고 html을 조합한 후 클라이언트에 넘기는거기 때문이죠.

yongsoocho님의 프로필 이미지
yongsoocho
질문자

항상 친절한 답변 감사드립니다. 도움 정말 많이 받고 있습니다. ^^

yongsoocho님의 프로필 이미지
yongsoocho

작성한 질문수

질문하기