Fragment는 빈 태그가 아니었다2026.06.30Fragment는 빈 태그가 아니었다React#readability#frontend2026.06.30Fragment는 빈 태그가 아니었다React#readability#frontend리액트에서 리스트를 렌더링하다 보면 손이 먼저 움직이는 순간이 있다. 한 아이템에서 여러 요소를 반환해야 하니 일단 <>...</>로 감싼다. items.map((item) => ( <> <span>{item.title}</span> <span>{item.description}</spa…
Zustand 미들웨어를 읽는 순서로 돌려놓기2026.06.22Zustand 미들웨어를 읽는 순서로 돌려놓기TypescriptReact유용한 도구들#readability+3 more categories or tags2026.06.22Zustand 미들웨어를 읽는 순서로 돌려놓기TypescriptReact유용한 도구들#readability+3 more categories or tagsZustand로 스토어를 만들다 보면 처음에는 코드가 꽤 단정해 보인다. 상태 타입을 만들고, create()에 생성 함수를 넘기고, 필요한 미들웨어를 하나씩 감싸면 된다. persist를 붙이면 새로고침 뒤에도 값이 남고, devtools를 붙이면 Redux DevTools에서 변경을…
ESLint와 AGENTS.md로 AI 협업 경계 세우기2026.06.19ESLint와 AGENTS.md로 AI 협업 경계 세우기Agentic Coding#agentsmd#ai-agent#frontend+1 more categories or tags2026.06.19ESLint와 AGENTS.md로 AI 협업 경계 세우기Agentic Coding#agentsmd#ai-agent#frontend+1 more categories or tags처음에는 단순히 ESLint를 설정하는 과제라고 생각했다. 프론트엔드 프로젝트에서 ESLint와 Prettier를 붙이고, Husky와 lint-staged를 연결하고, 커밋 전에 어느 정도 코드 품질을 확인하게 만드는 일. 익숙한 일까지는 아니어도, 적어도 낯선 일은 아니라고 생각했다…
:empty로 비어 있는 wrapper 다루기2026.06.10:empty로 비어 있는 wrapper 다루기CSS#tailwindcss#frontend#styling2026.06.10:empty로 비어 있는 wrapper 다루기CSS#tailwindcss#frontend#stylingUI를 만들다 보면 내용은 없는데 wrapper만 남는 경우가 있다. 카드의 보조 설명 영역, 필터 결과 안내 영역, 혹은 children을 받아서 그리는 작은 레이아웃 컴포넌트가 그렇다. 실제로 보여줄 내용은 없는데 padding이나 border가 적용된 부모 요소만 화면에 남으면,…
@function2025.11.02@functionCSS#design-system#functional#frontend+1 more categories or tags2025.11.02@functionCSS#design-system#functional#frontend+1 more categories or tagsCSS는 오랫동안 정적인 선언 언어처럼 다뤄졌다. 물론 calc()도 있고, 커스텀 속성도 있고, 미디어 쿼리나 컨테이너 쿼리도 있으니 실제로 그렇게 단순한 언어는 아니다. 그래도 반복되는 계산이나 디자인 시스템의 규칙을 재사용하려고 하면 금방 한계가 보인다. 값은 변수로 빼둘 수 있지…
모달과 팝오버, 그리고 앵커 포지셔닝2025.05.31모달과 팝오버, 그리고 앵커 포지셔닝CSSReact#accessibility#web-standards+1 more categories or tags2025.05.31모달과 팝오버, 그리고 앵커 포지셔닝CSSReact#accessibility#web-standards+1 more categories or tags모달과 팝오버를 칼로 베듯 나눠서 생각해본 적은 별로 없었다. 화면 한가운데 떠서 다른 작업을 막으면 모달, 버튼 옆에 붙어서 옵션이나 보조 정보를 보여주면 팝오버, 정도로 느슨하게 이해하고 있었다. 실제 UI를 만들 때도 대체로 그 정도 감각이면 굴러간다. 문제는 브라우저가 이 둘을…
@property와 동적 스타일링2025.05.13@property와 동적 스타일링CSSReact#design-system#dynamic+3 more categories or tags2025.05.13@property와 동적 스타일링CSSReact#design-system#dynamic+3 more categories or tags프론트엔드 개발자들이 모인 자리에서 “어떤 스타일링 도구 좋아하세요?”라고 물어보면 못해도 30분은 이야기할 수 있다. 내 경우에는 여러 번 말했듯이 Tailwind CSS와 CSS Module을 선호한다. 그런데 이 취향을 말하면 거의 정해진 질문이 돌아온다. “그거 동적 스타일링하기…