Today's AntipatternAll Posts
테마
GitHubToday's AntipatternAll Posts

안티패턴을 통해 더 나은 코드를 작성하는 방법을 배워보세요. 개발자들이 실수하는 패턴들을 분석하고 개선방안을 제시합니다.

연결하기

© 2026 Smelly.dev All rights reserved.

August 10, 2025

🪢 불필요한 React Context Provider 래핑: 성능 저하와 디버깅 복잡성 증가

React Context Provider를 과도하게 사용하면 불필요한 리렌더링과 디버깅 복잡성을 야기합니다. Context 사용 범위를 최소화하고, 빈번한 업데이트 값은 Context 대신 컴포넌트 내부 상태나 상태 관리 라이브러리를 활용해야 합니다.
React
성능
상태관리
컴포넌트
렌더링전략
아키텍처
UX
React
성능
상태관리
...
August 9, 2025

🎭 CSS 유틸리티 클래스 남용: 스타일 재사용성 저하와 HTML 비대화

CSS 유틸리티 클래스를 남용하면 HTML 구조가 복잡해지고 스타일 재사용성이 저하됩니다. 컴포넌트 기반 스타일링, CSS 변수 활용, 그리고 적절한 유틸리티 클래스 사용으로 스타일을 효율적으로 관리해야 합니다.
CSS
React
아키텍처
컴포넌트
네이밍
Lint/Formatter
웹표준
CSS
React
아키텍처
...
August 8, 2025

👻 좀비 컴포넌트: Unmount 되지 않은 비동기 구독과 메모리 누수

컴포넌트 unmount 시 비동기 구독을 정리하지 않아 발생하는 메모리 누수를 방지해야 합니다. `useEffect` 클린업 함수를 사용하여 정리하세요.
JavaScript
React
성능
에러처리
컴포넌트
비동기처리
아키텍처
JavaScript
React
성능
...
August 7, 2025

🙈 CSS 애니메이션, transition 속성 분리 누락: 예기치 못한 애니메이션 동작, 요약: transition 속성은 단축 속성이므로, 속성값을 분리하여 작성하지 않으면 예상치 못한 애니메이션 동작이 발생할 수 있습니다. 변경하려는 속성을 명시적으로 선언하여 의도대로 애니메이션을 제어해야 합니다.

CSS `transition` 속성 사용 시 단축 속성으로 인해 의도치 않은 애니메이션이 발생할 수 있습니다. 변경될 속성을 명시적으로 지정하여 애니메이션을 제어하고, `will-change` 속성을 활용하여 성능을 최적화해야 합니다.
CSS
성능
애니메이션/UI
웹표준
UX
CSS
성능
애니메이션/UI
...
August 6, 2025

🧱 CSS-in-JS 과용: 런타임 오버헤드와 번들 크기 증가, 그리고 CSS 최적화 난항

CSS-in-JS는 유용한 도구이지만, 과도하게 사용하면 런타임 오버헤드, 번들 크기 증가, CSS 최적화 난항 등 다양한 문제를 야기합니다. CSS Modules, Atomic CSS, 조건부 CSS-in-JS 사용 등의 대안을 고려하여 프로젝트 요구사항에 맞는 최적의 스타일링 전략을 선택해야 합니다.
React
CSS
성능
아키텍처
컴포넌트
빌드&번들링
렌더링전략
React
CSS
성능
...
August 5, 2025

🎣 지나친 낙관적 업데이트 (Optimistic Updates) 맹신: UI 불일치와 데이터 무결성 훼손

낙관적 업데이트는 사용자 경험을 향상시키지만, 네트워크 에러 처리 미흡 시 UI 불일치와 데이터 손실을 초래합니다. 에러 핸들링, 롤백 기능, 서버 상태 동기화를 통해 데이터 무결성을 보장해야 합니다.
React
JavaScript
UX
에러처리
비동기처리
상태관리
React
JavaScript
UX
...
August 4, 2025

🔄 무분별한 전역 상태(Global State) 사용: 예측 불가능한 상태 변화와 성능 병목, 🪢 복잡한 의존성

무분별한 전역 상태 사용은 예측 불가능한 상태 변화, 성능 저하, 유지보수 어려움, 디버깅 복잡성 증가를 초래합니다. 적절한 상태 관리 라이브러리, Context API, 최적화 기법, 디버깅 도구를 활용하여 전역 상태를 효율적이고 투명하게 관리해야 합니다.
React
JavaScript
상태관리
성능
아키텍처
컴포넌트
UX
React
JavaScript
상태관리
...
August 3, 2025

🎭 조건부 렌더링 지옥: 복잡한 삼항 연산자와 && 남발, 가독성 및 유지보수성 저하

복잡한 조건부 렌더링 로직을 삼항 연산자나 && 연산자로 컴포넌트 내부에 과도하게 구현하면 코드 가독성, 유지보수성이 떨어지고 버그 발생 가능성이 높아집니다. 컴포넌트 분리, 헬퍼 함수, HOC, Render Props 패턴 등을 통해 조건부 렌더링 로직을 분리하고 재사용성을 높여야 합니다.
React
컴포넌트
아키텍처
UX
네이밍
JavaScript
React
컴포넌트
아키텍처
...
August 3, 2025

💣 폴리필(polyfill)을 과도하게 사용한 번들 비대화: 초기 로딩 지연과 사용자 경험 저하

모든 브라우저를 지원하기 위해 폴리필을 무분별하게 적용하면 번들 크기가 증가하고 성능이 저하됩니다. Browserslist, 동적 폴리필 로딩, 코드 분할을 통해 필요한 폴리필만 선별적으로 적용하여 최적의 사용자 경험을 제공해야 합니다.
JavaScript
성능
웹표준
빌드&번들링
호환성
React
UX
JavaScript
성능
웹표준
...
July 29, 2025

🏗️ <div> Soup: 시맨틱 HTML 무시로 인한 웹 접근성과 SEO 저하

과도한 `<div>` 사용과 시맨틱 HTML 태그 무시는 웹 접근성, SEO, 코드 가독성 및 유지보수성을 심각하게 저해합니다. 콘텐츠의 의미에 맞는 HTML5 태그를 사용하여 구조적이고 의미 있는 웹 페이지를 구축해야 합니다.
HTML
웹표준
SEO/접근성
아키텍처
네이밍
HTML
웹표준
SEO/접근성
...
  • Previous
  • Next