환경: 본 글은 Next.js 14.2 · Pages Router 기준으로 재현/검증했습니다.
주의: 본문에서 /app은 basePath를 뜻하며, App Router의 app/ 디렉터리와 무관합니다.
#frontend
총 10개의 포스트
관련 태그
블로그 글이 점점 쌓이다 보니 원하는 글을 찾기가 어려워졌다. 처음에는 검색 기능을 추가할까 고민했지만, 너무 복잡해질 것 같아 태그 기능을 도입했다.
요즘 playwright를 가지고 놀고 있다. 원래는 E2E 테스트용 도구인데, 반복적인 작업을 자동화하기에도 꽤 괜찮아 보였다. 기존에 셀레니움을 써서 자동화한 서비스를 플레이라이트로 바꾸면서, 훨씬 쉽고 직관적이고 VSCode나 GitHub Actions 환경과도 궁합이 잘 맞는다는 느낌을 받았다.
웹 기술이 발전함에 따라 사용자 경험과 효율적인 데이터 처리의 중요성이 커지고 있다. 이런 맥락에서 HTML 폼의 accept 속성은 중요한 역할을 한다. 사용자가 업로드할 파일 유형을 제어하는데 있어 이 속성은 종종 간과되지만, 매우 강력한 기능을 제공하여 사용자 경험과 백엔드 처리 효율성을 향상시킨다.
얼마 전 면접에서 질문을 받은 기억이 나서 리마인드 할 겸 정리한다. React에서 컴포넌트를 다룰 때, 이를 “Controlled” 및 “Uncontrolled”로 나누어 생각할 수 있다. 두 방식 간의 주요 차이점을 이해하는 것은 React와 상태 관리를 제대로 다루기 위해 중요하다.
최근 블로그 배포를 netlify에서 vercel로 변경하였다. 둘 다 비슷한 서비스고 장점과 단점이 있는데, google analytics처럼 audience를 보여주는게 좋아보여서 변경했다. Core web vital도 보여주는데 이건 netlify에서도 lighthouse 플러그인으로 확인할 수 있다.
Type 'unknown' is not assignable to type 오류는 TypeScript에서 ‘unknown’ 타입의 값을 다른, 더 구체적인 타입의 변수나 속성에 할당하려고 할 때 일반적으로 발생한다. react-query 컨텍스트에서 이 오류는 쿼리에서 반환되는 데이터를 처리할 때 발생하며, TypeScript가 데이터의 타입을 올바르게 추론할 수 없는 경우에 발생한다.
Material-UI의 TableCell 컴포넌트를 사용하고 component prop을 “th” 또는 “td”로 지정했을 때 “validateDOMNesting” 오류가 발생했다.