Files

5.3 KiB

kind, slug, title, topic, topicName, project, status, lastVerifiedOn, evidence, sourceRevision, source
kind slug title topic topicName project status lastVerifiedOn evidence sourceRevision source
CASE the-comparison-band-changed-three-times 홈의 비교 구역이 세 번 바뀌었다 — 상한을 없애고 요청을 목록 하나와 주제 하나로 고정했다 an-axis-inside-a-topic 주제 안의 축 TechLog 게시 전 2026-09-04
../../../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
tech-log@2026-09-02
final/document.md#§14.2

홈의 비교 구역이 세 번 바뀌었다 — 상한을 없애고 요청을 목록 하나와 주제 하나로 고정했다

홈의 비교 구역을 세 번 바꿨다. 처음에는 주제 하나만 펼치고 아래에 다른 주제로 가는 줄을 뒀고, 다음에는 주제 이름을 탭으로 세웠고, 마지막에 탭을 칩 크기로 낮추고 개수 상한을 없앴다. 상한을 없앨 때 요청 구조를 바꿔 주제가 몇 개가 되든 첫 요청이 고정되게 했다.

관계

  • 축은 주제가 이름을 정하고, 기록은 종류와 아이디의 쌍으로 축에 걸린다 이 화면이 그리는 구조다.
  • 축의 결론 문장과 기록 수는 기록을 붙여도 따라오지 않는다 이 화면에서 자동으로 안 따라오는 것이 그 질문에 있다.
  • 한 칸의 실패가 옆 칸을 끌고 내려갔다 탭 하나를 못 받아도 나머지가 남게 한 판단이 그 기록에 있다.

문제

홈이 「무엇을 만들었나」로 시작하고 있었다. 30초 안에 알아야 할 것은 무엇을 견줬는가다.

결론

세 단계를 거쳤다.

1단계 : 주제 하나만 펼치고 아래에 「다른 주제 N개 보기」 한 줄 바꾼 이유 : 홈이 「무엇을 만들었나」로 시작했다

2단계 : 제목 자리를 주제 이름 탭이 대신한다 (30px/650) 바꾼 이유 : 「다른 주제」 줄은 목록을 다 읽고 나서야 만나는 곳이라 대개 지나쳤다

3단계 : 탭을 칩 크기로 낮추고 개수 상한을 없앴다 바꾼 이유 : 주제가 열 개, 스무 개가 되면 이름만으로 화면이 덮인다

3단계에서 요청 구조를 바꿨다. 탭은 목록 호출 하나가 주는 전부이고, 상세는 고른 탭만 그때 받아 캐시한다. 그래서 주제가 몇 개가 되든 홈이 처음 보내는 요청은 목록 하나와 주제 하나로 고정된다.

검증 환경

tech-log-frontend : 604ded5 → de4cb8b → 3bb724b · 2b2f443 확인 방식 : 배포본에서 단계마다 화면을 찍고 getComputedStyle 로 실측

재현 조건

  1. 홈을 열고 개발자도구 네트워크에서 처음 나가는 요청 수를 센다
  2. 탭을 하나 고르고 추가로 나가는 요청을 본다
  3. 같은 탭을 다시 고른다 — 캐시되어 요청이 나가지 않는다

본문

세 단계

1단계는 주제 하나만 펼치고 아래에 「다른 주제 N개 보기」 한 줄을 뒀다. 홈이 「무엇을 만들었나」로 시작하고 있었는데, 30초 안에 알아야 할 것은 무엇을 견줬는가였다.

그 줄은 목록을 다 읽고 나서야 만나는 곳이라 대개 지나쳤다. JPA 주제는 홈에 있으면서도 없는 것과 같았다.

2단계에서 제목 자리를 주제 이름 탭이 대신하게 했다. 30px 에 굵기 650 으로 세웠고, 고른 탭에 파란 밑줄을 뒀다.

3단계에서 탭을 칩 크기로 낮추고 개수 상한을 없앴다. 주제가 열 개, 스무 개가 되면 이름만으로 화면이 덮이기 때문이다.

상한이 왜 있었나

상한은 주제마다 상세를 미리 받느라 둔 것이었다. 상세를 다 받으려면 요청이 주제 수만큼 늘어나므로 그 수를 제한해야 했다.

그러면 상한 밖의 주제가 다시 밀려난다. 1단계에서 「다른 주제」 줄에 밀려나던 것과 같은 결과가 된다.

요청 구조를 바꿨다

탭 줄은 목록 호출 하나가 주는 전부다. 상세는 고른 탭만 그때 받아 캐시한다.

그래서 주제가 몇 개가 되든 홈이 처음 보내는 요청은 목록 하나와 주제 하나로 고정된다. 상한을 없앨 수 있었던 이유가 이것이고, 상한을 먼저 없애고 요청을 그대로 뒀다면 주제가 늘수록 홈이 느려졌을 것이다.

시각 언어를 두 번 고쳤다

고른 탭의 파란 밑줄을 없앴다. 주제가 스무 개면 밑줄 설 곳 스무 개가 함께 늘어선다.

칩으로 낮추니 목록 위에 글자만 떠 있는 것처럼 보였다. 고른 것이 색으로만 달라 누를 수 있는 것으로 읽히지 않았고, 탭 줄과 목록 사이가 선 없이 30px 비어 두 덩어리로 갈렸다.

고른 탭에 알약 형태를 주고, 묶음의 윗선을 목록이 아니라 패널이 갖게 해서 탭 줄이 그 선에 바로 얹히게 했다.

확인하지 못한 것

주제가 스무 개일 때의 화면은 만들어 보지 않았다. 상한을 없앤 근거는 요청 구조이지 그 규모의 측정이 아니다.

「지금 집중하는 것」 탭에는 파란 밑줄이 그대로 있다. 주제 탭은 알약이라 한 화면 안에서 두 언어가 섞여 있다.