본문 바로가기
C.W.K.
Stream
Lesson 02 of 04 · published

질문 우선, 축소판 챗 아님

~11 min · product-shape, constraint, design, focus

Level 0신호 없음
0 XP0/32 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"스코프가 곧 기능이야. 안 만들기로 한 그것이, 만든 그것을 좋게 만들어."

줄이고 싶은 유혹

누가 '모바일 버전 필요해' 하면, 기본 반사는 데스크톱 앱을 줄이는 거야. 똑같은 사이드바, 똑같은 대화 목록, 똑같은 전부를 40% 크기로. 안전해 보여 — '기능을 빼는' 게 아니니까. 근데 줄인 데스크톱 앱은 그냥 더 못한 데스크톱 앱이야. 폰에서, 기차에서, 한 손으로 쓰는 사람은 사이드바를 원하는 게 아냐. 질문을 하고 싶은 거지.

Pippa Go 는 반대로 가. 폰에서 제일 중요한 상호작용 하나를 골라서 그거 하나를 아주 잘 만들어. 다 집어넣고 다 어중간하게 만드는 대신에. 기본 단위는 질문이랑 그 답. 이 제약은 기능이 적다는 뜻이 아니라 제품이 더 날카로워졌다는 뜻이야.

질문 우선이 실제로 사주는 것

기본 단위를 하나로 못 박으면 그 아래가 전부 편해져.

  • 캡처 흐름을 방탄으로 만들 수 있어. 입력 타입이 하나뿐이면(질문에 이미지 몇 장) 통째로 저장하고 깔끔하게 재시도할 만큼 작아. 마음대로 고칠 수 있는 대화 트리 전체는 그렇게 안 되고.
  • 오프라인 이야기가 단순해져. '이 질문 하나를 링크 돌아올 때까지 붙잡고 있기'는 진짜로 지킬 수 있는 약속이야. '아무 브랜치 대화나 오프라인 동기화'는 연구 프로젝트고.
  • 화면이 정직하게 남아. 화면이 단출하면 sync 상태, 재시도 버튼, 대기 상태를 또렷하게 보여줄 자리가 나와. 네트워크가 불안할 때 신뢰를 쌓아 주는 게 딱 그런 것들이거든.

전체 대화가 없어지는 건 아냐. 백엔드에서 canonical 로 살아 있고, 거기서 훑어보고 브랜치할 수 있어. Pippa Go 는 그걸 하는 자리가 되기를 사양할 뿐이야. 여긴 묻는 데야.

집중은 기능이 없는 게 아냐

사진만 찍는 카메라 앱은 영상 편집이 '빠진' 게 아니야. 그냥 카메라인 거지. Pippa Go 가 질문 우선인 것도 똑같아. 기능 떼어낸 챗 클라이언트가 뭐가 없다고 미안해하는 게 아니라, 자기 할 일을 아는 도구인 거야. '대화 목록만 조그맣게' 나 '인라인 브랜치만 살짝' 을 얹고 싶어질 때마다 스스로 물어봐. 이게 딱 하나의 일에 보탬이 되나? 질문하고, 답 받고, 절대 안 잃는 그 일 말이야. 아니면 데스크톱 줄이기 반사가 슬그머니 돌아온 건가.

Code

표면 전체가 타입 하나에 다 들어와·typescript
// 질문 우선은 핵심 상태가 작고 읽기 쉽다는 뜻.
type PippaGoTurn = {
  deviceTurnId: string;
  question: string;
  attachments: StagedImage[];
  syncStatus: "pending" | "sending" | "answered" | "failed";
  answer?: string; // canonical 호출이 성공해야만 채워짐
};

// 여기 '없는' 걸 봐: 대화 트리 없음, 브랜치 포인터 없음,
// council 상태 없음, artifact 저장소 없음. 그건 백엔드 거야.
// 폰은 이것들의 큐를 쥐고, 그게 모델 전부야.

External links

Exercise

데스크톱이랑 폰에서 둘 다 쓰는 앱을 하나 골라. 폰에서 실제로 제일 많이 하는 세 가지를 적어. 이제 그 셋'만' 제대로 하고 나머지는 다 사양하는 클라이언트를 상상해 봐. 뭐가 나아질까? 속도, 신뢰성, 한 손 조작? 그리고 진짜로 아쉬울 건 뭐야? 빠졌다고 느낀 기능들은 대부분, 모바일에선 안 쓰는 데스크톱 반사로 드러나.
Hint
진짜 아쉬울 기능이 진짜 기본 단위를 드러내. '데스크톱에 있으니까'로만 적은 것들이 바로 집중된 클라이언트가 사양해야 할 것들이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.