테스트 선정과 작성

무엇을 테스트하고 무엇을 빼는가, 그리고 테스트 작성 규칙

왜 테스트 코드를 작성해야 할까요?

테스트가 주는 확신의 본질과 QA와의 역할 차이

스켈레톤, 중복 코드 없이 만들기

실제 컴포넌트의 CSS 클래스를 재사용해 스켈레톤을 만드는 패턴. 디자인이 바뀌어도 한 번만 고치면 자동 동기화된다.

렌더링 전략 최종 선택: Streaming

CSR → SSR → Streaming, 각 전략의 한계를 발견하고 개선한 과정

이미지 최적화: 이미지 용량 97% 감소

srcset + CDN 리사이징으로 773kB → 20kB

무한 스크롤 구현 및 리렌더링 최적화

IntersectionObserver와 React.memo로 렌더링 80% 감소

에러 방어: 무한 재요청 방지, 빈 목록 처리

API 실패 시 무한 반복 요청 차단과 빈 목록 처리

Sentry 구축 및 이슈 98% 해결

beforeSend 훅으로 단서 자동 매핑, 86종에서 1종으로 이슈 통합

최고의 검색결과 목록이란 무엇인가

디바운싱, 캐싱, useDeferredValue로 만드는 검색 UX

Zod 활용기

타입 선언과 유효성 검증을 하나의 스키마로 통합하기

에러 처리는 왜 필요한가?

에러 예방과 대응 전략의 첫 번째 단계

에러 피드백 UX 설계

사용자 반응 관찰에서 시작한 에러 메시지 개선

에러 처리 원칙 세우기

throw와 catch의 기준을 정하는 6가지 원칙

Client Side 렌더링 에러 처리

Error Boundary로 렌더링 에러 격리하기

Server Side 렌더링 에러 처리

error.tsx의 한계와 try-catch 선택 과정

이벤트 핸들러 시점 에러 처리

버튼 클릭 에러 처리와 로딩 상태 관리

전역/공통/개별 에러 처리

중복 에러 처리 로직을 하나로 통합하기

좋은 PR과 Commit을 작성하는 방법

작은 단위의 PR과 커밋이 가져다주는 이점과 실천법

디자인 시스템 구축기

Material Design 기반 컴포넌트 설계와 모노레포 재사용