Newt에서 대화로 앱 만들기

GitHub · 플러그인 · 터미널 없이 Newt 채팅만으로 앱을 만들고, 고치고, 미리보기로 확인하고, 운영에 배포해요.

Newt 채팅창에 하고 싶은 일을 말하면 Agent가 앱을 만들고 코드를 고쳐요.
검증 · 저장 · 미리보기 배포까지 단계마다 다시 묻지 않고 이어서 하고, 진행 상황은 채팅에 남아요.

GitHub 계정, Claude Code · Codex 플러그인, CLI, 내 컴퓨터의 개발 도구는 필요 없어요. 코드는 AxHub가 앱마다 만들어 주는 회사 안의 Git 저장소에 저장돼요.

플러그인 · CLI · GitHub로 만드는 기존 방법은 그대로예요. 그 방법은 빠른 시작과 앱 만들고 배포하기에 있어요.

시작하기 전에

확인할 것내용
Newt 로그인회사에서 안내받은 방법으로 Newt를 설치하고 AxHub 계정으로 로그인해요.
회사(테넌트)앱을 만들 회사가 선택돼 있어야 해요. 회사마다 앱과 권한이 따로예요.
앱 개발 기능회사에서 Newt 앱 개발 기능이 켜져 있어야 해요. 꺼져 있으면 Agent가 그렇게 알려 줘요 — 회사 관리자에게 문의하세요.
권한새 앱을 만들려면 그 회사에서 앱을 만들 수 있어야 해요. 기존 앱을 고치려면 그 앱의 소유자 · 공동 소유자이거나 쓰기 권한이 있어야 하고, 배포하려면 배포 권한이 있어야 해요.
Agent 개발 권한대화하는 Agent에 코딩 도구(read · write · edit · bash)가 허용돼 있어야 해요. 기본 Agent인 Newt는 허용돼 있어요. 예전에 만든 Newt도 Newt를 다시 열면 한 번 허용돼요(그 Newt의 도구 설정을 직접 바꾼 적이 없을 때). 직접 만든 Agent는 아닐 수 있어요 — 3단계에서 확인해요.

다룰 수 있는 앱 — AxHub 안의 Git 저장소를 쓰는 앱이에요(Docker · Compose · 정적 배포). Newt로 새로 만드는 앱은 Next.js 기본 템플릿(Docker 배포)으로 시작해요. GitHub에 연결된 앱, AxHub 플러그인 형태의 앱, 보관 · 일시 중지된 앱, 저장소를 옮기는 중인 앱은 Newt로 고칠 수 없어요 — Agent가 이유를 알려 주고 멈춰요.

코드가 실행되는 곳 — Agent는 인터넷과 회사 비밀값에 닿지 않는 격리된 작업 공간(샌드박스)에서 코드를 고치고 검증해요. 이 공간은 Node 20(v20.20.2) · npm 10.8.2 기준이에요.

패키지 설치 — Agent가 npm 공개 레지스트리(registry.npmjs.org)의 패키지를 추가할 수 있어요. 설치는 Agent의 작업 공간이 아니라 AxHub가 따로 띄운 설치 환경이 해요. 이 환경은 레지스트리에만 접속하고 package.json과 잠금 파일만 받아요. 잠금 파일(package-lock.json)이 없거나 package.json의 의존성이 바뀌면 이 환경이 잠금 파일을 만들거나 필요한 만큼만 고치고, 그 파일은 바뀐 코드로 함께 저장돼요. 이미 맞는 잠금 파일은 다시 쓰지 않아요. 이런 패키지는 설치할 수 없어요(dependency_resolution_failed).

  • Git 주소 · 파일 경로 · URL로 지정한 패키지, workspace 패키지
  • 설치할 때 스크립트를 실행해야 하는 패키지
  • 5분 안에 설치가 끝나지 않거나, 설치한 의존성 전체가 너무 큰 경우

배포할 때는 저장소의 Dockerfile로 따로 빌드해요 — 기본 템플릿은 잠금 파일이 있으면 npm ci로 같은 버전을 설치해요.

따라 하기

