AI로 iOS 앱 만들기: 놓치기 쉬운 함정과 검증 방법
글: Mehdi Azizi
업데이트, 9분
Claude, ChatGPT, Cursor는 iOS 코드를 빠르게 써 줘요. 하지만 서명, 구독, Apple 심사, 실제 iPhone 테스트는 직접 확인해야 해요.
AI로 iOS 앱 만들기: 짧은 답
네, 처음 시작하는 사람도 AI로 iOS 앱을 만들 수 있어요. 이렇게 만드는 방식을 바이브 코딩이라고 불러요. Claude, ChatGPT, Cursor는 화면, 내비게이션, 간단한 로직, 데이터베이스 호출을 아주 잘 작성해요. 반대로 코드 밖에서 일어나는 일은 잘 못해요. 앱 서명, App Store Connect 설정, 구독, Apple 심사, 그리고 실제 iPhone에서만 나타나는 크래시 같은 것들이요.
다시 말해, AI는 작업에서 가장 눈에 띄는 부분에서 몇 주를 아껴 주지만, 앱이 언젠가 출시될지를 결정하는 부분은 혼자 해결하게 남겨 둬요. 이 가이드에서는 그 경계가 어디인지, AI가 계속 쓸모 있도록 어떻게 이끌어야 하는지, 그리고 Apple이나 사용자가 대신 발견하기 전에 AI가 만든 결과물을 어떻게 검증하는지 보여 드릴게요.
저는 매일 Claude와 Cursor로 제 iOS 앱을 직접 만들어요. 미니 게임 알람 앱 Solys와 트레이딩 시뮬레이터 TradaZen은 App Store에 올라가 있어요. Nolera와 Clic은 Apple에 리젝된 뒤 수정했어요. 아래 내용은 모두 데모가 아니라 이 실제 작업에서 나온 거예요. 아직 도구를 고민 중이라면 iPhone 앱용 Claude Code, Cursor, ChatGPT 비교를 별도 가이드로 정리해 뒀어요.
AI가 정말 잘하는 것
화면과 내비게이션
화면을 정확하게 설명해 주면(무엇을 보여 주는지, 각 버튼이 무엇을 하는지, 목록이 비었을 때 어떻게 되는지) AI는 몇 초 만에 깔끔한 컴포넌트를 돌려줘요. 효과가 가장 극적인 부분이에요. 특히 React Native와 Expo에서 그런데, AI가 이런 종류의 코드를 엄청나게 많이 봤기 때문이에요. 제가 모든 앱에 쓰는 스택이기도 하고, 그 이유는 모바일 앱을 위한 React Native와 Expo 페이지에서 설명해요.
간단한 비즈니스 로직
점수 계산, 목록 정렬, 날짜 포맷, 폼 검증: AI는 빠르게, 꽤 잘 해요. 단, 경계 케이스를 알려 줘야 해요. 빈 목록, 너무 긴 입력값, 다른 시간대의 날짜 같은 것들이요. 직접 말하지 않으면 항상 처리해 주지는 않아요.
모르는 것 설명하기
가장 과소평가된 활용법이에요. 오류 메시지, 설정 일부, Apple의 리젝 사유를 붙여 넣고 "고치지 말고 이게 무슨 뜻인지 설명해 줘"라고 요청해 보세요. 설명이 내 프로젝트에 대한 것이라서 튜토리얼을 읽는 것보다 빨리 배워요.
백엔드 연결
Supabase에 테이블 만들기, 로그인한 사용자의 데이터를 읽는 함수 작성, 로딩 상태 처리: AI는 이런 도구를 잘 알아요. 보안만 계속 지켜보세요. 아래에서 다시 다룰게요.
iOS 앱을 만들 때 AI가 놓치는 것
"주말에 앱 하나 만들었어요" 같은 영상에서는 아무도 보여 주지 않는 부분이에요. 아래 항목 하나하나가 출시를 며칠씩 막을 수 있어요. 비공개 API에 대한 ITMS-90338처럼 업로드할 때 걸리는 자동 검사는 별개로요.
서명과 인증서
iPhone에서 실행하고 App Store에 올리려면 앱이 Apple Developer 계정에 연결된 인증서와 프로비저닝 프로파일로 서명되어 있어야 해요. AI는 원리는 설명해 줄 수 있지만, 허가된 접근 권한 없이는 내 계정을 알지 못해요. 이제는 없는 단계를 지어내기도 하고, Xcode 방식과 Expo 방식을 섞기도 해서 업로드할 때 ITMS-90034로 끝날 수 있어요. EAS Build를 쓰면 푸시 키를 포함해 이 파일들을 도구가 알아서 생성하고 관리해 줘요. 추측으로 만든 절차를 따르지 말고 도구에 맡기세요.
App Store Connect 설정
앱 정보 페이지, 번들 ID, 개인정보 보호 신고, 암호화 관련 질문, 스크린샷, 이용약관 링크: 이 정보들은 제출한 버전과 일치해야 해요. Chrome을 쓰는 Claude Code처럼 로그인된 브라우저에서 직접 작업할 수 있는 에이전트도 있어요. 이런 접근은 허가가 필요하고 결과도 확인해야 해요. 현재 화면을 읽지 않고 외워서 말하는 절차는 이미 낡았을 수 있어요.
구독
AI 때문에 시간을 가장 많이 잃는 부분이에요. 페이월 코드 자체는 쉬워요. 어려운 건 세 곳의 일관성이에요. App Store Connect에서 만든 상품, RevenueCat에서의 설정, 그리고 그걸 화면에 보여 주는 코드요. ID가 한 글자만 달라도, 상품이 아직 버전과 함께 심사에 제출되지 않았어도, 심사자 화면에서 페이월이 비어 보여요. 적절한 접근 권한을 주면 AI가 이 콘솔들을 읽을 수 있지만, 권한이 없으면 코드와의 일관성을 확인할 수 없어요. 전체 작업은 iOS 인앱 구독 페이지에 자세히 정리했어요.
Apple 심사
AI는 App Review Guidelines의 큰 줄기는 알지만, 심사자의 눈으로 앱을 볼 줄은 몰라요. 필수 화면이 작은 iPhone에서 잘린다거나, 평점 요청이 너무 일찍 뜬다거나, 심사 노트에 데모 계정이 빠졌다거나, 앱이 웹사이트와 너무 비슷해서 가이드라인 4.2에 걸린다는 걸 먼저 말해 주지 않아요. 앞의 두 가지는 제가 Solys에서 실제로 받은 리젝이고, Apple이 앱을 리젝하는 이유에서 이야기했어요.
실제 iPhone에서의 크래시
시뮬레이터와 개발용 앱은 많은 걸 너그럽게 넘어가요. 프로덕션의 실제 iPhone은 아니에요. 빌드에 빠진 네이티브 모듈, 설명 문구가 없는 권한 요청, 시작할 때 너무 일찍 데이터를 읽는 코드: 앱이 열리자마자 아무 메시지 없이 닫혀요. 에이전트가 테스트를 실행하거나 스크린샷을 분석할 수는 있지만, 검증 환경이 그걸 허용할 때만 가능해요. 시뮬레이터 결과만으로는 iPhone에 설치된 바이너리를 검증할 수 없어요. 매번 제출하기 전에 직접 휴대폰에 앱을 설치해야 하고, TestFlight가 바로 그걸 위한 도구예요.
AI는 맞아 보이는 코드를 써요. 정말 맞는지는 iPhone에서 테스트해야만 알 수 있어요.
AI가 계속 쓸모 있도록 이끄는 법
문제는 거의 언제나 모델의 지능이 아니에요. AI에게 무엇을 읽게 하느냐예요.
맥락을 한 번에 제대로 알려 주세요
프로젝트 루트에 스택(Expo, SDK 버전, Supabase, RevenueCat), 폴더 구조, 규칙을 설명하는 짧은 파일을 만드세요. Claude Code는 CLAUDE.md 파일을 읽고, Cursor는 자체 규칙 파일이 있어요. 이 맥락이 없으면 AI는 추측하고, 내 것과 다른 스택을 추측하는 경우가 많아요. Claude Code로 앱 만들기 튜토리얼에 이 파일의 전체 예시가 있어요.
작은 작업으로 나누세요
"구독 기능이 있는 습관 추적 앱 만들어 줘"는 거대하고 깨지기 쉬운 프로젝트를 만들어요. "오늘의 습관 목록 화면을 만들어 줘. 빈 상태와 로딩 상태도 포함해서"는 5분 안에 읽고 테스트할 수 있는 화면을 만들어요. 작업 하나, 검증 가능한 결과 하나, 그다음 작업.
코드보다 계획을 먼저 요청하세요
여러 파일에 걸친 작업이라면 "계획을 제안해 줘, 아직 코드는 쓰지 마"로 시작하세요. 계획을 읽고, 잘못된 부분을 고친 다음 실행하세요. 버튼 하나 추가하려다 AI가 프로젝트 절반을 다시 쓰는 깜짝 리팩터링을 피할 수 있어요.
최신 문서를 읽게 하세요
도구는 빠르게 바뀌어요. Expo, RevenueCat, App Store Connect는 수시로 달라져요. 답이 미심쩍으면 공식 문서 페이지를 대화에 붙여 넣거나, 문서를 대신 넣어 주는 도구를 쓰세요. 오늘의 문서를 읽은 AI는 2년 전 문서를 기억하는 AI보다 훨씬 덜 틀려요.
결정권은 직접 쥐고 있으세요
AI는 제안하고, 결정은 내가 해요. 아이디어, 가격, 앱이 하지 않을 것을 정하는 건 내 일이에요. AI가 제안하는 기능을 전부 넣게 두면 한 가지를 아주 잘하는 대신 열 가지를 어중간하게 하는 앱이 돼요. 첫 버전의 범위를 잡으려면 iOS 앱 MVP 페이지를 읽어 보세요.
AI가 만든 결과물을 검증하는 법
출시하는 사람과 반쯤 만든 프로젝트만 쌓는 사람을 가르는 능력이에요.
모든 변경 사항을 읽어 보세요
한 줄 한 줄 다 이해할 필요는 없어요. 하지만 세 가지 질문에는 답할 수 있어야 해요. 어떤 파일이 바뀌었는지, 왜 바뀌었는지, 내가 요청한 것과 맞는지. AI가 요청과 상관없는 파일을 건드렸다면 받아들이기 전에 이유를 물어보세요.
컴퓨터만이 아니라 iPhone에서 테스트하세요
가능한 한 빨리 내 휴대폰에 앱을 설치하고, 중요한 단계마다 다시 설치하세요. 설치 후 첫 실행, 비행기 모드, 작은 화면과 큰 화면, 폼에서 키보드가 열린 상태를 확인하세요. 제 모든 앱에서 Apple에 제출하기 전에 매번 지키는 규칙이에요.
내가 못 보는 걸 보는 도구를 추가하세요
제 앱에서는 Sentry가 원인이 된 코드 줄과 함께 크래시를 보고하고, PostHog가 사용자가 어디서 이탈하는지 보여 줘요. 이런 도구가 없으면 프로덕션 버그는 나쁜 리뷰가 달릴 때까지 보이지 않아요. 설치는 AI가 도와줄 수 있지만, 도구가 알려 주는 내용은 직접 봐야 해요.
데이터 보안을 지켜보세요
AI가 Supabase에 테이블을 만들면 접근 규칙(RLS 정책)이 제대로 켜져 있는지 확인하세요. 각 사용자는 자기 데이터만 읽을 수 있어야 해요. 디컴파일될 수 있는 앱 코드 안에 비밀 키가 들어가 있지 않은지도 확인하세요. 미리 금지하지 않으면 AI가 쉽게 저지르는 두 가지 실수예요.
반대 방향으로 질문하세요
코드를 다 쓴 뒤 "여기서 뭐가 깨질 수 있어?" 또는 "Apple 심사자처럼 이 코드를 검토해 줘"라고 물어보세요. 코드를 쓴 바로 그 모델도 질문의 각도를 바꾸면 자기가 놓친 걸 찾아내는 경우가 많아요. iPhone 테스트를 대신하지는 못하지만 왔다 갔다 하는 횟수는 줄여 줘요.
처음 시작할 때 현실적인 경로
- 아주 작은 아이디어를 고르세요: 핵심 기능 하나, 열 개가 아니라요.
- AI가 잘 아는 스택을 설치하세요: Expo, React Native, 계정이 필요하면 Supabase.
- 화면 하나씩 만드세요: 요청마다 작은 작업 하나, 단계마다 테스트 하나.
- iPhone에서 테스트하세요: 개발 빌드로, 그다음 TestFlight로.
- 수익화를 연결하세요: App Store Connect의 상품, RevenueCat, 페이월.
- App Store 제출 자료를 준비하세요: 앱 정보, 스크린샷, 개인정보 보호, 심사자용 노트.
- Apple에 제출하세요: 답변을 꼼꼼히 읽고, 요청받은 부분을 고치세요.
단계마다 함정이 있고, AI는 그중 절반 정도를 도와줘요. 전체 그림은 iPhone 앱 만들기 페이지에서 전 과정을 자세히 다뤄요. 코드를 한 줄도 직접 쓰지 않고 어디까지 갈 수 있는지 궁금하다면 코딩 없이 앱 만들기를 읽어 보세요.
AI로 iOS 앱을 만들어 App Store까지
AI는 누가 iOS 앱을 만들 수 있는지를 바꿨어요. 하지만 Apple이 출시를 위해 요구하는 것, 그리고 첫 구독 수익을 내기 위해 필요한 것은 바꾸지 않았어요. 바로 그 부분을 iOS Kit에 담았어요. 구독을 포함한 제 앱들의 시작 코드와 단계별 Claude Code 스킬이요. 도구에 따라 경로를 자세히 안내해요: Claude Code 강의 또는 바이브 코딩 강의. 홈에서는 이런 방식으로 모바일 앱을 만드는 법을 단계별로 보여 줘요.
코드, AI, Apple 중 무엇이 발목을 잡는지 모르겠다면요? 무료 진단이 알려 주고, Apple 리젝 방지 체크리스트도 보내 드려요.
수익도 출시도 약속하지 않아요. 승인은 Apple이 결정하고, 나머지는 시장이 결정해요. 제가 드리는 건 제 앱에 직접 적용하는 방법이에요.
자주 묻는 질문
초보자도 AI로 iOS 앱을 만들 수 있나요?
네. AI는 화면, 내비게이션, 간단한 로직, 데이터베이스 호출을 아주 잘 작성해요. 코드 밖에서 일어나는 일은 잘 못해요. 서명, App Store Connect, 구독, Apple 심사, 그리고 실제 iPhone에서만 보이는 크래시가 그래요.
iOS 앱을 만들 때 어떤 AI를 써야 하나요?
Claude, ChatGPT, Cursor 모두 화면, 내비게이션, 간단한 로직을 아주 잘 작성해요. 문제는 거의 언제나 모델의 지능이 아니라 AI에게 무엇을 읽게 하느냐예요. 스택, 규칙, 최신 문서를 알려 주세요. iPhone 앱용 Claude Code, Cursor, ChatGPT 비교는 별도 가이드로 정리해 뒀어요.
ChatGPT로 앱을 만들 수 있나요?
눈에 보이는 부분은 가능해요. ChatGPT도 Claude나 Cursor처럼 화면, 내비게이션, 간단한 로직, 데이터베이스 호출을 아주 잘 작성해요. 하지만 허가된 접근 권한 없이는 내 Apple 계정을 알지 못하고, 심사자의 눈으로 앱을 보지도 않아요. 코드가 맞는지는 iPhone에서 테스트해야만 알 수 있어요.
AI로 나만의 앱을 단계별로 어떻게 만드나요?
핵심 기능 하나만 있는 아주 작은 아이디어를 고르세요. AI가 잘 아는 스택을 설치하세요: Expo, React Native, 계정이 필요하면 Supabase. 요청마다 작은 작업 하나, 단계마다 테스트 하나씩 하며 화면 하나씩 만드세요. 수익화를 연결하고 App Store 제출 자료를 준비해 Apple에 보내기 전에, 개발 빌드와 TestFlight로 iPhone에서 테스트하세요.
AI가 쓴 코드는 어떻게 검증하나요?
모든 변경 사항을 읽어 보세요. 어떤 파일이 바뀌었는지, 왜인지, 요청과 맞는지요. 가능한 한 빨리 내 iPhone에 앱을 설치하고, 중요한 단계마다 다시 설치하세요. Supabase의 접근 규칙인 RLS 정책이 켜져 있는지 확인하세요. 디컴파일될 수 있는 앱 코드에 비밀 키가 들어가 있지 않은지도 확인하세요.
AI가 만든 페이월이 심사자 화면에서 왜 비어 보이나요?
페이월 코드 자체는 쉬워요. 어려운 건 세 곳의 일관성이에요. App Store Connect의 상품, RevenueCat에서의 설정, 그리고 그걸 보여 주는 코드요. ID가 한 글자만 다르거나 상품이 아직 심사에 제출되지 않았으면 페이월이 비어요. 이 콘솔들에 적절한 접근 권한이 없으면 AI는 이 일관성을 확인할 수 없어요.