본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

딥 다이브 데모 (Deep dive demo)

원문 보기 위키 갱신

이 문서는 한 시간 이내에 완전히 작동하는 앱을 실행해 보고 Fly.io를 더 철저히 탐험할 수 있게 해 주는 딥 다이브 데모를 소개해요. 웹 딕타폰(Web Dictaphone) 예제를 바탕으로 PostgreSQL, Tigris, Upstash Redis, WebSockets 등 업계 표준 구성 요소를 사용해 Fly.io의 기능을 직접 체험해 볼 수 있어요.

출처: 문서

본문

딥 다이브 데모에 오신 것을 환영해요. 여기서 Fly.io를 더 철저하게, 하지만 시간을 정해두고 탐험할 수 있어요. 한 시간 이하로: 처음 몇 분 안에 완전히 작동하는 앱을 실행하고, 그다음 남은 시간 동안 방금 한 일을 이해하고 조각들이 어떻게 맞물리는지 탐구할 시간이 충분히 있어요.

딥 다이브의 목표

사실 목표는 딱 하나예요:

Fly.io가 여러분에게 맞는 곳인지 알아내도록 돕는 것.

Speedrun 또는 Getting started 페이지에서 왔다면, hello world를 넘어 플랫폼을 탐험해서 지금 여러분을 지원하고 나중에 성장에 맞춰 확장해 줄 수 있는 제공자를 선택했다는 확신을 얻고 싶을 거예요.

어쩌면 락인(lock in)이 걱정될 수도 있어요. 다른 곳의 서비스를 사용하고, 일이 잘 안 되면 완전히 빠져나와 다른 곳으로 가고 싶을 수도 있어요.

아마 단순하게도, 익숙하지 않은 플랫폼에서 앱이 왜 시작되지 않는지 디버깅하는 것보다 작동하는 시스템을 조정하고 진화시키는 것이 더 쉽다고 느낄 수도 있어요.

한 시간 안에 좋은 느낌이 들지 않으면 여기서 나가셔도 돼요. 좋은 느낌이 든다면 계속 머물면서 가져온 앱을 실행해 보아요.

hello fly 너머

실제 세계 애플리케이션은 최소한 다음 구성 요소를 가져요:

  • HTML 폼과 데이터베이스; 일반적으로 관계형 데이터베이스예요.
  • 일반적으로 S3를 사용하는 미디어 파일이나 문서 처리 능력이에요.
  • 멀티 사용자 및 실시간 구성 요소로, 한 위치의 한 사람이 변경한 내용이 다른 사람의 브라우저에 즉시 반영돼요.

완전히 기능하는 앱이 매끄럽게 실행되려면 여러 가지가 필요해요. Anycast 라우팅, 로드 밸런서, DNS 인증서, WebSockets, 내부 프라이빗 네트워크, 관계형 데이터베이스, 객체 스토어, 인메모리 데이터베이스 같은 것들이요. 그리고 그것들 모두를 연결하는 지식도 필요해요.

복잡한 구성 요소들을 서로 연결하는 것은 일반적으로 예상치 못한 일들 때문에 예측할 수 없는 시간이 걸려요. 보통 완전한 앱의 셋업은 클라우드 플랫폼에 익숙하더라도 최소한 오후 정도의 작업이 필요해요. 우리는 몇 분 안에 가동할 거예요.

Fly.io는 Public Network Services, Fly Proxy routing, 기본 제공되는 Private Networking, 미리 구성된 데이터베이스 덕분에 많은 작업을 대신 처리해 주어 예상치 못한 일을 최소화해요. 예상치 못한 일이 없다고 보장할 수는 없지만, 공개 클라우드에서 작업하는 dev ops 복잡성의 일부를 함께 처리하는 방법을 보여드릴 수 있어요.

그래서 이 딥 다이브 데모 앱은 무엇일까?

딥 다이브 데모는 노트북, VPS, AWS EC2, Google Compute Engine, Azure에서 실행할 수 있는 업계 표준 구성 요소를 사용해요.

Web Dictaphone -- Fly.io 에디션

딥 다이브 데모는 MDN의 Web Dictaphone을 기반으로 해요. GitHub에서 호스팅하는 라이브 데모로 플레이해 볼 수 있어요. Web Dictaphone 앱은 HTML 폼으로서 얻을 수 있는 가장 기본적인 것이고, 목소리만으로 원하는 만큼 많은 미디어 파일을 생성할 수 있다는 보너스가 있어요.

기본 Web Dictaphone은 클라이언트 전용이라서 nginx, Apache HTTPd, Caddy 같은 정적 자산(HTML, CSS, JS, 이미지)을 배포할 수 있는 웹 서버가 필요해요. 딥 다이브 데모에서는 데이터를 데이터베이스에 저장하려면 HTTP GET, POST, PUT, DELETE 요청을 처리할 수 있는 서버가 필요해요. 서버의 선택은 언어나 프레임워크에 따라 달라져요.

데모에는 다음 구성 요소가 포함돼요:

사용 가능한 런타임

우리 딥 다이브 데모는 (지금까지) 다섯 가지 맛으로 제공돼요:

더 알아보기 (Learn more)