Files
document-haness/docs/TechLog/tech-log-studio/an-axis-inside-a-topic/case/case-the-comparison-band-changed-three-times.md
T

105 lines
5.3 KiB
Markdown

---
kind: CASE
slug: the-comparison-band-changed-three-times
title: 홈의 비교 구역이 세 번 바뀌었다 — 상한을 없애고 요청을 목록 하나와 주제 하나로 고정했다
topic: an-axis-inside-a-topic
topicName: 주제 안의 축
project: TechLog
status: 게시 전
lastVerifiedOn: 2026-09-04
evidence:
- ../../../final/evidence/browser/home-tabs-keycloak.png
- ../../../final/evidence/browser/home-topic-tabs.png
- ../../../final/evidence/browser/home-topic-tabs-2.png
- ../../../final/evidence/browser/home-tabs-grouped.png
- ../../../final/evidence/browser/tab-metrics.txt
sourceRevision: tech-log@2026-09-02
source:
- final/document.md#§14.2
---
# 홈의 비교 구역이 세 번 바뀌었다 — 상한을 없애고 요청을 목록 하나와 주제 하나로 고정했다
홈의 비교 구역을 세 번 바꿨다. 처음에는 주제 하나만 펼치고 아래에 다른 주제로 가는 줄을 뒀고, 다음에는 주제 이름을 탭으로 세웠고, 마지막에 탭을 칩 크기로 낮추고 개수 상한을 없앴다. 상한을 없앨 때 요청 구조를 바꿔 주제가 몇 개가 되든 첫 요청이 고정되게 했다.
## 관계
- **축은 주제가 이름을 정하고, 기록은 종류와 아이디의 쌍으로 축에 걸린다**
이 화면이 그리는 구조다.
- **축의 결론 문장과 기록 수는 기록을 붙여도 따라오지 않는다**
이 화면에서 자동으로 안 따라오는 것이 그 질문에 있다.
- **한 칸의 실패가 옆 칸을 끌고 내려갔다**
탭 하나를 못 받아도 나머지가 남게 한 판단이 그 기록에 있다.
## 문제
홈이 「무엇을 만들었나」로 시작하고 있었다. 30초 안에 알아야 할 것은 무엇을 견줬는가다.
## 결론
세 단계를 거쳤다.
1단계 : 주제 하나만 펼치고 아래에 「다른 주제 N개 보기」 한 줄
바꾼 이유 : 홈이 「무엇을 만들었나」로 시작했다
2단계 : 제목 자리를 주제 이름 탭이 대신한다 (30px/650)
바꾼 이유 : 「다른 주제」 줄은 목록을 다 읽고 나서야 만나는 곳이라 대개 지나쳤다
3단계 : 탭을 칩 크기로 낮추고 개수 상한을 없앴다
바꾼 이유 : 주제가 열 개, 스무 개가 되면 이름만으로 화면이 덮인다
3단계에서 요청 구조를 바꿨다. 탭은 목록 호출 하나가 주는 전부이고, 상세는 고른 탭만 그때 받아 캐시한다. 그래서 주제가 몇 개가 되든 홈이 처음 보내는 요청은 목록 하나와 주제 하나로 고정된다.
## 검증 환경
tech-log-frontend : 604ded5 → de4cb8b → 3bb724b · 2b2f443
확인 방식 : 배포본에서 단계마다 화면을 찍고 getComputedStyle 로 실측
## 재현 조건
1. 홈을 열고 개발자도구 네트워크에서 처음 나가는 요청 수를 센다
2. 탭을 하나 고르고 추가로 나가는 요청을 본다
3. 같은 탭을 다시 고른다 — 캐시되어 요청이 나가지 않는다
## 본문
<!-- body:start -->
## 세 단계
1단계는 주제 하나만 펼치고 아래에 「다른 주제 N개 보기」 한 줄을 뒀다. 홈이 「무엇을 만들었나」로 시작하고 있었는데, 30초 안에 알아야 할 것은 무엇을 견줬는가였다.
그 줄은 목록을 다 읽고 나서야 만나는 곳이라 대개 지나쳤다. JPA 주제는 홈에 있으면서도 없는 것과 같았다.
2단계에서 제목 자리를 주제 이름 탭이 대신하게 했다. 30px 에 굵기 650 으로 세웠고, 고른 탭에 파란 밑줄을 뒀다.
3단계에서 탭을 칩 크기로 낮추고 개수 상한을 없앴다. 주제가 열 개, 스무 개가 되면 이름만으로 화면이 덮이기 때문이다.
## 상한이 왜 있었나
상한은 주제마다 상세를 미리 받느라 둔 것이었다. 상세를 다 받으려면 요청이 주제 수만큼 늘어나므로 그 수를 제한해야 했다.
그러면 상한 밖의 주제가 다시 밀려난다. 1단계에서 「다른 주제」 줄에 밀려나던 것과 같은 결과가 된다.
## 요청 구조를 바꿨다
탭 줄은 목록 호출 하나가 주는 전부다. 상세는 고른 탭만 그때 받아 캐시한다.
그래서 주제가 몇 개가 되든 홈이 처음 보내는 요청은 목록 하나와 주제 하나로 고정된다. 상한을 없앨 수 있었던 이유가 이것이고, 상한을 먼저 없애고 요청을 그대로 뒀다면 주제가 늘수록 홈이 느려졌을 것이다.
## 시각 언어를 두 번 고쳤다
고른 탭의 파란 밑줄을 없앴다. 주제가 스무 개면 밑줄 설 곳 스무 개가 함께 늘어선다.
칩으로 낮추니 목록 위에 글자만 떠 있는 것처럼 보였다. 고른 것이 색으로만 달라 누를 수 있는 것으로 읽히지 않았고, 탭 줄과 목록 사이가 선 없이 30px 비어 두 덩어리로 갈렸다.
고른 탭에 알약 형태를 주고, 묶음의 윗선을 목록이 아니라 패널이 갖게 해서 탭 줄이 그 선에 바로 얹히게 했다.
## 확인하지 못한 것
주제가 스무 개일 때의 화면은 만들어 보지 않았다. 상한을 없앤 근거는 요청 구조이지 그 규모의 측정이 아니다.
「지금 집중하는 것」 탭에는 파란 밑줄이 그대로 있다. 주제 탭은 알약이라 한 화면 안에서 두 언어가 섞여 있다.
<!-- body:end -->