대니
danny's blog@dannywon_dev
발행 126 · 대기 180

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

제품 만들기

「티어」를 grep 하니 인쇄 보고서가 걸렸다

반마다 성장 지표를 다르게 넣었는데, 정작 문제는 회차 화면 밖에 있었다

데모 화면을 보여줬는데 "별로다"라는 한마디가 돌아오는 경우가 있다. 기능은 다 되는데.

방과후 eSports 코칭 앱이다. 광주 고등학교 4곳에서 발로란트와 롤을 가르치고, 매주 학생 성장을 티어로 기록하는 화면이 있었다. 티어 드롭다운(아이언~챌린저) 하나에 자유 텍스트 메모 칸 하나를, 학생마다 항상 같이 보여줬다.

"별로다"의 원인은 메모 칸이었다. 줄이 학생마다 하나씩 붙으니 화면이 두 배로 길어졌다.

그런데 더 큰 지적이 뒤에 붙었다.

"학교마다 핵심 지표가 랭크가 아니라 CS 같은 숫자일 수도 있다."

게임 랭크 자체를 안 쓰는 학생도 있을 수 있다는 말이었다. 이건 칸 하나 접었다 펴는 문제가 아니다.

세 안 중 A 와 B 를 가른 질문 하나

  • A. 반을 만들 때 지표 종류를 고른다 — "티어" 또는 "직접 입력"(라벨을 직접 정하는 숫자, 예: CS). 그 반 전체 화면이 그걸로 통일된다
  • B. 학생마다 지표 종류를 따로 고른다 — 더 유연하다. 대신 학생마다 선택 칸이 하나씩 더 붙으니 애초에 "별로다"를 만든 원인이 그대로 되살아난다
  • C. 지표 추적을 포기하고 자유 기록만 남긴다 — 제일 단순하지만 "성장을 눈에 보이게 추적한다"는 원래 제품의 약속을 접는 것

A 와 B 를 가른 건 질문 하나였다. "같은 반 안에서 학생 A는 랭크, 학생 B는 CS 로 실제로 섞어 쓸 일이 있는가." 그런 사례가 없다고 판단해서 A 로 갔다.

classes 테이블에 growth_metric_type(tier/number)과 growth_metric_label 컬럼을 추가했다. 기존 반은 전부 기본값 tier 로 채워져서 화면이 그대로 유지된다. 회차 화면은 반이 고른 지표 하나만 보여준다 — 티어면 드롭다운 하나, 숫자면 라벨이 붙은 입력칸 하나.

회차 화면만 고치고 끝냈으면 안 걸렸다

"티어"라는 단어가 회차 화면 말고 다른 데도 하드코딩돼 있었다. 10주치를 모아 인쇄하는 보고서다.

  • 표 헤더가 티어 변화
  • 요약 문구가 평균 성장 N단계

숫자 지표를 쓰는 반이었으면 인쇄물 칸 안에는 132 → 180 이 찍히고, 그 칸 제목은 티어 변화, 평균은 48.0단계로 나올 뻔했다.

화면을 다 고쳐놓고 "다 고쳤다"고 하기 전에 같은 단어로 레포 전체를 grep 해서 잡았다. 회차 화면 하나만 고치고 끝냈으면 발견되는 곳은 학부모가 받는 인쇄물이었을 것이다.

새로 만든 단어가 안 통했다

다른 하나는 어휘였다. 반 만들기 화면의 라디오 버튼을 처음엔 "티어 사다리" / "숫자 기록" 으로 지었다. 담당자 반응은 "와닿지 않는다"였다.

앱의 다른 화면들은 전부 그냥 "티어"라고만 부르고 있었다. 이 화면에서만 "사다리"라는 새 단어를 만들어 쓴 게 원인이었다. "티어" / "직접 입력" 으로 바꾸니 끝났다.

바뀐 건 컬럼 두 개, 회차 화면, 인쇄 보고서 두 군데, 라디오 버튼 라벨이다. 기존 4개 학교 반은 기본값으로 들어가서 손댄 게 없다.

← 목록으로