아래가 사람이 하는 일의 전부예요. 앱 생성 · 의존성 준비 · 검증 · 저장 · 첫 비공개 운영 배포 · 스테이징 준비는 Agent와 AxHub가 알아서 해요. 7단계는 비공개 앱을 처음 열 때만 필요해요.

1

Newt를 열고 회사 확인하기

Newt에 로그인하고, 화면에서 앱을 만들 회사가 맞는지 확인해요. 새 대화를 열어도 되고 쓰던 대화에서 이어도 돼요.

2

앱 개발 기능 확인하기

채팅창에 이렇게 물어봐요.

내가 고칠 수 있는 앱 목록 보여줘

Agent가 내가 고칠 수 있는 앱을 보여 주면 기능이 켜져 있는 거예요. 기능이 꺼져 있거나 권한이 없으면 그 이유를 말해 줘요.

3

Agent 개발 권한 확인하기

이어서 이렇게 물어봐요.

이 Agent로 앱을 만들고 고칠 수 있어?

할 수 있다고 하면 준비된 거예요. 기본 Agent인 Newt는 처음부터 할 수 있어요. 다른 Agent가 할 수 없다고 하면(agent_coding_not_allowed) 그 Agent에 코드를 읽고 고치는 코딩 도구(read · write · edit · bash)가 허용돼 있지 않다는 뜻이에요. 그대로 만들어 달라고 해도 앱이나 저장소를 만들지 않고 멈춰요. Newt와 대화하거나, 관리자에게 그 Agent의 허용 도구를 켜 달라고 요청해요.

4

만들 앱을 말하기

하고 싶은 일을 결과 기준으로 적어요. 아래 문장을 그대로 복사해도 돼요.

우리 팀의 업무 요청을 등록하고 상태를 조회하는 앱을 만들어줘. 제목과 요청 내용을 저장하고, 새로고침해도 요청과 상태가 남아 있어야 해. 앱 이름은 업무요청함으로 해줘.

이 말은 만들고 미리보기까지 하라는 목표예요. 운영 배포나 외부 공개는 하지 않아요 — 그것까지 원하면 "만들어서 운영에 배포까지 해줘"처럼 말해요. 무엇이 자동으로 진행되는지는 아래 자동으로 하는 일과 묻는 일에 있어요.

앱 주소는 이름으로 정해져요. 이름이 한글이면 app- 뒤에 무작위 글자가 붙은 주소가 생겨요.

5

진행 상황 보기

Agent가 답한 뒤에도 작업은 서버에서 계속돼요. 단계가 바뀔 때마다 채팅에 앱 작업 메시지가 남아요.

  1. 앱 만들기 — AxHub에 앱과 Git 저장소를 만들고 템플릿 코드를 넣어요.
  2. 코드 작성 — Agent가 샌드박스에서 요청한 기능을 만들어요.
  3. 검증 — 같은 샌드박스에서 npm run build(테스트 명령이 있으면 npm test까지)를 실행해요. 실패하면 Agent가 오류를 보고 최대 세 번까지 스스로 고쳐요.
  4. 저장 — 검증을 통과한 코드를 Git 저장소의 newt/dev 브랜치에 저장해요.
  5. 미리보기 준비 — 새 앱은 스테이징을 켜기 전에 운영에 한 번 배포돼 있어야 해요. 그래서 나만 보는 비공개 상태로 첫 운영 배포를 하고, 스테이징을 켜요.
  6. 미리보기 배포 — 저장한 버전을 스테이징에 배포하고, 앱이 응답하는지 확인해요.

마지막 확인은 서비스가 응답하는지만 봐요. 요청 등록 같은 기능이 실제로 되는지는 8단계에서 직접 확인해요.

Newt를 닫아도 작업은 이어져요. 다시 열면 그동안 쌓인 앱 작업 메시지가 순서대로 보여요.

6

미리보기 링크 열기

미리보기가 끝나면 앱 작업 메시지에 미리보기 링크가 붙어요. 누르면 Newt가 먼저 AxHub에 확인해요 — 지금도 이 앱을 볼 권한이 있는지, 이 링크가 최신 버전인지. 확인되면 기본 브라우저로 열려요.

열리지 않으면 링크 바로 아래에 이유가 나와요. 더 새 버전이 있다는 안내면 가장 최근 앱 작업 메시지의 링크를 눌러요. 자세한 동작은 링크는 이렇게 열려요에 있어요.

