뭘 고를지, 어떤 프롬프트를 칠지, 그러면 뭐가 나오는지 순서대로 보여준다. 오늘 바로 시작할 수 있게.

처음 만드는 사람은 코딩이 어려워서 멈추지 않는다. 뭘 먼저 정할지 몰라서 멈춘다. 그 첫 번째가 내가 만들 게 웹이냐 앱이냐다. 이것만 정하면 도구도, 저장도, 배포도 따라서 정해진다.
30초 결정법. 사람들이 링크를 눌러서 쓰면 웹, 앱스토어에서 깔아서 쓰면 앱이다. 카메라·알림·오프라인이 꼭 필요하면 앱이고, 그게 아니면 대개 웹으로 시작하는 게 빠르다. 깔 필요도 없고 심사도 없으니까.
망설여지면 웹으로 간다. 웹은 오늘 만들어 오늘 링크를 보낼 수 있고, 나중에 앱으로 옮겨도 늦지 않다.
웹은 정할 게 다섯 개다. 하나씩 보면 어렵지 않다. 표에서 주황색이 처음에 고를 것이다.
| 정할 것 | 처음엔 이걸 | 언제 다른 걸 |
|---|---|---|
| 저장할 게 있나 | 없으면 HTML 한 파일 | 글·계정을 저장하면 서버가 필요 |
| 서버 스택 | 가벼우면 Node 내장(의존성 0) | 규모가 커지면 Next.js·Django |
| 데이터 저장소(DB) | SQLite(파일 하나) | 여럿이 동시에 쓰면 PostgreSQL |
| 어디에 올리나 | 정적이면 Cloudflare Pages·GitHub Pages(무료) | 서버가 있으면 Railway(가장 쉬움) |
| 주소(도메인) | 무료 서브도메인 먼저 | 자리 잡으면 도메인 구매 |
왜 HTML 한 파일부터냐. 오늘의 할 일 목록, 간단한 소개 페이지, 계산기 같은 건 저장이 필요 없다(또는 브라우저 안에만 저장하면 된다). 이럴 땐 파일 하나면 끝이고, 서버나 DB 이야기를 아예 안 꺼내도 된다. 처음 성공을 제일 빨리 보는 길이다.
저장이 필요해지면. 방명록처럼 남이 남긴 글이 남아야 하면 그때 서버가 등장한다. 처음엔 무겁게 갈 필요 없다. Node 내장 기능만으로 서버를 띄우고 SQLite(파일 DB)를 쓰면 설치할 것도 거의 없다. 커져서 여럿이 동시에 쓰기 시작하면 그때 PostgreSQL로 옮기면 된다.
앱은 "무엇으로 만드나"가 가장 크다. 대부분 한 곳에서 시작한다.
| 정할 것 | 처음엔 이걸 | 언제 다른 걸 |
|---|---|---|
| 무엇으로 만드나 | Expo(React Native), JS로 iOS·안드 동시 | 카메라·센서·성능이 핵심이면 네이티브 Swift |
| 데스크톱 앱이면 | Electron, 맥·윈도우 앱 | (웹 기술 그대로 데스크톱으로) |
| 데이터 저장 | 기기 안에 저장(expo-sqlite, 계정·서버 0) | 여럿이 공유하면 서버(Railway) |
| 빌드·테스트 | Expo 클라우드 빌드로 실기기에 | 손에 익으면 로컬 Xcode 출하 |
| 스토어에 올리기 | Apple 개발자 계정(연 $99)에 심사 | 안드는 Google Play(1회 $25) |
왜 Expo부터냐. 자바스크립트 하나로 iPhone과 안드로이드 앱을 동시에 만들고, 복잡한 빌드를 클라우드가 대신 해준다. 메모·기록·간단한 도구 같은 첫 앱은 여기서 충분하다. 카메라를 실시간으로 다루거나, 아주 매끄러운 성능이 제품의 핵심일 때만 네이티브(Swift)를 꺼내면 된다.
웹과 크게 다른 점. 앱은 만든 걸 스토어 심사에 통과해야 남에게 닿는다. 개발자 계정(애플은 연 $99), 앱 아이콘, 권한 설명 문구, 심사 지침처럼 웹엔 없던 관문이 붙는다. 그래서 만들기보다 내보내기가 더 걸린다(그 함정은 5장에서).
말로만 하면 안 와닿는다. 실제로 프롬프트를 치면 뭐가 나오는지 돌려서 보여준다. 아래 화면은 전부 진짜 결과물이다. 먼저 웹부터 본다. 간단한 방명록을 만든다.


여기서 2장의 선택이 등장한다. 저장이 필요해졌으니 브라우저 안 저장(간단)이나 서버에 SQLite(제대로) 중에 고른다. 올리는 건 Cloudflare Pages(무료)면 링크가 생긴다. AI에게 차근차근 알려달라고 하면 단계별로 짚어준다.

처음엔 누구나 같은 자리에서 막힌다. 미리 알면 안 무섭다.
