Uh oh!
There was an error while loading. Please reload this page.
feat: 서비스 소개 사이트 5개 페이지 구축 - #6
Merged
Merged
Conversation
방향은 육아수첩·관공서 기록부. 이 분야에서 흔한 파스텔 베이비 톤도, 핀테크식 무채색도 쓰지 않는다. 표제는 굵게 외치는 대신 얇게 크게 놓는다. 이 서비스의 목소리가 '다 받으세요' 가 아니라 '이건 알고 이건 모릅니다' 라서다. 한글 명조를 쓰면 더 좋았겠지만 next/font 에 한글 서브셋을 주는 구글 폰트가 없고, 런타임에 외부에서 받아 오면 방문자 IP 가 매번 나간다. 개인정보 고지를 두는 서비스에서 앞뒤가 맞지 않아 자체 호스팅한 Pretendard 만 쓴다.
기록부의 항목 배치를 따라 좌측에 라벨, 우측에 내용을 둔다. 메뉴 탭은 순서가 아니라 분류라서 번호를 붙이지 않는다.
히어로에서 문구로 설득하는 대신 축을 놓고 직접 옮겨 보게 한다. 밴드 구성은 실제 정책 데이터 모델(대상 연령 상·하한, 지급액, 소급 개월)을 따랐고, 금액을 모르는 정책은 미상으로 둔다.
빈자리 알림은 마케팅 문구로 바꾸지 않고 실제 발송되는 문장을 그대로 보여 준다. 시설 전체 기준이라 해당 반은 확인해야 한다는 마지막 줄이 이 제품의 성격이다.
데이터 페이지에 아는 것과 모르는 것을 나란히 적었다. 마케팅 페이지가 보통 하지 않는 일이지만, 어린이집 자리와 지원금은 부모가 실제 결정을 내리는 정보라 그럴듯한 추정치를 믿고 다른 선택지를 포기하면 손해를 본다.
무엇을 만들었는지보다 왜 그렇게 만들었는지를 남긴다. 수치를 고칠 때 참고할 백엔드 문서도 함께 건다.
수집량과 정책 밴드가 세 파일에 각각 박혀 있었다. 백엔드는 매주 공공데이터를 새로 받아 오므로 이 값들은 시간이 지나면 반드시 낡는데, 흩어져 있으면 낡은 걸 아무도 모른 채 지나간다. 이 사이트는 근거 없는 숫자를 쓰지 않겠다고 말한다. 그러면서 정작 소개 페이지의 숫자가 언제 기준인지 밝히지 않으면 그 주장 자체가 무너진다. 값과 기준일을 한 파일에 두고 화면에도 함께 띄운다.
손으로 확인하다 실제로 걸렸던 것들을 그대로 옮겼다. /data 표가 그리드 칸을 밀어 가로로 넘쳤고, 표에 caption 이 없어 스크린리더가 무슨 표인지 알려 주지 못했다. 같은 페이지를 폭만 바꿔 여러 번 열기 때문에 두 번째부터는 304 가 온다. ok() 는 304 를 실패로 보므로 상태 코드를 직접 본다.
소개 사이트는 검색과 공유로 사람이 들어오는 것이 존재 이유인데 그 준비가 없었다. OG 이미지는 사이트를 처음 여는 사람이 보는 것과 같아야 해서 모눈 배경과 월령 축을 그대로 옮겼다. 문구도 사이트와 맞춘다. 사이트는 '지남' 과 '소급 가능' 을 구분하므로 요약 그림이라고 뭉뚱그리지 않는다.
PR 에서는 배포하지 않고 검증만 한다. main 에 들어가면 빌드해 Pages 로 올린다. 프로젝트 페이지는 /<저장소명> 아래에 붙어 basePath 가 없으면 CSS·JS 가 전부 404 다. 로컬은 루트로 서비스하므로 워크플로에서만 넣는다. 배포 성공과 사이트가 뜨는 것은 다르다. 5개 경로와 sitemap·robots 응답에 더해 CSS 가 실제로 붙는지까지 본다. basePath 가 어긋나면 거기서 걸린다.
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
서비스 소개 사이트를 구축합니다. 5개 페이지, 정적 출력.
Closes#1
Closes#2
Closes#3
Closes#4
Closes#5
왜 별도 저장소인가
처음에는 앱 안에
/intro로 넣었다가 뺐습니다.max-w-sm모바일 셸 안에서 도는데 소개 사이트는 전체 폭이 필요합니다. 경로마다 셸과 세션·푸시 초기화를 우회해야 했습니다.디자인 방향 — 육아수첩 · 관공서 기록부
이 분야에서 흔한 파스텔 베이비 톤도, 핀테크식 무채색도 쓰지 않았습니다. 정부가 나눠 주는
아기수첩 — 모눈 인쇄, 개월 수 탭, 도장, 표 — 을 기준으로 삼았습니다.
--paper#F6F8F3--ink#1C2620--seal#36AA1C--past#A8B2A5--stamp#C2453D시그니처 — 월령 타임라인
히어로에서 문구로 설득하지 않고 축을 옮겨 직접 보게 합니다. 27개월에 놓으면 부모급여는
지났지만 소급 가능(빨강), 아동수당·양육수당·보육료는 유효(초록), 첫만남이용권은 기회가
지남(회색)으로 갈립니다.
밴드 구성은 실제 정책 데이터 모델(대상 연령 상·하한, 지급액, 소급 개월)을 따랐고, 금액을 모르는
정책은
미상으로 뒀습니다.감수한 것 — 모르는 것을 적는 페이지
/data에 "아는 것 / 모르는 것" 대조표를 넣었습니다. 마케팅 페이지가 보통 하지 않는 일입니다.근거는 이 제품의 철학 자체가 "지어낸 숫자는 없는 것보다 나쁘다" 이고, 어린이집 자리와 지원금은
부모가 실제 결정을 내리는 정보라 그럴듯한 추정치를 믿고 다른 선택지를 포기하면 손해를 보기
때문입니다.
판단이 필요했던 지점
표제 서체. 한글 명조로 가려 했는데
next/font번들에 한글 서브셋을 제공하는 구글 폰트가 하나도없었습니다. 런타임에 구글에서 받아 오는 방법은 되지만, 개인정보 고지 페이지를 둔 서비스가 방문자
IP 를 매번 구글로 보내는 건 앞뒤가 맞지 않아 쓰지 않았습니다.
대신 자체 호스팅한 Pretendard 를 300 굵기로 크게 놓아 표제를 만들었습니다. 이 서비스의 목소리가
"다 받으세요" 가 아니라 "이건 알고 이건 모릅니다" 라서, 700 고딕 헤드라인은 성격에 맞지 않기도
했습니다.
검증
next buildout/산출검증 중 잡은 것
/data가로 스크롤 — 그리드 자식의min-width: auto가 안쪽 표만큼 칸을 밀고 있었습니다scroll-margin-top추가남긴 것
추가: 배포 · SEO · 검증 자동화 (#2#4#5)
수치 갱신(#3)을 미룬 이유가 "배포 파이프라인이 없어서" 였는데, 그러면 파이프라인부터 만드는 게
순서였습니다. 남은 세 건을 함께 처리했습니다.
배포 (#2)
main푸시 → 빌드 → GitHub Pages. PR 에서는 배포하지 않고 검증만 합니다./<저장소명>아래에 붙어basePath가 없으면 CSS·JS 가 전부 404 입니다.로컬은 루트로 서비스하므로 워크플로에서만 넣습니다.
sitemap.xml·robots.txt응답에 더해CSS 가 실제로 붙는지까지 확인합니다.
basePath가 어긋나면 거기서 걸립니다.SEO (#4)
sitemap.xml,robots.txt, OG 이미지, canonical, twitter 카드.OG 이미지는 코드로 그립니다. 사이트를 처음 여는 사람이 보는 것과 같아야 해서 모눈 배경과 월령
축을 그대로 옮겼습니다. 문구도 사이트와 맞췄습니다 — 사이트가 "지남" 과 "소급 가능" 을 구분하므로
요약 그림이라고 뭉뚱그리지 않았습니다.
검증 자동화 (#5)
scripts/verify-pages.mjs로 옮겨 CI 에 붙였습니다. 5개 페이지 × 3개 폭(390·768·1440) 가로오버플로와 접근성(h1 개수, 제목 레벨, 라벨, 표 caption, 이름 없는 링크·버튼)을 봅니다.
여기서 보는 것은 전부 이번에 손으로 확인하다 실제로 걸렸던 것입니다.
추가: 낡아 가는 수치 (#3)
리뷰 전에 하나 더 고쳤습니다. 수집량과 정책 밴드가 세 파일에 각각 박혀 있었습니다.
백엔드는 매주 공공데이터를 새로 받아 오므로 이 값들은 시간이 지나면 반드시 낡는데,
흩어져 있으면 낡은 걸 아무도 모른 채 지나갑니다.
이 사이트는 "근거 없는 숫자는 쓰지 않는다" 를 내세웁니다. 그러면서 정작 소개 페이지의 숫자가
언제 기준인지 밝히지 않으면 그 주장 자체가 무너집니다.
src/content/figures.ts한 곳으로 모으고MEASURED_ON을 함께 둡니다2026-08-06 기준을 띄웁니다갱신 방법은 파일 주석에 적었습니다 —
./gradlew liveSyncCheck로 실측한 뒤 값과 날짜를 함께 고칩니다.