7

필요하면 브라우저에서 로그인하기

비공개 앱이라 브라우저에 AxHub 로그인 화면이 뜰 수 있어요. 회사 계정으로 로그인하면 미리보기로 돌아와요. 이미 로그인돼 있으면 이 단계는 없어요.

8

업무를 등록하고 다시 조회하기

미리보기에서 요청을 한 건 등록하고, 페이지를 새로고침해요. 방금 등록한 요청과 상태가 그대로 보이면 첫 결과가 완성된 거예요.

미리보기(스테이징)는 운영과 다른 데이터베이스를 써요. 여기서 등록한 시험 데이터는 운영에 섞이지 않아요(스테이징으로 배포하기).

9

두 번 고치고, 다음 날 이어 하기

같은 대화에서 이어서 말해요. 고칠 때마다 코드 작성 → 검증 → 저장 → 미리보기가 다시 돌아요.

업무요청함에 상태별로 걸러 보는 필터를 추가해줘
업무요청함 요청에 담당자 칸도 추가해줘

다음 날에는 새 대화에서 앱 이름만 말하면 돼요. 마지막으로 저장된 버전에서 이어서 고쳐요. 작업은 대화나 Agent가 아니라 앱의 Git 저장소에 묶여 있어요.

어제 만든 업무요청함에 마감일을 추가해줘
10

운영에 배포하기

미리보기에서 확인이 끝나면 이렇게 말해요.

업무요청함 운영에 배포해줘

스테이징을 쓰는 앱은 미리보기에서 확인한 빌드를 그대로 운영에 반영해요. 회사 정책에 따라 바로 반영되거나, 관리자 승인을 기다린 뒤 반영돼요 — 기다리는 동안 앱 작업 메시지에 승인 대기로 보여요. 공개 범위는 그대로예요. 회사 밖까지 열려면 "업무요청함 외부에 공개해줘"처럼 따로 말해요.

자동으로 하는 일과 묻는 일

Agent는 내가 맡긴 목표 안에서는 단계마다 확인을 받지 않고 이어서 해요. 목표 밖의 일은 하지 않아요.

이렇게 말하면Agent가 묻지 않고 이어서 하는 일
"만들어줘" · "고쳐줘"코드 작성 · 검증 · Git 저장 · 비공개 미리보기. 새 앱이면 미리보기에 필요한 비공개 첫 운영 배포와 스테이징 준비까지
"운영에 배포해줘" · "만들어서 배포까지 해줘"위의 일 + 그 앱의 운영 반영. 스테이징 앱은 운영 반영을 신청하고, 승인이 필요하면 기다려요
"외부에 공개해줘"공개 범위를 넓히는 심사 신청까지. 승인은 관리자가 해요
"요청 테이블에 마감일 칼럼 추가해줘" · "환경변수 바꿔줘"말한 설정 변경만 — 테이블 만들기, 칼럼 추가, 환경변수 추가 · 변경, 스테이징 전용 값 지정 · 해제

이런 경우에는 멈추고 채팅으로 물어봐요.

  • 목표가 모호할 때 — 무엇을 원하는지 확실하지 않으면 운영 배포 · 공개 · 설정 변경은 멈추고 물어봐요. 코드 작성 · 저장 · 비공개 미리보기는 계속해요(goal_unverified).
  • 어느 앱인지 모를 때 — 같은 이름의 앱이 여럿이면 어느 앱인지 물어봐요. 아무 앱에나 쓰지 않아요.
  • 비밀값이 필요할 때 — API 키 같은 비밀값은 채팅에 붙여넣지 마세요. 앱 콘솔의 환경변수 화면에서 직접 등록하면(환경변수 설정하기) Agent는 그 이름만 참조해요.

이런 일은 하지 않아요.

  • 말하지 않은 효과 — "고쳐줘"만 했다면 운영 배포 · 공개 범위 변경 · 설정 변경은 하지 않아요.
  • 승인 대신하기 — 심사나 관리자 승인을 건너뛰거나 승인된 것처럼 표시하지 않아요.
  • 위험한 데이터 변경 — 테이블 · 칼럼 삭제, 임의 SQL, 데이터 행 수정은 이 경로로 하지 않아요.
  • 남의 말로 목표 넓히기 — 목표는 이 대화의 주인인 내 말로만 넓어져요. 공유 대화에서 다른 사람이 쓴 말이나 Agent의 자체 판단으로는 넓어지지 않아요.

