kyu-log

Kyujin Hong's Dev-Blog

안녕하세요! 언제나 문제가 발생할 때면
"시스템적으로 막을 수는 없을까?"
집요하게 고민하는 Frontend 개발자
홍규진입니다.

접근성 트리: 브라우저는 DOM 옆에 하나를 더 만든다
ReactUX접근성

접근성 트리: 브라우저는 DOM 옆에 하나를 더 만든다

DOM에 선언한 ARIA 속성이 실제 접근성 트리에 어떻게 반영되는지, combobox와 aria-multiline 충돌을 수정한 오픈소스 기여 사례로 살펴봅니다.

몇 픽셀을 갖고 싸운다? : 접근성에도 법이 있다 - WCAG
ReactUX

몇 픽셀을 갖고 싸운다? : 접근성에도 법이 있다 - WCAG

오픈 소스 이슈에서 시작된 접근성 논쟁을 따라가며 WCAG를 정리합니다. A / AA / AAA는 버전이 아니라 등급이라는 점, 버전과 등급이 따로 논다는 점, SC 번호 읽는 법까지 실제 이슈에 적용해 보며 확인합니다.

개인 블로그 SEO 최적화 과정
BlogSEOReact

개인 블로그 SEO 최적화 과정

클라이언트 사이드 페이지네이션은 초기 HTML에 글 링크를 남기지 않아 크롤러가 따라갈 경로를 지웁니다. Search Console의 내부 링크 수치로 그 상태를 확인하고, 전체 글을 링크하는 아카이브 페이지로 해결하는 과정을 정리합니다.

잘게 쪼갤수록 좋다는 착각에서 벗어나기 - "모듈성은 받아들이되, 세분도를 조심하라"
Essay

잘게 쪼갤수록 좋다는 착각에서 벗어나기 - "모듈성은 받아들이되, 세분도를 조심하라"

잘게 쪠걠수록 좋다는 통념을 세분도(granularity) 관점에서 다시 봅니다. Atomic Design이 끝까지 지켜지지 않는 이유, 수정할 이유가 하나인데 파일이 둘인 상황을 짚고, 좋은 세분도는 크기가 아니라 경계로 정해진다는 결론에 닿습니다.

Suspense Query - 선언성을 댓가로 지불하는 Suspend 상태
ReactDX

Suspense Query - 선언성을 댓가로 지불하는 Suspend 상태

useSuspenseQuery는 코드를 선언적으로 만들지만, suspend는 결국 throw입니다. 받아 줄 경계가 없으면 화면이 사라집니다. 경계를 어느 깊이에 둘지, Next.js에서는 무엇이 달라지는지, 그래서 언제 쓸 만한지를 정리합니다.

Zod는 런타임에 어떻게 타입을 검증하는가? - (2) 직접 만든 zod 구조의 한계
TypeScript

Zod는 런타임에 어떻게 타입을 검증하는가? - (2) 직접 만든 zod 구조의 한계

직접 만든 Zod 구조가 부딪힌 두 한계를 넘습니다. optional 키에 진짜 ?를 붙이는 key remapping, input 타입을 실어 나르는 phantom 타입을 구현하고 실제 Zod 4 소스와 대조해 봅니다.