깔끔하게 옮겨져요
- Replit Agent 웹 앱: Express 서버와 React + Vite 프런트엔드
- Drizzle로 쓰는 PostgreSQL 테이블
- Replit Auth, 없어지고 회사 로그인으로 바뀌어요
- shadcn/ui, Tailwind, wouter, react-query 등 프런트엔드 라이브러리
2026년 10월 26일 확인
짧은 답
동료들이 이미 Replit 계정이 있다면 Replit 자체 비공개 게시를 쓰세요: Publishing 도구의 설정 하나이고, Starter와 Core 이상 요금제에서 돼요. 계정이 없거나, 회사 계정으로 로그인하게 하고 싶다면 앱을 TeamOnly로 옮기세요. zip으로 내려받거나 GitHub에 푸시하고, npx teamonly init를 실행한 뒤 AI 툴에 “이 앱을 TeamOnly로 옮겨 줘”라고 요청하세요. 화면은 그대로이고, Express 서버, Replit 데이터베이스, Replit Auth는 대체돼요. Python 앱은 옮길 수 없어요.
01먼저 이것부터
네. Replit의 Publishing 도구에는 선택지가 네 개인 Sharing 설정이 있어요. 두 개는 비공개이고, 둘 다 Replit 계정이 필요해요.
| 열 수 있는 사람 | 방문자에게 Replit 계정이 필요한가요? | 잘 맞는 경우 | |
|---|---|---|---|
| Public | 링크가 있는 인터넷의 누구나 | 아니요 | 비공개일 내용이 하나도 없을 때 |
| Password protected | 비밀번호를 아는 누구나 | 아니요. 모두 같은 비밀번호 하나 | 간단한 데모. 워크스페이스 관리자가 이 옵션을 끌 수 있어요 |
| Workspace only | Replit 워크스페이스의 관리자, 멤버, 뷰어 | 예 | 동료들이 이미 Replit 워크스페이스에 있을 때 |
| Invite only | 나, 워크스페이스 관리자, 초대한 사람이나 그룹 | 예 | Replit을 쓰는 몇 사람 |
| TeamOnly | 회사 전체 또는 지정한 목록 | 아니요. 회사 Google, Microsoft 또는 이메일 코드 | 동료들에게 Replit 계정이 없을 때 |
Replit에 따르면 2026년 5월부터 비공개 게시는 Starter와 Core 이상 요금제에서 되고, 그전에는 Pro나 Enterprise가 필요했어요. Core는 월 $20, 연간 결제 시 $18예요. Pro는 월 $100이고 뷰어를 최대 50명까지 초대할 수 있어요. 50명이 넘으면 Enterprise가 필요하고, SSO와 감사 로그도 Enterprise에 있어요.
2026년 10월 26일 확인. Replit: 앱에 접근할 수 있는 사람, Core와 Starter의 비공개 게시, 요금, 뷰어 자리, Replit Auth, 내려받기 또는 GitHub 연결, 데이터베이스 연결 정보, pg_dump 백업. 요금제는 바뀌니 결제하기 전에 Replit에서 확인하세요.
02옮길 때
해당하는 게 없다면 Replit에 그대로 있으세요. 옮기는 건 실제 작업이 들고, Replit 자체 공유는 설정 하나예요.
03내 앱도 옮겨질까?
04방법
컴퓨터에 프로젝트 코드, Node.js, 그리고 Claude Code나 Cursor가 필요해요.
Replit에서 파일 트리 위쪽 메뉴를 열고 Download as zip을 고르세요. 또는 Git 도구에서 GitHub을 연결해 프로젝트를 푸시하고 클론하세요.
프로젝트 폴더에서 실행하세요:
npx teamonly init
npm installTeamOnly 앱에 필요한 파일과 AI 툴이 읽는 안내가 추가돼요. 기존 파일을 덮어쓰지 않아요.
이 앱을 TeamOnly로 옮겨 줘
AI는 TeamOnly 안내를 따라요: 모든 화면을 유지하고, Express 라우트를 TeamOnly 서버 라우트로 바꾸고, Drizzle 테이블을 앱 자체 데이터베이스에 다시 만들고, Replit Auth를 없애고, 무엇을 바꿨고 무엇을 못 옮겼는지 알려 줘요.
앱을 로컬에서 실행해요. 더 진행하기 전에 주요 화면을 눌러 보세요.
npx teamonly login
npx teamonly deployblog.acme.teamonly.app 같은 링크가 생겨요. 동료들은 링크를 열고 회사 계정으로 로그인해요.
05바뀌는 것
| Replit 앱에서 | TeamOnly에서 |
|---|---|
Replit Auth: 로그인 버튼, /api/login, 세션과 사용자 테이블 | 없어져요. 앱이 뜨기 전에 TeamOnly가 로그인을 처리하고, 앱은 누가 들어왔는지 읽어요. |
Express 서버(server/routes.ts) | 앱 서버 코드의 라우트, 같은 /api 경로 |
| Drizzle로 쓰는 PostgreSQL 테이블 | 첫 배포 때 만들어지는 앱 자체 데이터베이스(SQLite, Cloudflare D1 기반) |
| “로그인했는지”만 확인 | 편집자나 승인자 같은 역할, 대시보드의 앱 페이지나 npx teamonly roles로 줌 |
| Replit Secrets | npx teamonly secrets set으로 설정하는 시크릿, 브라우저로 절대 보내지 않음 |
| WebSockets 실시간 업데이트 | 새로 고침 버튼 |
.replit와 Replit Vite 플러그인 | 없어져요 |
06내 데이터
옮긴 앱은 빈 데이터베이스로 시작해요. 데이터는 복사하기 전까지 Replit에 남아 있어요.
Replit에서 Database 도구를 열고 프로덕션 데이터베이스를 고른 다음, Settings 탭에서 연결 문자열을 복사하세요. Replit은 외부 도구가 개발용이 아닌 프로덕션 데이터베이스에만 접속하게 해요.
psql 같은 PostgreSQL 도구로 테이블마다 CSV 파일로 내보내세요(아래 예시). 전체 백업도 해 두세요: Replit 자체 문서는 이때 pg_dump를 써요.
옮긴 앱의 가져오기 화면으로 CSV 파일을 불러오세요. 가져오기 화면이 없다면 앱을 온라인에 올리기 전에 AI 툴에 추가해 달라고 하세요.
psql로 테이블 하나를 CSV로:
psql "PRODUCTION_CONNECTION_STRING" \
-c "\copy your_table TO 'your_table.csv' CSV HEADER"실제 운영 중인 Replit 데이터베이스를 직접 옮겨 보지는 않았어요. 가져온 뒤 행 개수를 확인하세요.
07Python 앱
Python 앱은 TeamOnly로 옮길 수 없어요. TeamOnly는 Cloudflare에서 React 화면과 TypeScript 서버라는 한 종류의 앱만 실행하고, Flask, Streamlit, FastAPI, Django를 실행할 방법은 없어요.
Replit 앱이 Python이라면 위에 나온 Replit 자체 비공개 게시를 쓰세요. AI 툴에 React와 TypeScript로 다시 만들어 달라고 하는 건 옮기기가 아니라 새로 짜는 일이고, 저희는 테스트해 보지 않았어요.
08알게 된 것
GitHub에 공개된 Replit Agent 앱 하나를 가져와 옮겼어요. Express, React, Drizzle과 PostgreSQL, Replit Auth로 만든, 편집자 대시보드가 있는 블로그예요.
원래 앱에는 Replit Auth의 작동 방식에서 오는 허점이 있었어요: Replit 계정만 있으면 누구나 로그인할 수 있는데, 앱은 로그인한 사람을 모두 관리자로 취급했어요. 그래서 누구나 글을 수정하거나 삭제하고 모든 메시지를 읽을 수 있었어요. 옮긴 뒤에는 수정하려면 담당자나 편집자 역할이 필요하고, 서버에서 확인해요.
Publishing 도구의 Sharing에서 Workspace only나 Invite only를 고르세요. 그러면 방문자는 Replit 계정으로 로그인해요. Password protected도 있는데, 계정은 필요 없지만 모두가 같은 비밀번호 하나를 써요. Replit에 따르면 2026년 5월부터 비공개 게시는 Starter와 Core 이상 요금제에서 돼요.
Workspace only와 Invite only는 그래요: 방문자에게 Replit으로 로그인하라고 해요. Replit 팀에 뷰어로 추가한 사람은 계정이 없으면 계정을 만들라는 이메일을 받아요. 계정 없이 되는 건 Password protected 설정뿐이에요.
네. 프로젝트에서 파일 트리 위쪽 메뉴를 열고 Download as zip을 고르거나, Git 도구에서 GitHub을 연결해 코드를 푸시하세요. 데이터베이스는 따로예요: 다음 질문을 보세요.
자동으로는 안 돼요. 앱은 빈 데이터베이스로 옮겨져요. 프로덕션 데이터베이스(연결 문자열은 Database 도구의 Settings 탭에 있어요)에서 테이블을 CSV 파일로 내보낸 다음, 옮긴 앱의 가져오기 화면으로 불러오세요. 가져오기 화면이 없다면 AI 툴에 추가해 달라고 하세요.
없어져요. Replit Auth는 Replit 계정으로 로그인하게 해요. TeamOnly에서는 앱이 뜨기 전에 회사 Google 또는 Microsoft 계정이나, 회사 이메일로 받은 6자리 코드로 로그인하고, 앱은 누가 들어왔는지 전달받아요.
아니요. TeamOnly는 한 종류의 앱만 실행해요: React 화면과 TypeScript 서버. Flask, Streamlit, FastAPI, Django 앱은 실행할 수 없어요. 이런 앱은 Replit 자체 비공개 게시를 쓰세요.
아니요. 링크를 열고 이미 가진 회사 계정으로 로그인해요. 앱을 쓰기만 하는 사람은 무료예요.
일반적인 Replit Agent 앱이라면 AI 툴이 프로젝트에서 15~60분 작업하고, 내가 화면을 확인하는 시간이 더해져요. 서버 코드가 수천 줄인 앱은 더 걸려요. 1분이면 되는 건 그다음이에요: 배포에서 동료가 쓰기까지.
얼리 액세스
TeamOnly는 얼리 액세스 중이고, 지금 모든 요금제에 가입할 수 있어요. 카드 없이 14일 동안 무료로 써 보거나, 구독하세요. 어느 쪽이든 회사 설정이 바로 끝나고, 명령어 세 개면 첫 앱이 온라인에 올라가요.
질문은 hello@teamonly.dev로 보내 주세요. 사람이 직접 답해요.