화면 인벤토리, 데이터 정리, 프롬프트 재설정 계획을 통해 처음부터 다시 만들지 않고도 AI가 만든 어수선한 앱을 복구하는 방법을 배우세요.

어수선한 앱은 한 번에 드라마틱하게 고장나지 않습니다. 작고 짜증나는 문제들이 계속 쌓이면서 전체가 어색하게 느껴집니다. 한 화면에는 "클라이언트", 다른 화면에는 "고객", 또 다른 화면에는 같은 사람을 "연락처"로 묻는 식입니다. 시간이 지나면 사용자는 앱이 계속 추측을 강요하니 화면을 신뢰하지 않게 됩니다.
중복 화면은 가장 분명한 적신호 중 하나입니다. 거의 같은 수치를 보여주는 대시보드가 두 개 있거나, 같은 레코드를 서로 다른 곳에 만드는 폼이 두 개 있을 수 있습니다. 사람들은 어느 화면이 진짜인지 금방 모르게 됩니다. 이들은 클릭을 반복하거나 데이터를 두 번 입력하거나 기능을 아예 쓰지 않게 됩니다.
레이블과 필드가 섞이는 문제는 더 큰 골칫거리입니다. "시작일"이라는 필드는 어떤 화면에서는 프로젝트 시작을 뜻하고, 다른 화면에서는 청구 시작을 뜻할 수 있습니다. 상태 필드가 실제로 같은 단계를 가리키는데도 "오픈", "활성", "진행 중"처럼 여러 값을 제공하면 보고 오류, 누락된 단계, 지원 문의가 생깁니다.
일반적인 징후는 다음과 같습니다:
이런 문제는 보통 빠른 프롬프트, 임시 수정, "일단 이것만 추가해줘" 식의 요청이 쌓이면서 발생합니다. 다행히 실제로는 보기보다 심각하지 않은 경우가 많습니다. 그 밑에는 보존할 가치가 있는 구조, 쓸 만한 데이터 모델, 혹은 사람들이 이미 의존하는 몇몇 화면이 남아 있는 경우가 많습니다.
그래서 항상 처음부터 다시 만드는 것이 정답은 아닙니다. 앱이 이미 일부 역할을 해결하고 있다면, 불완전하더라도 살릴 가치가 있는 경우가 많습니다. 첫 단계는 전체 제품을 버려진 것으로 보는 대신, 어수선함을 명확히 파악하는 것입니다.
앱이 어수선해졌을 때 가장 나쁜 선택은 모든 것을 한꺼번에 바꾸는 것입니다. 멈추고 실제 사용자에게 아직 작동하는 부분이 무엇인지 파악하세요. 지금은 보기 좋음을 무시하세요. 누군가가 하나의 유용한 작업을 명확히 수행할 수 있는지가 중요합니다.
먼저 단순한 질문을 하세요: 이 앱이 반드시 도와줘야 하는 핵심 작업은 무엇인가? 다섯 가지가 아니라 하나입니다. 예약 앱이라면 "시간을 찾아 예약하기"일 수 있고, 작은 CRM이라면 "리드 저장하고 후속 조치하기"일 수 있습니다. 답이 모호하면 앱도 모호하게 남습니다.
핵심 작업이 명확해지면 그 렌즈로 각 화면을 검토하세요. 핵심 작업을 지원하는 화면은 아마 그대로 두고, 방해하는 화면은 제거해야 합니다.
간단한 네 가지 분류가 유용합니다:
이것은 다듬기(폴리시)가 아니라 흐름에 대한 판단입니다. 명확한 다음 단계가 있는 평범한 화면이 원형 디자인으로 사람을 돌리는 화려한 화면보다 더 유용합니다.
그런 다음 다른 것을 건드리기 전에 하나의 핵심 사용자 경로를 보호하세요. 가장 짧은 경로로 앱이 유용하다는 것을 증명하세요. 채팅 기반 플랫폼인 Koder.ai로 만든 내부 도구라면 그 경로는 로그인 → 레코드 생성 → 저장 → 나중에 보기일 수 있습니다. 그 경로가 작동하면 기반이 생깁니다.
간단한 규칙은 명확합니다: 보기 흉하더라도 핵심 작업을 지원하는 부분은 살리고, 많은 공을 들였더라도 혼란을 만드는 부분은 제거하세요.
수정하기 전에 먼저 이미 존재하는 것을 지도화하세요. 사용자가 도달할 수 있는 모든 화면, 모달, 폼, 단계를 단순한 목록으로 만드세요.
이렇게 하면 막연한 느낌 대신 실제 앱의 모습을 볼 수 있습니다. 많은 어수선한 앱은 같은 문제가 여러 곳에서 반복되어 더 심해 보입니다.
각 화면에 대해 네 가지 간단한 메모를 적으세요:
짧게 유지하세요. 페이지에 긴 설명이 필요하면 이미 경고 신호입니다.
강한 목적 문장은 "새 고객 기록 생성" 또는 "미지급 송장 보여주고 결제 표시"처럼 들립니다. 약한 문장은 "옵션이 많은 대시보드"처럼 모호합니다. 목적이 흐릿하면 화면도 어수선합니다.
진행하면서 세 가지 문제를 찾아보세요. 첫째, 중복: 예를 들어 프로젝트를 생성하는 폼이 두 군데 있는 경우. 둘째, 막다른 길: 사용자가 도달했을 때 다음 단계가 없는 페이지. 셋째, 누락된 상태: 빈 테이블에 메시지가 없거나 저장 실패 시 오류 문구가 없거나, 폼 제출 후 성공 확인이 없는 경우 등입니다.
간단한 스프레드시트면 충분합니다. 화면당 한 줄이면 됩니다. 지금은 디자인을 하는 것이 아니라 앱을 눈에 보이게 하는 것입니다.
예를 들어 Koder.ai로 만든 예약 앱을 상상해보세요. "새 예약" 페이지, 달력의 예약 모달, 대시보드의 빠른 추가 폼이 모두 발견됩니다. 이 셋이 모두 같은 레코드를 만들지만 각기 다른 필드를 묻는다면 앱에는 명확한 단일 경로가 없는 것입니다. 이제 무엇을 합치고 무엇을 유지하며 무엇을 나중에 고칠지 알 수 있습니다.
이 단계가 끝나면 앱의 각 부분에 대해 한 가지 질문에 답할 수 있어야 합니다: 이 화면이 존재하는 이유는 무엇인가?
어수선한 앱은 내부 데이터가 지저분해서 더 나빠 보이는 경우가 많습니다. 레이아웃, 흐름, 프롬프트를 바꾸기 전에 레코드를 정리하세요. 그래야 실제로 무엇이 고장났고 무엇이 샘플 데이터 때문에 그렇게 보이는지를 구분할 수 있습니다.
먼저 오래된 테스트 레코드, 가짜 항목, 단순히 화면이 작동하는지 확인하려고 추가한 항목들을 제거하세요. 몇 줄의 엉망인 데이터가 괜찮은 앱을 가릴 수 있습니다. 고객 목록이 "Test 1" 같은 이름, 빈 이메일, 랜덤 전화번호로 가득하면 화면이 무엇을 말하는지 신뢰할 수 없습니다.
다음으로 필드를 일관되게 만드세요. 이름, 날짜, 상태, 레이블을 쓰는 한 가지 방식을 정하고 어디서나 적용하세요. 상태 필드가 같은 의미인데 "new", "New Lead", "in progress", "working"처럼 쓰이면 안 됩니다. 데이터 정리가 필터, 검색, 보고서를 더 똑똑하게 보이게 해 줍니다.
빠른 정리 패스는 네 가지를 해야 합니다: 가짜 또는 오래된 레코드 제거, 중복 병합, 필드 형식 표준화, 중요한 빈칸 채우기 또는 명확히 누락으로 표시하기. 그 다음에는 믿을 만한 소수의 테스트 레코드만 유지하세요.
Koder.ai로 만든 간단한 CRM이나 예약 앱이라면 테스트 데이터는 실제에 가깝게 유지하세요. 몇 명의 고객, 몇 건의 주문, 몇 가지 에지 케이스면 충분합니다. 그래야 화면이 혼잡해지지 않고 현실적인 테스트가 가능합니다.
그다음 데이터가 없거나 엉성할 때 앱이 어떻게 동작하는지 확인하세요. 레코드가 0일 때 화면을 열어보고, 일반적인 오류를 유발해 보고, 거의 같은 두 레코드가 있을 때 무슨 일이 일어나는지 보세요. 빈 상태, 혼란스러운 경고, 중복 문제는 이때 빠르게 드러납니다.
데이터 정리는 어수선한 앱에서 가장 빠른 승리 중 하나입니다. 제품을 판단하기 쉽고 고치기 쉬우며 신뢰하기 쉬워집니다.
앱이 어수선해질 때 가장 나쁜 짓은 기존의 혼란 위에 새 수정을 덧붙이는 것입니다. 프롬프트 이력이 잘못된 가정을 이어가면 새로운 요청마다 일관성이 더 떨어집니다.
더 많은 변경을 하기 전에 대화를 초기화하세요. 깔끔한 프롬프트는 빌더에게 더 명확한 목표를 주고 무작위 수정 가능성을 낮춥니다.
앱의 현재 상태를 짧게 요약하세요. 앱이 무엇을 하는지, 누가 사용하는지, 주요 화면은 무엇인지, 고치고 싶은 가장 큰 문제는 무엇인지 사실대로 적습니다. 간단하고 명료하게 쓰세요.
예: "대시보드, 송장 화면, 메시지 화면이 있는 작은 고객 포털입니다. 대시보드는 유용하지만 내비게이션이 일관되지 않고 송장 상태가 중복되어 있습니다. 현재 브랜딩과 사용자 역할은 유지하세요."
요약 후에는 작업 범위를 좁히세요. 제품 전체가 아니라 한 화면 또는 한 흐름씩 요청하세요.
일반적인 요청 예시는 다음과 같습니다:
이 방식은 결과를 검토하기 쉽게 하고, 이미 잘 작동하던 부분이 조용히 바뀌는 일을 막습니다.
변경해서는 안 될 부분도 분명히 하세요. 화면 구조, 데이터베이스 필드, 사용자 역할, 시각적 스타일 중 유지해야 할 것이 있다면 직접 적으세요. AI 빌더는 보존하는 것보다 변경하는 데 익숙하므로 확실한 경계를 줘야 합니다.
좋은 재설정 프롬프트는 세 부분으로 구성됩니다: 현재 상태, 요청된 변경, 보호할 부분. 채팅 기반 빌더(예: Koder.ai)에서는 이 구조가 결과를 산만해지지 않게 도와줍니다.
유용한 결과가 나왔다면 프롬프트를 저장하세요. 나중에 기억만으로 재현하지 마세요.
"대시보드 정리 v1" 또는 "스키마 고정된 송장 흐름" 같은 짧은 라벨을 붙여 보관하세요. 시간이 지나면 신뢰할 수 있는 수정 지침 라이브러리가 만들어집니다.
복구는 보통 한 번에 완벽한 프롬프트가 아니라, 일련의 작은 안정적 수정들입니다.
앱이 어수선하면 한꺼번에 모든 것을 고치려는 시도가 두 번째 어수선함을 만듭니다. 안전한 순서를 따르는 것이 더 효과적입니다.
먼저 내비게이션과 주요 작업 흐름을 고치세요. 사용자가 화면 사이를 이동하거나 핵심 작업을 끝낼 수 없다면 디자인 다듬기와 부가 기능은 아직 의미가 없습니다.
가장 중요한 여정을 생각하세요. 예약 앱이라면 열기 → 검색 → 시간 선택 → 확인, 작은 CRM이라면 대시보드 열기 → 연락처 추가 → 저장 → 연락처 보기 등입니다. 그 경로를 먼저 고친 뒤 옵션인 부분을 건드리세요.
간단한 수리 순서는 다음과 같습니다:
작은 변경 후에는 반드시 테스트하세요. 하루가 끝날 때까지 기다리지 마세요. 폼을 바꿨다면 정상 데이터로 한 번, 실수 데이터로 한 번 제출해 보세요. 리스트를 바꿨다면 항목을 추가하고, 수정하고, 삭제해 보세요. 작은 검사들이 초기에 문제를 잡아줍니다.
변경하면서 기록을 남기세요. 어떤 화면을 바꿨는지, 어떤 프롬프트를 사용했는지, 기대한 결과와 실제 결과는 어땠는지를 적어두면 잘못된 수정을 되돌리기 쉽습니다.
Koder.ai에서 앱을 운영한다면 큰 변경 전 스냅샷을 활용하기 좋은 시기입니다. 플랫폼이 롤백을 지원하면 프롬프트가 앱을 잘못된 방향으로 보낼 때 덜 두려움 없이 테스트할 수 있습니다.
속도는 거의 지루하게 느껴져야 합니다: 하나의 경로, 하나의 수정, 하나의 테스트, 하나의 기록. 이렇게 하면 어수선한 앱이 다시 쓸 만해집니다.
창업자가 Koder.ai로 작은 CRM을 만들어 리드, 후속, 예약 통화를 추적한다고 가정해봅시다. 앱은 작동하지만 여러 차례 채팅 기반 수정 후 어수선해졌습니다. 영업 메모가 잘못된 곳에 나타나고, 보고서가 이상해지고, 팀은 화면을 더 이상 신뢰하지 않습니다.
간단한 화면 인벤토리를 하면 실제 문제가 드러납니다. 거의 같은 정보를 수집하는 세 화면이 있었습니다:
각 화면이 이름, 회사, 전화, 이메일, 상태를 묻지만 같은 방식이 아닙니다. 한 화면은 "New lead", 다른 화면은 "New", 또 다른 화면은 "Open"이라고 쓰는 식입니다. 사소해 보이지만 필터링이나 전환 수를 세려고 하면 문제가 커집니다.
보고서는 값들을 서로 다른 상태로 취급하니 깨집니다. 매니저는 40건의 신규 리드를 기대하는데 리포트는 세 가지 상태로 나눕니다. 후속 알림도 같은 이유로 실패합니다. 일부 레코드는 "Contacted"로, 다른 레코드는 "Reached out"으로 표시됩니다. 앱 전체가 망가진 것은 아닙니다. 단지 세 가지 약간 다른 언어를 사용하고 있을 뿐입니다.
정리는 인벤토리부터 시작합니다. 각 화면을 적고 어떤 데이터가 생성·수정되는지 기록한 뒤 중복을 표시하면 각 필드의 진실의 원천을 정하기 쉬워집니다.
다음은 데이터 정리입니다. 오래된 레코드를 표준 상태(예: New, Contacted, Qualified, Won, Lost)로 매핑하고 빈칸, 중복 연락처, 날짜 형식 불일치를 정리합니다.
그다음 프롬프트를 재설정합니다. "CRM을 개선해줘"가 아니라 하나의 연락처 모델, 하나의 상태 목록, 각 필드를 편집할 단 한 곳을 사용하라고 명확히 지시합니다. 그러면 어수선함이 다시 생기지 않습니다.
이후 앱은 빠르게 더 간단해 보입니다. 화면이 명확해지고 보고서는 현실과 맞아떨어지며 팀은 전체를 버리지 않고도 계속 구축할 수 있습니다.
한 번의 나쁜 결과에 패닉하는 것이 시간을 가장 빨리 낭비하는 방법입니다. 한 화면이 깨지거나 흐름이 이상해졌다고 프로젝트 전체가 끝난 것이 아닙니다. 재구축은 여전히 작동하는 부분을 버리는 경우가 많습니다.
더 나은 방법은 문제를 격리하는 것입니다. 로그인 기능이 작동하면 유지하세요. 대시보드 레이아웃이 쓸 만하면 그것도 유지하세요. 대부분의 어수선한 앱은 완전히 고장난 것이 아니라 부분적으로 맞는 부분이 있어 계층별로 고치면 빠르게 회복됩니다.
또 다른 실수는 구조를 고치기 전에 외형을 다듬는 것입니다. 색상, 버튼 레이블, 카피를 바꾸는 것은 눈에 띄기 쉽지만, 화면이 중복되거나 내비게이션이 불분명하거나 데이터 모델이 일관되지 않다면 시각적 개선은 진짜 문제를 잠시 가릴 뿐입니다.
이것은 채팅 기반 빌더에서 자주 발생합니다(예: Koder.ai). 더 깔끔한 홈페이지만 요청하면 툴이 텍스트를 업데이트하고 보기에는 좋아 보이지만 잘못된 곳으로 보내는 링크는 그대로인 경우가 많습니다.
프롬프트 과부하도 문제입니다. 하나의 메시지에 대시보드 재설계, 필드명 변경, 로그인 수정, 필터 추가, 사용자 역할 변경을 모두 요구하면 결과는 보통 불균형합니다. 일부는 좋아지고 일부는 깨져서 무엇이 바뀌었는지 알기 어려워집니다.
프롬프트는 좁게 유지하세요. 한 화면, 한 흐름, 한 데이터 문제씩 요청하면 더 깔끔한 결과를 얻고 잘못되었을 때 되돌리기 쉽습니다.
또한 어수선한 테스트 데이터는 생각보다 더 큰 피해를 냅니다. 오래된 가짜 사용자, 중복 레코드, 자리표시 제품, 반쯤 완성된 항목들 때문에 건강한 앱이 망가져 보이고 빌더도 그 잘못된 데이터를 실제로 간주해 새로운 프롬프트가 엉뚱한 결과를 내게 합니다.
간단한 예: 창업자가 세 가지 가격 모델을 테스트하고 모두 데이터베이스에 남겨둔 뒤 AI에게 청구 개선을 요청하면, 앱이 존재하지 않는 요금제를 참조하게 됩니다. 논리 버그처럼 보이는 문제의 원인은 단순한 잡동사니인 경우가 많습니다.
상황이 혼란스러워 보일 때는 모든 것을 한꺼번에 고치려는 충동을 억누르세요. 데이터를 정리하고 요청을 단순화한 뒤 작은 단계로 앱을 수리하세요.
앱이 준비되었다고 말하기 전에 실제 사람이 걸을 법한 기본 경로를 테스트하세요. 첫 화면에서 시작해 주요 결과까지 방해 없이 도달할 수 있는지 확인하세요. 예약 앱이면 누군가 앱을 열고, 세부 정보를 입력하고, 확인하고, 결과를 볼 수 있어야 합니다.
간단한 워크스루로 많은 문제를 잡아낼 수 있습니다. 어수선한 앱의 가장 큰 문제는 보통 하나의 깨진 기능이 아니라 작은 문제들이 이어져 전체 흐름을 혼란스럽게 만드는 것입니다.
몇 가지 빠른 점검 항목:
그다음 새로운 사용자 테스트를 해보세요. 앱을 한 번도 본 적 없는 사람에게 한 가지 작업을 시키고 방해하지 말고 지켜보세요. 그들이 멈추거나 레이블을 다시 읽거나 어디를 클릭해야 할지 물어본다면 아직 완전히 고쳐진 것이 아닙니다.
먼저 명칭 일관성에 주의하세요. 한 화면에 "클라이언트", 다른 화면에 "고객", DB에 "리드"가 있으면 사람들은 제대로 된 곳에 있는지 의심하게 됩니다. 일관된 명칭은 앱을 차분하고 신뢰하기 쉽게 만듭니다.
그다음 막다른 길을 확인하세요. 동작하지 않는 버튼, 조치가 없는 빈 상태, 어디로도 연결되지 않는 페이지는 앱을 미완성처럼 느끼게 합니다. 동일한 폼이나 저장한 뒤 결과를 보여주지 않는 단계도 마찬가지입니다.
마지막 간단한 점검: 새로운 사용자가 도움 없이 한 번에 주요 작업을 완수할 수 있나요? 그렇다면 아마 가장 중요한 문제는 해결된 것입니다.
앱이 다시 깔끔해지면 목표가 바뀝니다. 이제 혼란을 복구하는 단계가 아니라 잘 작동하는 것을 보호하는 단계입니다.
먼저 앱 흐름을 평범한 문장으로 적으세요. 기술자가 아닌 동료도 따라올 수 있을 정도로 간단하게 유지하세요. 예: "사용자가 로그인하면 대시보드로 가고, 고객 기록을 열어 메모를 수정한 뒤 저장한다." 이 짧은 지도는 다음 프롬프트나 기능 요청 전에 기준이 됩니다.
그다음 안정된 화면들을 재사용 가능한 패턴으로 만드세요. 잘 작동하는 폼이 있다면 레이아웃, 필드 레이블, 버튼 스타일, 검증 규칙을 템플릿으로 삼으세요. 리스트, 상세 페이지, 내비게이션도 마찬가지입니다. 어수선한 앱은 새로운 화면마다 매번 실험하듯 만들 때 다시 어수선해집니다.
유지 보수 루틴은 간단합니다:
Koder.ai로 빌드하는 경우, 다음 수정 전에 계획 모드를 사용하면 변경을 생성하기 전에 정의하는 데 도움이 됩니다. 정리 후에는 이런 구조가 중요합니다. 무작위한 방향 전환을 줄이고 프롬프트 이력이 앱을 역행시키는 일을 막아줍니다.
또한 모든 주요 변경을 되돌릴 수 있게 취급하세요. 중요한 화면, 데이터 로직, 내비게이션을 수정하기 전에 스냅샷을 찍으세요. 새 버전이 엉뚱한 방향으로 가면 롤백으로 안전하게 이전 상태로 돌아갈 수 있습니다.
이것이 장기적으로 어수선한 앱을 고치는 방법입니다. 앱을 얼려 두는 것이 아니라 미래의 변경들이 명확한 경로를 따르도록 만드는 것입니다. 흐름을 문서화하고, 잘된 부분을 재사용하며, 위험한 단계마다 안전망을 두면 정리한 앱은 건강하게 유지됩니다.
아니요. 보통은 처음부터 다시 만들 필요가 없습니다. 먼저 앱이 실제로 유용하다는 것을 증명하는 하나의 사용자 경로를 보호한 다음, 그 주변의 혼란을 단계적으로 정리하세요. 핵심 작업을 사람들이 계속 수행할 수 있다면 전체 재구축보다 복구가 더 빠르고 저렴한 경우가 많습니다.
앱 전체에서 반복되는 작은 혼란 신호들을 찾으세요. 대표적인 예는 중복 화면, 일관성 없는 레이블, 같은 데이터를 두 번 묻는 폼, 입력한 내용과 맞지 않는 리포트, 다음 단계가 불분명한 페이지들입니다.
앱이 통제 불능처럼 느껴질 때는 먼저 앱의 핵심 작업부터 시작하세요. 사용자가 반드시 달성해야 하는 단일 결과를 정의한 뒤, 모든 화면을 그 목표에 비춰 검토합니다. 핵심 작업을 지원하는 화면은 유지하거나 고치고, 중복되거나 잡음을 더하는 화면은 합치거나 제거하세요.
간단한 화면 인벤토리를 만드세요. 각 화면, 모달, 폼, 단계마다 항목을 적고 목적, 주요 액션, 보여주거나 수집하는 데이터를 적으면 됩니다. 이렇게 하면 중복, 막다른 길, 애매한 화면이 빠르게 드러납니다.
그렇습니다. 테스트용 가짜 레코드, 중복, 일관성 없는 상태값, 빈 필드는 괜찮아 보이는 앱도 망가져 보이게 만듭니다. 레이아웃을 바꾸기 전에 데이터를 정리하면 실제 문제를 더 명확하게 판단할 수 있습니다.
대화 기록을 초기화하고 앱의 현재 상태, 고치려는 정확한 문제, 변경해서는 안 되는 부분을 간단히 요약하세요. 그런 다음 한 번에 한 화면이나 한 흐름만 요청하면 무작위 변경을 줄일 수 있습니다.
내비게이션과 핵심 사용자 여정부터 시작하세요. 사용자가 화면 사이를 이동하고 핵심 작업을 완료할 수 있어야 디자인과 부가기능이 의미를 가집니다. 그 다음 해당 여정이 생성·수정·삭제하는 데이터를 점검하고, 마지막에 부가 화면과 스타일을 다루세요.
큰 변경 전 스냅샷을 저장하고 작은 변경마다 테스트하세요. Koder.ai 같은 플랫폼에서는 롤백 기능을 활용하면 마지막 정상 상태로 안전하게 되돌릴 수 있어 위험을 줄일 수 있습니다.
간단한 테스트로 확인하세요: 새로운 사용자가 도움 없이 한 번에 핵심 작업을 완료할 수 있나요? 이름과 레이블이 일관되나요? 버튼은 다음에 무슨 일이 일어날지 명확하게 말하나요? 폼이 중복되어 같은 정보를 두 번 묻지 않나요? 각 화면에 다음 단계나 뒤로 가기, 완료 표시가 있나요? 이런 항목이 만족되면 핵심 문제는 대부분 해결된 것입니다.
주요 흐름을 문장으로 적어 관리하고, 잘 동작하는 화면은 템플릿화하며, 한 번에 한 기능씩 바꾸고 테스트하세요. 변경 전 계획을 세우고 스냅샷으로 되돌릴 수 있게 하면 같은 문제가 다시 생기는 것을 막을 수 있습니다.