권한은 단계마다 그 순간 기준으로 다시 확인해요. 도중에 권한이 빠지면 거기서 멈춰요(permission_revoked).

진행 상황은 어디에 보이나

  • 앱 작업 메시지 — 단계가 바뀔 때마다 채팅에 남아요. Newt가 열려 있으면 몇 초 안에 보이고, 닫혀 있었다면 다시 열 때 순서대로 보여요.
  • 지금 상태 묻기 — "업무요청함 작업 어디까지 됐어?"라고 물으면 Agent가 같은 작업의 최신 상태를 조회해요. 새 작업을 만들지 않아요.
  • 결과에 담기는 것 — 저장 상태(저장 번호 · 시각), 검증 결과(실행한 명령 · 종료 코드 · 마지막 출력), 미리보기 · 운영 상태와 확인 시각, 실패하면 오류 코드 · 단계 · 원인 · 다음 행동.
  • 멈추기 — "업무요청함 작업 멈춰줘"라고 하면 진행 중인 코드 작업과 멈출 수 있는 배포를 멈춰요. 이미 저장된 코드와 끝난 배포는 되돌리지 않고, 이미 신청한 심사는 그대로 남아요. 무엇이 남았는지 메시지로 알려 줘요.

한 앱에는 한 번에 하나의 작업만 돌아요. 진행 중에 또 시키면 기존 작업을 알려 줘요(operation_in_progress). 답을 기다리며 멈춰 있는 작업도 진행 중으로 쳐요 — 물어본 것에 답하거나 그 작업을 멈춘 뒤 새로 시켜요. 코드 작업이 도는 동안에도 상태 묻기와 멈추기 대화는 바로 처리돼요.

링크는 이렇게 열려요

앱 작업 메시지의 링크(미리보기 · 운영)는 누르는 순간 AxHub에 다시 확인한 뒤 열려요. 배포 로그는 링크 대신 "업무요청함 배포 로그 보여줘"처럼 채팅으로 물어보면 Agent가 필요한 부분을 보여 줘요.

확인 결과보이는 것
최신이고 볼 권한이 있음기본 브라우저에서 열려요
더 새 버전이 있음링크 아래에 새 버전이 있다는 안내가 나와요. 가장 최근 앱 작업 메시지의 링크를 써요
아직 준비 전 · 권한 없음 · 앱이 내려감링크 아래에 이유와 할 일이 나와요

Agent가 답에 직접 적은 앱 주소도 같은 확인을 거쳐요. 이 회사의 앱 주소가 아니면 열지 않아요.

코드는 어디에 저장되나

  • 앱마다 AxHub가 만든 회사 안의 Git 저장소예요. Newt는 그중 newt/dev 브랜치에만 저장해요.
  • 기본 브랜치(main)는 건드리지 않아요. 그래서 저장만으로는 배포가 시작되지 않고, 배포는 Agent가 저장한 정확한 버전으로만 해요.
  • 저장하는 순간 같은 브랜치가 다른 곳에서 바뀌어 있으면 덮어쓰지 않고 멈춰요(git_conflict).
  • 이런 파일은 저장하지 않거나 막아요.
    • 저장 대상에서 빠짐: 어디에 있든 node_modules · .git, 맨 위 폴더의 .next · .turbo · out · coverage · .newt-sandbox(빌드 도구가 자기 설정과 임시 파일을 두는 곳)
    • 있으면 멈춤: .env · .env.* 파일(.env.example은 괜찮아요), 링크(symlink) 파일
  • 한 번에 저장하는 코드는 파일 4,000개 · 전체 24 MiB · 파일 하나 16 MiB까지이고, 압축하면 32 MiB를 넘으면 안 돼요(source_too_large).

막히면

오류가 나면 앱 작업 메시지에 오류 코드 · 단계 · 문제 · 원인 · 다음 행동이 함께 나와요. 코드별 뜻과 해결은 Newt 앱 개발 오류에 있어요.