Full Stack
& AI▲ 만들다 막힌 지점과 풀어낸 방법의 기록
숨겼는데 경고가 안 사라졌다. ul 을 줬는데 ul 이 아니라고 했다. 도구가 맞았고 내가 틀렸다. 다만 하나는 알면서 안 고쳤다.
카드 상세의 개인 맞춤 분석은 외부 AI를 한 번도 부르지 않는다. 문장 조각 124개와 가중치 규칙만으로 수천 가지 결과를 만든다. 그리고 같은 사람은 언제나 같은 결과를 받는다.
반년 동안 뭘 했나 적어본다. 별건 없다.
테스트 82개가 전부 초록불인데 배포하면 502가 반복됐다. 로그를 볼 수 없는 곳에서, 볼 수 있게 만드는 것부터 시작해야 했다.
혼자 다 해내는 실험을 반년. 끝에 남은 건 혼자의 뿌듯함이 아니라, 이 방식을 팀에 붙이면 어떨까 하는 상상이었다.
외부 API가 실패해도 페이지 전체가 무너지지 않게 하는 전략. 에러 상태도 디자인의 일부다.

밤에 영화를 틀면 사십 분 만에 잔다.
연초에 뭘 적어뒀는지 찾다가 엉뚱한 걸 발견했다.
데이터를 고쳤는데 화면이 안 바뀐다. 이미지도, 통계도 그랬다. 저장된 값과 화면에 그려지는 값은 다른 층위다 — 그걸 세 번 더 배웠다.
매일 하는데 늘지 않는 것 같은 정체감. 석 달 전의 나를 다시 보고 나서야 성장이 보였다.
JSX를 뒤덮은 Tailwind 클래스 문자열을 tw() 헬퍼와 CSS 객체로 분리해 마크업 가독성을 되찾은 기록.
대답하다가 삼십 분이 갔다.
RSC와 react-query 중 하나를 고르지 않았다. 셋을 공존시키고 화면마다 골랐다. 그런데 원칙대로 만든 화면 하나가 3~4초씩 멈췄고, 나는 하루에 세 번 원인을 헛짚었다.
비 와서 하루 종일 집에 있었다.
요구사항부터 배포까지 혼자 관통해본 회고. 전달 손실은 사라지지만 객관성이라는 대가가 따라온다.
aria-label과 포커스를 나중에 몰아 고치다 깨달은 것. 시맨틱하게 짜면 접근성의 8할은 공짜다.
세 군데 가야 하는데 두 번 나갔다.
콘센트가 없었다.
콘텐츠 저장소에 push하면 배포까지 알아서 굴러가는 파이프라인을 만들었다. 혼자 운영해도 시스템은 팀처럼 돌아가야 한다.
석 달째 블로그를 쓰며 알게 된 것. 문제를 글로 정리하면 절반은 풀린다.