connecting dots

Beginner 12회차 (8/14) | store 코드 수정, Vercel로 serverless 구현하기 실습 본문

Live Class/Beginner

Beginner 12회차 (8/14) | store 코드 수정, Vercel로 serverless 구현하기 실습

dearsuhyun 2024. 8. 14. 22:40

store 코드 수정

기존 코드

 

수정코드

 

기존 코드의 경우 특정 속성이 다른 속성을 가지고 와서 쓸 수 없기 때문에 밑 사진처럼 함수 안에서 다른 함수를 호출할 수 없음

수정 코드의 경우 선언되는 유효범위 안에 다른 함수도 포함되어있어서 호출하는 것이 가능

 

Vercel

프론트엔드 웹 애플리케이션을 배포하고, 관리하기 쉽게 만들어주는 클라우드 플랫폼

 

1. Hosting Server

html, css, js, img, font --> 정적 파일들을 저장(like 하드디스크), 연산이 되지 않음

 

2. Computing Server (연산 기능이 필요할 때)

- Serverless Functions 

서버가 없는 데 동작하는 함수(기능)

24시간 서버가 켜져있지 않아도 켜져있는 것 처럼 동작 가능

 

 npm i -D vercel

 

의존성 패키지 설치 후 vercel 홈페이지에 가입해서 연결해야 함 !

 

node JS에는 fetch 함수가 기본 내장되어 있지 않음. 따로 설치 필요.

npm i node-fetch

 

혹은 axios 다운 받아 사용 (fetch 함수보다 기능이 더 많음)

npm i axios

 

파일 설정 !

vite는 클라이언트 서버, vercel은 백엔드 서버

npm scripts 중에서 watch-로 시작하는 명령을 동시에 시작해 주세요 !

 

 

vercel 사용하려면 로그인을 해서 연결해줘야 한다 

 

백엔드 서버 연결 완료 !

 

vercel 홈페이지에 이렇게 연결된 것을 볼 수 있음

 

위 pakage.json에 설정해 놓아서 npm run dev 실행 시 vite와 vercel 서버가 동시에 열리는 것을 볼 수 있음 !

 

 

main.tsx 파일에서 서버로 데이터 요청

 

api 폴더에 hello.ts 파일에 백엔드 서버구축

 

npm run dev해서 서버 열어준 뒤 화면 보면 이렇게 잘 나온다 !

 

갑자기 대량 오류가 떴을 때 해결 방법

vercel 설치만 했을 뿐인데 저렇게 오류가 났는데 이럴때는 라이브러리 읽어오는 데서 오류가 난거라

vs코드 재부팅이나 TS를 사용하고 있으니 그 부분 재시작 해주면 해결이 되는 경우가 있다고 한다 !

아직 붉은 색 ,, 에러 ,, 무서와요 ,, 이러지마 제발 (?) 하지만 ? 이제 재부팅부터 해본다 ... ㅎ


* AWS EC2 : 24시간 365일 동작하는 서버
사용하는데 여러 리스크 존재(비용 등)

AWS Lambda (serverless function)
접속했을 때만 서버를 켜서 컴퓨팅해서 실행하고 작업하지 않으면 서버를 끄는
24시간 동작하지 않는, 필요시에만 켜지는 !

* npm i -g
전역적으로 무언가를 설치하는 건 부정적인 의미가 강함
지역적으로 관리하는 것이 더 좋음

* 프로젝트 파일명에 띄어쓰기 있으면 인식 되지 않으므로 이 부분 주의

* 일반함수 --> 호이스팅 가능 (밑에 선언(무조건 function으로 시작)해도 위에서 사용 가능)
async function getTodos() {
// updateTodo() --> 일반함수는 호이스팅이 가능하기 때문에 이렇게 사용할 수 있다.
}​


but 밑 코드는 함수 표현식이기 때문에, updateTodo가 이처럼 되어있으면 호이스팅이 되지 않음.
함수 선언식은 무조건 function이 붙음 !

const updateTodo = async function (updatedTodo: Todo) {}

* 프론트엔드에서 동작하는 코드는 절대 민감한 내용을 숨길 수 없음
API_KEY 등 ,, 백엔드 코드로 넘어가야 함 --> 프렌드엔드 개발자도 백엔드 부분을 이해하고 어느정도 쓸 수 있어야 함


 

 

https://www.heropy.dev/p/6hdJi6

 

사례로 이해하는 GitHub Flow

GitHub Flow는 GitHub을 활용하는 브랜치 전략으로, 브랜치를 어떻게 생성하고 병합하는지에 대한 개념입니다. GitHub Flow의 간단한 사용 사례를 통해 브랜치 전략을 이해해 봅시다.

www.heropy.dev

https://www.heropy.dev/p/QOWqjV

 

데이터 통신을 위한, Fetch 함수와 Axios 라이브러리

서버와 클라이언트 간의 데이터 통신은 웹 개발의 핵심 개념 중 하나로, 자바스크립트에서의 데이터 통신을 위한 fetch 함수와 axios 라이브러리의 사용법을 알아봅니다.

www.heropy.dev

 

반응형