10/12 월요일. 실제 수강생 리허설 전이며, 일별 배치와 분량은 운영 결과로 조정합니다.
오늘의 결과
지금까지는 내 컴퓨터 안에서 되는 것을 다뤘습니다. 오늘은 밖에서도 되어야 하는 것을 다룹니다. 데이터 저장, 로그인, 외부 서비스 연결이 그렇습니다.
이번에는 스펙을 새로 쓰지 않고 기존 스펙에 추가·수정합니다. 그게 오늘 익힐 방식입니다.
왜 이게 따로 필요한가
내 컴퓨터에서 되던 기능이 배포하면 안 되는 일이 흔합니다. 이유는 대개 하나입니다.
| 내 컴퓨터에서는 | 배포 환경에서는 |
|---|---|
| 파일에 저장하면 남는다 | 파일이 사라지거나 쓸 수 없다 |
| 내 폴더의 데이터를 읽는다 | 그 폴더가 없다 |
| 설정값이 내 컴퓨터에 있다 | 없거나 다르게 넣어야 한다 |
"로컬에서 됐는데요"가 가장 자주 나오는 지점이 여기입니다. 그래서 1주차 배포와 따로 다룹니다.
시작할 재료
어제까지 갱신한 스펙, 1주차에 쓴 배포 대상과 주소, 저장이 필요한 기능이 있으면 그 기능.
이 페이지의 순서
작업 위치 확인 → 바깥 기능 판단 → 스펙 추가·수정 → 구현 → 재배포 → 실제 주소 확인입니다.
1. 작업 위치 확인하기
작업 위치: Codex에서 연 내 MVP 폴더
specs/ 안의 명세를 읽고, 데이터 저장·로그인·외부 연결이 필요한 기능이 있는지 확인해줘.
각 기능이 지금 어떻게 동작하는지(내 컴퓨터 안에서만인지, 밖에서도 되는지) 구분해서 보여줘.
아직 아무것도 고치지 마.완료 확인: 내 앱에서 바깥이 필요한 기능이 무엇인지 확인됐습니다.
2. 지금 정말 필요한지 판단하기
작업 위치: 내 판단
여기서 멈춰서 생각해야 합니다. 바깥 기능은 들어가는 순간 확인할 것이 몇 배로 늘어납니다.
| 하고 싶은 것 | 정말 지금 필요한가 |
|---|---|
| "여러 사람이 각자 데이터를 본다" | 로그인이 필요합니다. 이번 주에 하기엔 큼 |
| "내가 넣은 게 다음에도 남는다" | 저장만 있으면 됩니다. 이번 주 범위에 맞음 |
| "다른 기기에서도 본다" | 저장 위치가 밖에 있어야 합니다. 범위 중간 |
| "AI가 내 데이터를 읽는다" | 외부 연결이 필요합니다. 3주차 이후가 적당 |
지금 안 해도 되는 것은 스펙의 제외 범위에 적고 넘깁니다. 적어두면 사라지지 않습니다.
내가 원하는 건 이거야: (하고 싶은 것을 적습니다)
이걸 하려면 저장·로그인·외부 연결 중 무엇이 필요한지 알려줘.
가장 간단한 방법과 그보다 큰 방법을 나눠서 보여주고, 각각 내가 확인해야 할 것이 몇 가지 늘어나는지 알려줘.
지금 당장 필요하지 않으면 그렇게 말해줘.완료 확인: 오늘 추가할 것 하나와, 다음으로 미룰 것이 구분됐습니다.
3. 기존 스펙에 추가·수정하기
작업 위치: 같은 MVP 폴더 대화
새 기능 폴더를 또 만들지 않습니다. 어제까지 쓴 스펙을 고칩니다. 이게 오늘 익힐 방식입니다.
입력창에 /를 누르고 speckit-specify을 골라 이어서:
기존 명세에 이번 변경을 추가·수정해줘. 새 기능 폴더를 만들지 말고 현재 명세를 고쳐줘.
추가할 것: (고른 것을 한 문장으로)
저장이 필요하면 어디에 저장하는지, 새로고침·다른 기기에서 어떻게 되어야 하는지 명세에 적어줘.
배포 환경에서 되는지 안 되는지 확인이 필요한 항목은 미확인으로 표시해줘.
이번에 안 하는 것은 제외 범위에 추가해줘.
어느 항목이 수정됐고 어느 항목이 추가됐는지 알려줘.스펙을 수정했을 때 뭐가 달라졌는지 꼭 확인하세요. 기존 확인 행동이 사라지면 안 됩니다.
완료 확인: 기존 명세가 갱신됐고, 추가·수정된 항목을 내가 확인했습니다.
4. 계획과 구현
작업 위치: 같은 MVP 폴더 대화
입력창에 /를 누르고 speckit-plan을 골라 이어서:
갱신한 명세의 구현 계획을 세워줘.
배포 환경에서도 동작하는 방법으로 세워줘. 내 컴퓨터에만 있는 파일이나 설정에 의존하지 마.
유료 가입이 필요한 방법이면 먼저 말해줘. 무료로 가능한 방법이 있으면 그걸 먼저 보여줘.계획을 읽고 /speckit-tasks → /speckit-implement 로 이어갑니다. 어제와 같은 순서입니다.
완료 확인: 로컬에서 새 기능이 되고, 원래 되던 것도 그대로입니다.
5. 재배포하기
작업 위치: 내 배포 도구 (1주차에 쓴 곳)
로컬에서 확인한 뒤에만 배포합니다.
1주차에 배포한 방법과 대상 주소를 확인해줘.
전송할 소스, 제외할 것(비밀값·개인 기록·인터뷰 원문), 현재 접근 범위를 먼저 보여줘.
배포 환경에서 지원되지 않는 기능이 있으면 숨기지 말고 설명해줘.
새 배포 대상을 만들지 말고 기존 주소에 올리는 방법으로 알려줘.
내가 범위를 확인하면 재배포하고 성공 상태와 주소를 알려줘.완료 확인: 배포가 끝났고 주소가 1주차와 같습니다. 제외할 것이 실제로 빠졌습니다.
6. 실제 주소에서 확인하기
작업 위치: 브라우저 — 내 컴퓨터가 아닌 주소
세 가지는 따로 확인합니다. 하나가 됐다고 나머지가 된 게 아닙니다.
| 확인 | 보는 방법 |
|---|---|
| 주소가 열린다 | 브라우저에서 주소 입력 |
| 새 기능이 된다 | 명세의 확인 행동을 해봄 |
| 저장이 된다 | 입력 → 새로고침 → 남아 있는지 |
| 다른 기기에서도 된다 | 폰에서 열어 같은 것 확인 |
| 원래 기능이 살아 있다 | 1주차 핵심 동작 |
배포본에서만 안 되는 것이 있으면 그게 오늘의 가장 좋은 기록입니다. 왜 로컬과 다른지가 사례글 재료입니다.
완료 확인: 다섯 가지를 각각 확인했습니다. 안 되는 것은 무엇이 안 되는지 적었습니다.
개념 네 가지
API — 바깥 기능을 불러다 쓰기
날씨를 띄우거나 지도를 넣는 것처럼, 내가 직접 만들지 않고 남의 서비스에 요청해서 결과를 받는 방식입니다.
- API — 남이 만든 기능을 내 프로그램이 불러다 쓰는 창구.
- 키(key) — 그 창구를 쓸 때 "나야"를 증명하는 비밀번호 같은 것. 코드에 그대로 적지 않고 환경변수로 따로 보관합니다.
내 프로젝트에 [이 기능]을 넣고 싶은데 직접 만들긴 어려울 것 같아.
API로 가져올 수 있는지, 초보가 붙이기 쉬운 것 위주로 무료 기준으로 찾아봐줘.데이터는 어디에 남는가
| 저장 위치 | 특징 |
|---|---|
| 브라우저 안 | 그 브라우저에서만 남음. 다른 기기에선 안 보임. 가장 간단 |
| 서버 밖 저장소 | 어디서나 보임. 설정과 확인할 것이 늘어남 |
| 파일 | 내 컴퓨터에서는 되지만 배포 환경에서 자주 안 됨 |
"다른 기기에서도 보여야 하나"가 갈림길입니다. 아니라면 가장 간단한 것으로 충분합니다.
DB(데이터베이스)가 필요해지는 건 대개 이 셋 중 하나일 때입니다.
- 데이터가 계속 늘어난다 (하나둘이 아니라 수백, 수천)
- 나 말고 남이 입력한다 (다른 사람이 글을 쓰거나 신청한다)
- 찾아야 한다 (조건을 걸어 걸러내고 정렬해야 함)
셋 다 아니면 파일이나 브라우저 저장으로 충분합니다. 필요해지면 그때 옮기면 됩니다.
로그인은 왜 큰 일인가
로그인은 기능 하나가 아니라 여러 기능의 묶음입니다. 가입·로그인·비밀번호 찾기·내 데이터만 보기·남의 데이터 막기가 전부 따라옵니다.
그래서 "로그인 넣고 싶다"는 생각이 들면, 먼저 정말 사람마다 다른 데이터가 필요한지 보세요. 나만 쓰는 앱이면 필요 없습니다.
MCP — AI를 바깥과 연결하는 방법
AI가 내 파일, 내 데이터베이스, 외부 서비스를 직접 다루게 하는 표준 연결 방식입니다. Codex나 Claude에 MCP 서버를 붙이면 AI가 그 도구를 쓸 수 있게 됩니다.
이번 주에 꼭 필요한 건 아닙니다. 다만 "AI가 내 데이터를 직접 읽게 하고 싶다"는 생각이 들 때 찾아볼 이름으로 기억해두세요. 3주차 이후에 다룹니다.
막혔을 때
| 증상 | 할 일 |
|---|---|
| 로컬에선 되는데 배포하면 안 된다 | 로컬과 배포 환경의 차이를 AI에게 확인시킵니다. 급하면 지난 배포로 되돌립니다 |
| 유료 가입을 요구한다 | 멈춥니다. 무료 대안을 비교하고, 없으면 이번 주 범위에서 뺍니다 |
| 저장이 새로고침하면 사라진다 | 저장 위치를 확인합니다. 브라우저 안에 저장하는 가장 간단한 방법부터 봅니다 |
| 배포가 아예 막혔다 | 로컬 사용 증거와 배포 장애를 따로 기록합니다. 로컬 결과는 결과입니다 |
| 비공개 기록이 배포에 섞일까 걱정된다 | 화면에서 안 보이는 것과 소스에서 빠지는 것은 다릅니다. 5번 프롬프트가 둘을 구분해 보여줍니다 |
배포 환경이 맞지 않으면 임의로 다른 유료 서비스에 가입하지 않습니다. 현재 결과를 보존하고 대안을 비교하세요.
오늘의 마무리
1단계 · 학습일지 — 학습허브 폴더에서 학습메이트한테 아래 프롬프트를 넣으세요.
오늘 학습일지 작성해줘.오늘 남길 재료는 추가한 바깥 기능, 미룬 것과 그 이유, 스펙에서 수정된 항목, 로컬과 배포본의 차이입니다. 다 끝내지 못했어도 현재 상태를 기록해요.
2단계 · 사례글 — 학습메이트가 제안하는 소재 중 하나 골라 사례글로.
3단계 · 업로드 — 미리보기로 복사 → 지피터스에 붙여넣기 → 24기 AI놀이터 태그 → 발행
✅ 사례글이 올라가면 오늘 완주.