사용자 의도
사용자가 지금 하려는 일과 성공이라고 느끼는 순간
예: 멤버를 초대하고 팀 설정이 끝났다고 느낀다분류: Layer 13 - Product Engineering & Growth Systems
Product Engineer가 기획과 디자인까지 맡는다는 것은 “아이디어를 많이 내는 사람”이 된다는 뜻이 아니다. 사용자의 문제를 구현 가능한 흐름으로 줄이고, 그 흐름이 실제 행동 변화로 이어졌는지 검증할 수 있게 만드는 역할을 맡는다는 뜻이다.
이 문서는 기능을 만들기 전에 Product Engineer가 확인해야 하는 discovery 질문, UX flow, 상태 설계, 구현 단위를 연결한다.
Product Discovery & UX Flow는 사용자 문제를 발견하고, 핵심 행동까지의 흐름을 설계하며, 그 흐름을 화면·API·상태·이벤트로 구현 가능한 단위로 바꾸는 Product Engineering 역량이다.
프론트엔드 경험이 길면 화면을 빠르게 만들 수 있다. 플랫폼 경험이 있으면 배포와 운영 안정성도 고려할 수 있다. 하지만 Product Engineer에게는 그 사이에 한 층이 더 필요하다. “이 기능이 실제로 어떤 사용자 문제를 줄이는가”와 “그 변화가 어떤 행동으로 관찰되는가”를 설계 초기에 묻는 층이다.
Discovery가 약하면 다음 문제가 반복된다.
Product Engineer는 이를 피하기 위해 문제 정의, 사용자 흐름, 구현 경계, 측정 이벤트를 한 장의 설계로 묶는다.
전통적인 기능 구현 방식은 “요구사항 문서가 내려오면 화면과 API를 만든다”에 가깝다. 이 방식은 할 일이 명확하고 빠르지만, 문제 정의가 틀렸거나 UX 흐름이 끊긴 경우를 코드 작성 후에야 발견한다. 그러면 엔지니어는 이미 만든 화면을 고치고, 이벤트를 나중에 덧붙이고, 출시 후 지표가 흔들려도 원인을 설명하지 못한다.
Product Discovery는 이 한계를 줄이기 위해 등장한 앞단의 학습 루프다. Nielsen Norman Group은 discovery phase를 사용자의 문제, 니즈, 맥락을 이해하고 무엇을 만들지 결정하기 전의 탐색 활동으로 설명한다. Product Engineer에게 중요한 점은 리서치 자체가 아니라, discovery 결과를 구현 가능한 UX 흐름과 측정 가능한 이벤트로 번역하는 것이다.
따라서 이 문서의 lineage는 분명하다. 요구사항 전달 중심 개발의 한계는 “무엇을 만들지”는 알려주지만 “왜 이 흐름이어야 하는지”와 “성공을 어떻게 관찰할지”를 충분히 알려주지 못한다. Product Discovery & UX Flow는 그 빈틈을 사용자 문제, 핵심 행동, 상태 전이, 이벤트 설계로 메운다.
Product Engineer에게 discovery 산출물은 긴 리서치 보고서보다 다음 네 가지가 더 중요하다.
| 산출물 | PE가 확인할 질문 | 구현으로 이어지는 형태 |
|---|---|---|
| Problem statement | 사용자가 지금 어떤 비용을 치르고 있는가 | 해결해야 할 friction, 제외할 범위 |
| Target user segment | 누구의 문제를 먼저 풀 것인가 | 권한, plan, workspace, cohort 조건 |
| Desired behavior | 어떤 행동이 늘거나 줄어야 하는가 | activation event, conversion event |
| UX flow | 사용자가 어떤 순서로 행동하는가 | route, state, API, error/empty/success 상태 |
좋은 discovery는 “사용자가 불편해한다”에서 멈추지 않는다. 예를 들어 “팀 관리자가 신규 멤버를 초대하지 못한다”는 문제는 다음처럼 구현 가능한 문장으로 바뀐다.
invite_created, invite_acceptedUX Flow는 화면 순서도가 아니라 제품 상태의 흐름이다. 다음 네 층을 함께 봐야 한다.
사용자가 지금 하려는 일과 성공이라고 느끼는 순간
예: 멤버를 초대하고 팀 설정이 끝났다고 느낀다화면, 서버 도메인, 권한 상태가 어떤 순서로 바뀌는지
예: draft invite -> sent invite -> accepted membership권한 없음, 네트워크 실패, 결제 한도, 중복 요청을 어떻게 회복하는지
예: seat limit이면 결제 안내, expired이면 재발송흐름의 시작, 전환, 이탈, 완료를 어떤 이벤트로 기록하는지
예: invite_modal_opened, invite_created, invite_error_seen이 네 층을 함께 쓰면 기획과 구현 사이의 번역 손실이 줄어든다. 디자인은 상태를 보여주고, API는 상태 전이를 보장하며, analytics는 흐름의 품질을 확인한다.
Product Engineer는 UX Flow를 설계할 때 “첫 성공 경험”을 먼저 찾아야 한다. Activation은 사용자가 제품의 핵심 가치를 처음 경험한 상태다. 기능마다 activation event가 다르다.
| 제품/기능 | activation에 가까운 행동 | 단순 vanity event |
|---|---|---|
| 협업 도구 | 첫 팀원이 초대되어 문서에 댓글을 남김 | 회원가입 완료 |
| 개발자 도구 | 첫 API key로 성공 응답을 받음 | 대시보드 방문 |
| 분석 도구 | 첫 이벤트가 수집되고 차트가 저장됨 | SDK 설치 페이지 조회 |
| 결제 기능 | 구독 상태와 entitlement가 실제 기능 접근을 바꿈 | 결제 버튼 클릭 |
Vanity event는 사용자가 “가치를 경험했다”는 증거가 약하다. Activation event는 사용자의 목표와 제품의 핵심 가치가 만나는 지점이어야 한다.
퀴즈
힌트: 사용자가 화면을 봤다는 사실과 가치를 경험했다는 사실은 다르다.
page_view는 노출 지표일 뿐 핵심 행동 완료를 말해주지 않는다. Product Engineer는 온보딩이 의도한 activation 행동, 예를 들어 첫 프로젝트 생성, 첫 팀원 초대, 첫 API 호출 성공 같은 이벤트를 함께 정의해야 한다.
실제 업무에서는 모든 기능에 긴 리서치를 붙일 수 없다. 대신 구현 전 30분만 써도 큰 실패를 줄일 수 있다.
시나리오
PM은 초대 전환율이 낮다고 말하고, 디자인은 초대 모달 개선안을 가져왔다. 백엔드는 seat limit과 권한 처리가 복잡하다고 말한다.
바로 UI를 만들기 전에 어떤 문제, 사용자 구간, 상태 전이, 측정 이벤트를 확인할 것인가?권장 순서는 다음과 같다.
invite_accepted를 activation proxy로 둔다.invite_created에 workspace_id, role, seat_limit_state, source를 붙인다. 단, 개인정보는 넣지 않는다.새 기능을 만들 때 다음 블록을 이슈나 RFC에 붙이면 충분한 출발점이 된다.
## Problem
- Who:- Current friction:- Desired behavior:- Non-goals:
## UX Flow
1. Entry point:2. Main path:3. Empty state:4. Error states:5. Success state:
## Product State
- Domain objects:- Permissions:- Billing/entitlement impact:- Idempotency or concurrency concerns:
## Measurement
- Activation/conversion event:- Supporting events:- Guardrail metrics:- Privacy constraints:이 템플릿의 목적은 문서를 늘리는 것이 아니다. 제품 문제, UX, 서버 상태, 이벤트를 같은 회의에서 함께 보게 만드는 것이다.
기능 목록은 구현했지만 사용자가 왜 이 흐름을 거쳐야 하는지 설명하지 못한다.
대응: 문제 문장과 desired behavior를 먼저 쓴다.성공 상태만 디자인하고 empty/error/retry/permission 상태가 나중에 붙는다.
대응: UX Flow에 실패 복구를 필수 항목으로 둔다.출시 직전에 클릭 이벤트만 붙여 funnel과 cohort 분석이 불가능해진다.
대응: UX Flow 단계마다 시작, 실패, 완료 이벤트를 먼저 둔다.기획과 디자인을 모두 혼자 결정해야 한다고 생각해 협업 신호를 놓친다.
대응: PE는 결정 독점자가 아니라 문제-UX-코드-데이터 번역자라고 본다.이 문서가 “무엇을 만들고 어떤 흐름이어야 하는가”를 다룬다면, 다음 문서들은 그 흐름을 어떻게 측정하고 검증할지를 다룬다.
Product Analytics & Tracking Plan: UX Flow의 각 단계를 event taxonomy와 tracking plan으로 바꾼다.Funnel, Cohort & Retention Metrics: 흐름의 이탈과 재방문을 분석한다.Experimentation & Feature Flags: 흐름 변경을 실험하고 안전하게 출시한다.Product Domain Modeling: UX Flow 뒤의 account, workspace, membership, entitlement 상태를 모델링한다.