vercel 에서 express 나 웹소켓 서버를 공짜로 띄워볼 수 있다고 해서 만져봤는데 ...
지옥의 시간으로 변했습니다.
6시간째 배포를 못해서 해보고 있었으며
결과도 내가 원했던 것은 안되었다.
- 서버 내부에서 setInterval
- 웹소켓 버서
- rest api 는 가능했습니다. 만 firebase 쓰면 되니 의미 없음
그래서 이 글은 분노한 개발자의 사용기 입니다.
vercel 에서는 next.js 로 배포를 할 수 있는데 next.js 는 프론트엔드 백엔드가 다 통합되어있다고 들었다.
(처음 써본다.)
어차피 웹소켓으로 실시간 통신만 공짜로 할 수 있으면 장땡이였다.
영상: https://www.youtube.com/watch?v=E8xaV6fiTaA
이 영상을 보면 가입부터 github 연결 배포 까지 끝내고 있다.
내용안에는 vercel 은 git 에 push 만하면 최신 빌드를 하는 배포 시스템이 있다고 했다.
클라우드 플레이어도 그런식이라 적응이 쉬울줄 알았다.
그러나 ...
자동빌드가 엄청 띄엄띄엄 되는거 같다
거의 1시간 후에 다시보니 "바꼈있더라" 느낌
즉시 되는건줄 알고 "왜 안되지를 외치며" 몇시간을 낭비했다.
진전된건 없었고 누웠다 일어나 다시 와보니 배포되어있었다.
너무나 허무했다.
결국 알아낸것은 명령어를 통해 수동 배포가 가능하다는 것을 알았다.
관리페이지에는 배포 버튼이 없기 때문에 페이지를 보는데 너무 시간을 많이 써서
지금은 녹초가 되어버렸다. 아무것도 하기 싫다.
명령어로 배포하기
문서: https://vercel.com/docs/cli/link
vercel link
Learn how to link a local directory to a Vercel Project using the vercel link CLI command.
vercel.com
firebase 처럼 vercel deploy 하면 된다. 그전에
vercel login
소유자임을 확인해야하니 로그인 해야겠죠
vercel link
이미 받아둔 소스폴더를 vercel project 와 연결시켜주어야한다.
이 작업이 끝나면 배포할 수 있다.
vercel deploy
빌드하는동안 프리뷰 페이지를 볼 수 있는데
로그인한 브라우저에서 보여진다. 특이하고 불편하다.
이제 rest api 서버와 웹소켓이 가능한지 확인해야겠다.
하지만 오늘은 아무것도 하기 싫다.
정말 시간아깝다.
vercel dashboard 로 가면 최근 배포된것에 대한 내용이 나온다.
자기전에 v4 를 push 했다.
내일 보면 배포되어있으려나 ...
웹소켓 서버를 돌릴 수는 없다.
웹소켓 서버를 돌릴 수 있는줄 알았으나...
문서 링크: https://socket.io/how-to/use-with-nextjs
안된다고 문서에 적혀있네요 시간 낭비였습니다.
RES API 응답은 가능
rest api 가 가능한지 확인해야겠군요
그런데 firebase 쓰면되는데 ...
아 시간 아까워
하루종인 시간들여서 안된다는걸 배웠군요
deploy 랑 출시는 다르다.
제일 짜증나는 계념인데요
deploy 한다고 다른 유저가 볼 수 있는게 아닙니다.
다시 production 이라는 과정을 거쳐야합니다.
vercel 에서 접속되는 페이지는 preview 라고 해서 권한 있는 사람들만 볼 수 있는 페이지 입니다.
빌드마다 주소도 다르구요
개발자랑 테스트하는 사람이 분리된 큰 프로젝트라면 모를까
배포하기에 한두 단계가 있으면 너무 불편합니다.
출시 과정
대시보드로 가면 최근 프리뷰 정보가 표시됩니다.
여기서 이상한곳을 클리하면 안되고 내모로 표시된 커밋 코드를 눌러야합니다.
(불편)
다른곳을 누르면 다른 페이지로 가니 주의
배포 세부 정보창이 뜨는데 [...] 버튼을 누릅니다.
참고로 이페이지는 창크기가 작으면 버튼의 위치가 바뀌니
창크기를 잘 조절하세요
(개 불편)
출시 로 승급해줘야합니다.
(자동으로 좀 해달라고)
엄청 번거롭습니다.
저는 도메인을 연결해뒀는데요
도메인이 없으면 어떤 주소로 나오는지 잘 모르겠네요
(vercel 은 불편해야하니까 접속할 주소를 안줄 수도 있을꺼 같군요)
출시 링크: next.sidnft.com/
내부 카운터 있는 API: next.sidnft.com/api/hello
setInterval 이 들어있는 API: next.sidnft.com/api/hello2
내부 카운터가 있는 api 호출할때마다 변수를 ++ 해줬습니다.
1분정도 안쓰면 서버가 내려갔다 올라오는지
변수값이 날아갔습니다.
이것도 사용 못하겠군요
setInterval 로 서버 내부는 실시간으로 동작하는가 테스트 해봤는데
안되었습니다. 호출할때 살아나서 잡시 업데이트 돌고 멈추는거 같았습니다.
이러니 웹소켓이 안되는거 같습니다.
성능 때문에 서버 속도를 제어하는거 같습니다.
결론
더이상은 확인안해보도 될꺼 같군요
heroku 로 넘어가겠습니다.