Alan Cooper의 아이디어에서 영감을 받아 페르소나와 작업 흐름 사고로 모호한 앱 아이디어를 명확한 화면, 행동, 우선순위로 바꾸는 방법을 배우세요.

긴 기능 목록은 진전처럼 보일 수 있습니다. 무엇을 만들지 알겠다고 손가락으로 가리킬 수 있으니까요. 그런데 첫 화면을 스케치하려 하면 목록은 사용자가 지금 무엇을 하고 있는지, 무엇을 완료하려 하는지, 앱이 무엇을 먼저 보여줘야 하는지를 알려주지 않습니다.
기능 목록은 우선순위를 숨깁니다. “알림”, “검색”, “프로필”, “설정”은 모두 중요해 보이니 모든 것이 같은 수준에 놓입니다. 그리고 의도도 가립니다. 사람들은 ‘필터’나 ‘관리자 권한’을 원해서 일어나지 않습니다. 약속을 잡고 싶거나, 돈을 받고 싶거나, 배송을 추적하거나, 가족과 사진을 공유하고 싶을 뿐입니다.
그래서 기능 목록 대 사용자 목표의 논쟁은 단순한 계획 문제가 아닙니다. 화면을 바꿉니다. 목표가 “금요일에 이발 예약하기”라면 첫 화면은 메뉴형 기능 목록이 아니라 시간대와 명확한 다음 단계가 필요합니다.
기능 목록은 팀을 UI 논쟁으로 너무 일찍 끌어들입니다. 버튼 배치, 탭 이름, 다크 모드, 설정 페이지 수 등을 두고 싸우게 됩니다. 이런 선택들은 구체적으로 느껴지지만, 사용자가 완료해야 할 일을 합의하기 전에 한 추측일 뿐입니다.
더 나은 출발점은 단순합니다: 실제 사용자를 하나 고르고, 그들이 한 번에 끝내고자 하는 일을 하나 골라, 그들을 완료로 이끄는 가장 작은 단계들을 그려보세요. 그러면 화면이 자연스럽게 나타납니다. 각 화면은 흐름의 한 단계를 지원함으로써 존재 이유를 얻습니다.
Alan Cooper는 여전히 유효한 전환을 대중화했습니다. 소프트웨어를 기능의 더미로 보지 말고 상호작용으로 보라는 것입니다. 중요한 것은 앱이 무엇을 할 수 있느냐가 아니라, 사람이 무엇을 달성하려고 하며 앱이 그 일을 최소한의 마찰로 도와주느냐입니다.
이 사고방식은 오늘날 많은 사람이 말하는 Alan Cooper식 상호작용 디자인의 핵심입니다. 의도와 순서에 집중하세요. 여정을 명확히 설명할 수 있다면 화면은 거의 저절로 설계됩니다. 설명할 수 없다면, 긴 기능 목록이 문제를 해결하지 못합니다. 보통 잡동사니만 늘어나고 각 기능은 결정, 버튼, 예외 상황을 추가합니다.
Cooper의 실용 도구상자는 두 부분입니다:
흐름은 기능 목록이 피하는 질문들에 답하게 만듭니다: 무엇이 작업을 촉발하는가, 성공은 무엇으로 보이는가, 사용자가 지금 당장 결정을 내려야 하는 것은 무엇인가, 각 단계에서 실제로 필요한 정보는 무엇인가.
심지어 Koder.ai처럼 채팅 기반의 비슷한 플랫폼으로 빌드하려 해도 이런 명확성은 필요합니다. 그렇지 않으면 개연성은 있어 보이지만 시작부터 끝까지 만족스럽게 연결되지 않는 많은 화면을 생성하게 됩니다.
페르소나는 먼저 설계할 사용자를 짧고 믿을 수 있게 묘사한 것입니다. 전체 전기는 아닙니다. “그때그때 다르다”는 말을 반복하지 않고 결정을 내리게 도와줄 만큼의 세부만 있으면 됩니다.
인구통계학적 요소보다 목표와 맥락으로 시작하세요. 같은 ‘바쁜 부모’라도 어디에 있느냐, 어떤 기기를 쓰느냐, 어떤 압박을 받느냐에 따라 행동이 달라집니다. 제품 설계를 위한 좋은 페르소나는 그런 제약을 구체화해 화면에 명확한 목적을 부여합니다.
페르소나가 너무 모호하면 그걸 느끼게 됩니다. “모두”처럼 들리기 시작하고, 인구통계로만 채워지며, 명확한 목표 없이 선호사항만 나열하고, 이 사람이 오늘 왜 앱을 쓸지 설명하지 못합니다.
페르소나는 가볍게 유지하세요. 몇 줄이면 충분합니다:
예시: “Mina, 치과 접수 직원. 환자 사이사이에 휴대폰으로 사용한다. 목표는 내일 예약을 빠르게 확인하는 것. 답을 안 하는 사람들을 쫓아다니는 게 문제. 성공은 1분 이내에 알림을 보내고 ‘확인됨’ 상태를 확인하는 것.”
한 가지 규칙 더: 페르소나는 디자인 도구입니다. 이상적인 고객 프로필이 아닙니다. 나중에 여러 대상이 있을 수 있지만 지금은 하나의 주요 페르소나가 필요합니다. 화면을 두고 논쟁이 일어나면 Mina에게 돌아가세요: 이것이 그녀가 실제 맥락에서 목표를 달성하는 데 도움이 되는가, 아니면 단지 또 다른 기능인가?
작업 흐름은 사람이 하나의 명확한 목표를 달성하기 위해 거치는 최소 단계들입니다. 사이트맵도 아니고 기능 목록도 아니고 전체 여정 지도도 아닙니다. “X를 하고 싶다”에서 “X가 완료되었다”까지의 하나의 경로입니다.
좋은 흐름은 트리거로 시작해서 성공 상태로 끝납니다. 트리거는 사용자가 시작하는 이유입니다: 필요, 메시지, 버튼, 문제 등. 성공 상태는 평이한 언어로 적은 ‘완료’의 모습입니다: “예약이 잡히고 확인됨”, “청구서 발송됨”, “비밀번호 변경 후 로그인됨”. 시작과 끝을 한 문장씩으로 설명할 수 없다면 흐름은 아직 명확하지 않습니다.
대부분의 흐름은 결정이 나올 때까지 단순합니다. 결정은 다음에 일어날 일을 바꾸는 갈림길입니다. 예: “이미 계정이 있나요?” 또는 “이 항목은 재고가 있나요?” 같은 질문들입니다. 그런 갈림길을 초기에 표시하면 현실이 드러날 때 경로가 깨지는 일을 예방할 수 있습니다.
흐름을 과도하게 고민하지 않고 정형화하려면 다섯 가지 질문에 답하세요:
사람들은 불확실하면 작업을 포기합니다. 흐름은 안심이 필요한 순간들을 표시해야 합니다: 진행, 상태, 확인, 그리고 명확한 오류 메시지입니다.
간단한 예로 “비밀번호 재설정”을 보겠습니다. 트리거: “로그인할 수 없다.” 성공: “계정에 다시 접속한다.” 결정: “이메일에 접근할 수 있나요?” 안심 포인트: “이메일 전송됨”, “링크 만료됨”, “비밀번호 변경됨”, “로그인됨”. 이런 항목들을 적어두면 각 단계가 일어날 장소와 불안을 해소하는 메시지가 필요해 화면이 명확해집니다.
대부분의 앱 아이디어는 명사들 더미로 시작합니다: 대시보드, 채팅, 캘린더, 결제. 명확성으로 가는 빠른 길은 아이디어를 약속(promise), 사람, 단계로 억지로 맞추는 것입니다.
먼저 한 문장으로 표현하세요. 첫 화면에 걸어둘 수 있을 정도로 구체적이면 좋습니다. 누군가 고개를 끄덕이거나 “아니, 그건 내 얘기가 아니다”라고 말할 수 있을 만큼 구체적으로 만드세요. 예: “프리랜서 디자이너가 깔끔한 청구서를 보내고 2분 이내에 카드 결제를 받아 더 빨리 돈을 받도록 돕는다.”
그다음 버전 1을 위한 주요 페르소나 하나를 고르세요. “모두”도, “중소기업”도 아닙니다. 보통 화요일에 상상할 수 있는 한 사람을 고르세요. 세 명을 동시에 설계하면 누구에게도 도움이 되지 않는 추가 화면을 만들게 됩니다.
다음으로 처음 설계할 목표 하나를 고르세요. 보통 이는 핵심 가치를 만드는 목표입니다. “정리된 느낌”은 모호합니다. “청구서를 보내고 확인이 되었는지 보는 것”은 명확합니다.
반복 가능한 프로세스는 다음과 같습니다:
흐름이 한 페이지에 들어갈 만큼 맞아떨어질 때만 기능 목록을 작성하세요. 기능 목록은 짧고 우선순위화해서: 단계들을 가능하게 하는 몇 가지 기능과 실패에서 복구하기 위한 최소한의 항목만 포함하세요.
Koder.ai 같은 빌드 도구를 사용한다면, 이 단계에서 계획 모드가 도움이 됩니다. 약속, 페르소나, 흐름을 한 곳에 붙여 팀의 정렬을 유지한 뒤 화면과 코드가 늘어나기 전에 합의를 만드세요.
작업 흐름은 의도들의 연속입니다. 이제 각 단계를 사용자 도착 화면으로 만들거나 기존 화면에서 사용자가 취하는 단일 행동으로 전환하세요.
단순하게 가세요: 한 단계는 한 명확한 결과와 같습니다. 한 단계에 두 가지 결과가 있다면 보통 두 단계로 나누어야 합니다.
화면 이름은 레이아웃 부분이 아니라 목적에 따라 지으세요. “시간 선택”이 “캘린더 화면”보다 낫습니다. “세부 확인”이 “폼 페이지”보다 낫습니다. 목적 이름은 화면이 무엇을 해야 하는지에 집중하게 해줍니다.
흐름을 화면으로 바꿀 때 각 단계에 대해 세 가지를 결정하세요: 사용자가 무엇을 봐야 하는가, 무엇을 선택해야 하는가, 무엇을 입력해야 하는가. 그리고 보통 하나의 기본 버튼 같은 명확한 다음 행동을 선택하세요. 그 단계를 완료하는 데 도움이 되지 않는 것은 모두 제거하세요.
내비게이션은 지루하게 만들어야 합니다. 각 화면은 “다음에 무엇을 하면 되지?”라는 질문에 답해야 합니다. 사용자가 다음 동작을 메뉴에서 찾아야 한다면 그 화면은 너무 많은 일을 하려는 것입니다.
또한 기본 상태들을 노트로 캡처하세요. 완전한 디자인이 아니라 메모로: 로딩, 비어 있음, 성공, 오류, 주 액션이 비활성화되어야 하는 시점 등. 팀이 빌드할 때 이 상태들을 기억하도록 하되 색깔 논쟁에 시간을 낭비하지 않게 합니다.
Koder.ai 같은 도구는 흐름 텍스트로부터 화면 초안을 도와줄 수 있지만, 명확성은 여전히 당신에게서 나옵니다: 목적, 필요한 정보, 다음 행동.
근처에서 수업(요가, 과외, 이발 등)을 예약할 수 있는 간단한 앱을 원한다고 합시다. 기능 목록은 “검색, 캘린더, 결제, 알림”이라고 적을 수 있습니다. 하지만 첫 화면이 무엇인지, 누군가 “예약”을 눌렀을 때 다음에 무슨 일이 일어나는지 알려주진 않습니다.
한 페르소나로 시작하세요: Sam, 주차장에서 휴대폰으로 60초 내 예약하려는 바쁜 부모. Sam은 계정을 만들거나 20개 옵션을 비교하거나 긴 설명을 읽고 싶어하지 않습니다.
해피 패스를 짧은 이야기로 적으세요: Sam이 앱을 열고, 적절한 수업을 빨리 찾고, 시간을 선택하고, 이름을 입력하고, 결제하고, 명확한 확인을 받습니다.
흐름을 정직하게 만들기 위해 두 가지 예외 상황을 추가하세요: Sam이 시간대를 탭하는 순간 수업이 매진되거나 결제가 실패하는 경우입니다.
그 흐름에서 나오는 화면들은 단순합니다:
“매진”이 발생하면 시간 선택기 안에서 처리하세요: 간단히 설명하고 가장 가까운 대체 시간을 제안하며 Sam을 같은 화면에 머무르게 하세요. 결제가 실패하면 입력한 정보는 보존하고 평이한 언어로 무슨 일이 있었는지 설명한 뒤 “다시 시도”와 “다른 방법 사용”을 제공합니다.
Koder.ai로 빌드한다면 흐름 텍스트에서 이러한 화면을 생성하게 요청하고, 문구와 필드를 다듬어 60초 목표가 실제로 느껴지도록 하세요.
흐름이 깨지는 주요 이유는 하나입니다: 군중을 위해 설계하고 있다는 것. 페르소나가 “모두”면 모든 결정이 타협이 됩니다. 한 사용자는 속도를 원하고, 다른 사용자는 안내를 원하고, 또 다른 사용자는 완전한 제어를 원합니다. 결과는 팽창한 흐름이고 아무도 만족하지 못합니다.
해결책은 페르소나를 좁히는 것입니다. ‘바쁜 전문가’가 아니라 ‘전화 통화 사이사이에 예약하는 접수 직원’ 또는 ‘금이 간 화면으로 아이 이발을 예약하는 부모’처럼 구체적으로 정하세요. 그들의 하루를 상상할 수 있을 때 무엇을 잘라낼지 결정할 수 있습니다.
또 다른 실패 모드는 저장할 수 있는 것에서 시작하는 것입니다. 데이터베이스 필드와 내부 관리자 단계를 먼저 기준으로 하면 제품은 긴 폼이 되고 주요 작업은 묻힙니다. 사람들은 ‘필드를 채우는 것’을 원하지 않습니다. 예약을 확인하거나 결제하거나 알림을 받는 것을 원합니다.
세 번째 함정은 ‘추가 기능 먼저’ 사고방식입니다. 설정, 선호, 역할, 태그, 커스터마이징은 나열하기 쉽기 때문에 초기에 침투합니다. 핵심 작업이 흔들리면 추가 기능은 단지 더 많은 경로와 혼란을 만듭니다.
Koder.ai로 화면을 빠르게 생성할 때도 같은 위험이 있습니다: 속도는 흐름을 정직하게 유지할 때만 유용합니다. 한 페르소나, 한 목표, 각 화면의 명확한 다음 단계가 있어야 합니다.
디자인 도구를 열거나 코딩을 시작하기 전에 한 번만 점검해 아이디어가 실제로 사용자가 끝낼 수 있는 화면으로 바뀔 수 있는지 확인하세요.
주요 페르소나의 목표를 한 문장으로 끝이 명확하게 말할 수 있어야 합니다: “토요일 11시에 이발 예약하고 확인 받기” 같은 문장요. 해피 패스는 한 페이지에 들어가야 합니다. 만약 확장된다면 아마 두 작업을 섞었거나 여러 페르소나를 동시에 해결하려 한 것입니다.
모든 화면이 목적별로 이름 붙여 있고 흐름 단계와 연결되어 있는지 확인하세요(목적이 위젯보다 우선). 결정과 확인은 암시가 아니라 명시적으로 만드세요. 사용자가 선택해야 한다면 선택지를 보여주고, 중요한 일이 발생했다면 확인이나 명확한 오류를 보여주세요.
그다음 작업을 전진시키지 않는 것은 모두 잘라내세요. 화면이 사용자를 결정하게 하거나 정보를 입력하게 하거나 결제하게 하거나 확인하게 하지 않는다면 보통 버전 1에서는 노이즈입니다.
흐름을 큰 소리로 이야기해보세요: “나는 X를 원한다, A를 하고, 그다음 B를 하고, 확인하고, 끝난다.” 헤매는 부분이 있으면 그곳이 설계 문제입니다.
Koder.ai를 사용한다면 이는 강력한 프롬프트 스타터가 됩니다: 한 문장 목표와 해피 패스 단계를 붙여넣고 최소 화면과 행동을 요청하세요.
페르소나가 목표에 도달할 수 있음을 가장 잘 증명하는 단일 흐름을 골라 척추처럼 다루세요. 이것이 작동할 때까지 다른 모든 것은 선택 사항입니다.
그 흐름을 작은 빌드 계획으로 바꾸세요: 페르소나가 방문하는 화면 몇 개, 각 화면에서 하는 행동들, 시스템이 알아야 할 최소 데이터, 처리해야 할 실패 사례의 짧은 목록, 그리고 “완료”를 확인하는 성공 상태.
이제 무엇을 잘라낼지 결정하세요. 잘라낸다는 건 단순함을 위한 최소화가 아닙니다. 하나의 주요 목표를 노력 없이 달성하게 만드는 것입니다. 기능이 오늘 페르소나가 흐름을 끝내는 데 도움이 되지 않으면 ‘나중에’로 보냅니다.
계획을 검증하려면 직접 연기해보세요. 페르소나 설명을 읽고 그 사람인 척 단계를 밟아 보세요. 빠진 정보는 빨리 드러납니다: 날짜는 어디서 왔지? 선택을 어떻게 바꿀 수 있지? 실수하면 어떻게 되지?
더 빨리 나아가고 싶다면 Koder.ai의 계획 모드를 사용해 채팅에서 페르소나와 흐름을 반복하세요. 빌드를 시작하면 스냅샷과 롤백 기능으로 작은 변경이 경로를 망가뜨릴 때 빠르게 시험하고 되돌릴 수 있습니다.
기능 목록은 무엇이 있는지만 말해주고 무엇이 먼저 일어나야 하는지는 알려주지 않습니다. 우선순위가 평평해져서(모두 중요해 보이므로) 진짜 사용자의 의도가 가려집니다.
예를 들어 “금요일 수업 예약”이라는 단 하나의 사용자 목표에서 출발하면 첫 화면은 다음 가능한 시간과 명확한 다음 단계가 됩니다. 메뉴형 기능 목록이 먼저 보여야 할 이유는 없습니다.
페르소나는 먼저 설계할 핵심 사용자를 짧고 믿을 수 있게 묘사한 것입니다. 전체 전기(전기적 약력)가 아니라, 결정 내릴 때 ‘상황에 따라’가 아닌 구체적으로 행동을 예측할 수 있게 하는 정보만 담습니다.
포함할 것:
가볍고 목표 중심으로 유지하세요. 디자인 논쟁을 결정할 수 있을 정도의 3–5줄이면 충분합니다.
예시 구조:
작업 흐름은 페르소나를 단일 의도에서 명확한 성공으로 이끄는 최소한의 단계 집합입니다. 제품 전체 지도가 아니라 하나의 경로입니다.
시작 트리거(왜 시작하는가)와 성공 상태(완료가 무엇인지)를 각 한 문장으로 설명할 수 없다면 흐름이 아직 모호합니다.
행동을 짧은 동사들로 적으세요(선택, 입력, 검토, 확인). 그런 다음 현실적인 중단 지점을 몇 개 추가하세요.
실용적 최소:
이렇게 하면 화면이 종이 위의 완벽한 경로에서 벗어나 실제 상황에서도 작동합니다.
각 단계가 화면인지 기존 화면에서의 단일 행동인지로 바꾸세요.
각 단계마다 결정할 것:
그다음 하나의 명확한 다음 행동(보통 기본 버튼)을 제공하세요.
화면 이름은 레이아웃이 아니라 목적 중심으로 지으세요.
더 나은 예:
목적 중심 이름은 화면이 무엇을 하게 해야 하는지에 집중하게 해줍니다.
사람들은 무슨 일이 일어났는지 불확실하면 중단합니다. 흐름에서 불안감을 줄여줘야 하는 순간들을 표시하세요.
일반적인 안심 포인트:
‘모두를 위한’ 설계는 문제를 만듭니다. 서로 다른 요구를 만족시키려다 흐름이 부푼 뒤 결국 아무도 만족하지 못합니다.
버전 원에서는 한 명의 핵심 페르소나를 선택하세요. 다른 사용자는 나중에 지원해도 됩니다. 지금은 한 명의 의사결정자가 있어야 화면이 일관됩니다.
Koder.ai를 사용할 때는 약속(promise), 페르소나, 흐름을 먼저 쓰고 난 뒤에 도구를 쓰세요. 아래 워크플로우가 좋습니다:
속도가 도움이 되려면 흐름이 먼저 단단해야 합니다. 그래야 화면들이 시작부터 끝까지 연결됩니다.