← 운영 블로그

23화: 데이터는 잔뜩인데, 화면은 왜 비어 보일까

회차: 23화

서비스를 열어봤습니다. 남의 눈으로요.

처음 오는 사람처럼, 아무 기대 없이 화면을 바라봤습니다.

제품명. 카테고리. 업체명.

…그게 다였어요.


이상한 일이었습니다.

백엔드에서는 제품 하나를 조회하면 50개가 넘는 정보가 내려옵니다. 원재료 원문, 성분 매핑, 영양 성분, 첨가물 사용 기준, 유통 기한, 포장 재질, 제조 방식. 만드느라 몇 달이 걸린 데이터들이에요.

그런데 화면에 나오는 건 세 줄이었습니다.

식당 주방에 온갖 재료가 가득한데, 손님 앞에 나간 건 공기밥과 물뿐인 느낌이었습니다.


처음에는 프론트엔드 코드에 주목했어요. “화면 컴포넌트가 부족한 거겠지. 더 만들면 되겠지.”

그런데 그게 아니었습니다.

컴포넌트를 추가하기 전에, 한 가지를 먼저 해야 했어요. 뭘 보여줄 수 있는지부터 파악해야 했습니다.


100만 건 테이블을 열어서, 필드 하나하나의 “존재율”을 세어봤습니다.

SQL이라는 언어로 질문을 던지면 데이터베이스가 대답해주는데, “이 칸이 비어 있지 않은 제품이 몇 퍼센트야?”라고 물어본 거예요.

결과는 충격적이었습니다.

필드존재율의미
제품명100%항상 있음
원재료 원문61.3%열 중 여섯만 있음
영양 성분17%다섯 개 중 하나도 안 됨
고열량·저영양 인증9.8%열 개 중 하나
제품 이미지1.4%백 개 중 하나

1.4%. 제품 이미지가 있는 건 백 개 중 하나뿐이었어요.

슈퍼마켓에서 과자를 고르는데, 진열대 100칸 중 99칸에 포장지가 없다고 상상해 보세요. 하얀 박스에 이름만 적혀 있는 겁니다.

그게 우리 데이터의 현실이었습니다.


이 숫자들이 화면 설계를 완전히 바꿨어요.

이미지가 1.4%라면, 이미지를 전제로 한 카드 디자인은 틀린 겁니다. 이미지가 없는 게 기본이고, 있으면 보너스.

고열량 인증이 9.8%라면, 모든 카드에 배지를 달 순 없어요. “있는 제품에서만 조용히 보여주는” 방식이 맞았습니다.

영양 성분이 17%라면, 영양 탭은 “항상 보이는 섹션”이 아니라 “있을 때만 나타나는 선택적 섹션”이어야 했어요.

숫자 하나가 디자인 결정 하나를 바꿨습니다. 감이 아니라 데이터가 화면을 그린 거예요.


그런데 더 큰 깨달음은 따로 있었습니다.

이미 가진 데이터를 화면에 배치하는 건, 사실 반쪽짜리 일이었어요.

진짜 문제는 이거였습니다.

데이터가 부족한 게 아니라, 질문이 부족했다.

“이 제품의 원재료가 뭐야?”는 API가 이미 답하고 있었어요. 하지만 사람들이 정말 궁금한 건 그게 아니었습니다.

“딸기우유에 딸기가 진짜 들어있어?” “편의점 삼각김밥 중 나트륨이 가장 낮은 건 뭐야?” “내 아이가 먹는 과자의 첨가물, 다른 브랜드도 비슷해?”

이런 질문들이요.


그래서 질문을 만들기 시작했습니다.

첵잇이 가진 11개 데이터 자산을 펼쳐놓고, “식품을 먹는 모든 사람이 궁금해할 만한 것”을 하나씩 적어봤어요.

놀랍게도, 101개가 나왔습니다.

“기피성분이 하나도 없는 제품이 실제로 존재할까?” “같은 제조사가 만든 제품들은 첨가물 패턴이 비슷할까?” “설탕이 ‘설탕’이라고 적히지 않는 경우가 얼마나 될까?”

데이터는 처음부터 충분했습니다. 부족했던 건 데이터를 바라보는 관점이었어요.

재료가 가득한 주방에서 레시피가 없었던 겁니다. 101개의 레시피를 손에 쥐고 나니, 그제야 이 주방으로 어떤 요리를 만들 수 있는지 보이기 시작했습니다.


다음 화에서는, 그렇게 데이터를 정리한 직후에 화면을 보고 멈췄던 순간 이야기를 할게요. “내 서비스인데 신뢰가 안 갑니다.” 그때 AI 5명에게 동시에 같은 질문을 던졌습니다.