Next.js 를 공부하다가 재미있는 서비스를 만나서 소개보고자 한다.

https://zeit.co

Now는 웹프로젝트를 간편히 클라우드 환경에 배포하고 온라인 호스팅을 할 수 있게 해준다. 배포를 할 때마다 신규로 유일한 도메인이 만들어지며 해당 URL은 영원히? 유효하다. 서비스를 개발해 나가면서 중간에 서비스의 특정 스냅샷을 마련하는 용도로 사용이 가능할 것 같다.

배포가능한 웹프로젝트 종류는 3가지이다

  1. Docker
  2. Node.js
  3. Static Websites

사용을 해보니 홈페이지의 소개하는 바대로 배포방법은 매우 간단하다. Now 를 사용하기 위해서는 먼저 클라이언트 도구를 설치해야 한다

npm i -g now


Static WebSite 배포

$ my-site/ ls
index.html logo.png
$ my-site/ now

나의 최초 Now 배포본
https://now-test-fefpsybyeq.now.sh/


Node.js 프로젝트 배포

$ my-api/ ls
package.json index.js
$ my-api/ now

노드 프로젝트가 서비스되기 위해서는 몇가지 제약조건이 필요한 것 같다

  • 앱의 시작은 npm start 명령으로 시작이 가능해야 한다.
    • 이 방법은 내가 직접 테스트해 본 것이고 다른 방법도 있는 것 같기는 하다.
  • 해당 앱은 80포트로 서비스가 되어야 한다.


Docker 배포

도커는 내가 아직 잘 모르는 분야라 건드려 보지 않았다


배포된 앱목록 확인

$ now ls
> 14 total deployments found under min9nim@gmail.com [933ms]
> To list more deployments for an app run `now ls [app]`

  app                  url                                    inst #    type      state    age
  sharelink            sharelink-ypobxbsycs.now.sh                 1    NPM       READY    6h
  sharelink-backend    sharelink-backend-nwdiycdvbe.now.sh         0    NPM       READY    6h
  my-json-server       my-json-server-nkksqxepai.now.sh            1    NPM       READY    9h
  now-test             now-test-fefpsybyeq.now.sh                  -    STATIC    READY    2d


배포했던 앱 삭제

now rm 앱이름(or URL)


소스보기 기능

https://도메인/_src 로 접근하면 해당 프로젝트의 전체 소스코드를 확인할 수 있고 코드의 일부를 드래그 선택하면 선택된 코드 위치를 URL을 통해 다른 사람과 쉽게 공유할 수 있다. 무료버젼(OSS)의 경우에는 이렇게 소스코드를 오픈하는 것이 원칙이며 비공개를 원한다면 유료버젼을 사용해야 한다


기타

  • 노드프로젝트의 경우 시간간격을 두었다가 갑자기 접속하면 접속 속도가 상당히 느려진다. 아마도 해당 서비스가 항상 대기 상태로 있는 것은 아니고 장시간 요청이 없는 경우에는 서비스가 중지 상태로 있다가 요청 발생시 인스턴스가 올라오고 일정 시간 유지되는 것 같다.
    • 운영 환경으로 사용 하기에는 적절한 선택이 될 수 없다.
  • 완전 무료는 아니고 상품 가격에 따라 제공되는 용량은 다르다
  • 서비스를 잠깐 이용해 보니 Now라는 이름이 해당 서비스에 잘 잘 어울린다는 생각이 든다.


Ref.

  • 소스보기 기능 소개
    • https://zeit.co/now#cloud-view-source
  • 앱 삭제기능
    • https://zeit.co/blog/now-rm-is-here-and-more
  • 유료상품 스펙
    • https://zeit.co/account/plan
  • 소스 비공개 설정
    • https://zeit.co/docs/features/configuration#public-(boolean)