FEInterview Prep

Tistory

클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유

리액트 컴포넌트가 지저분해지는 원인을 심리적·구조적 관점에서 분석하고, 클린 코드 원칙을 리액트에 어떻게 적용할 수 있는지 다룬 아티클입니다. 단순히 규칙을 나열하는 것이 아니라 왜 개발자들이 나쁜 패턴을 선택하게 되는지 근본 원인을 탐구하고 실용적인 개선 방법을 제시합니다.

2025-06-24·4분 읽기
React아키텍처
원문 보기 ↗

핵심 요약

이 아티클은 React 컴포넌트와 렌더링 흐름를 실무 판단 기준으로 다시 정렬해 주는 읽기 자료입니다. 리액트 컴포넌트가 지저분해지는 원인을 심리적·구조적 관점에서 분석하고, 클린 코드 원칙을 리액트에 어떻게 적용할 수 있는지 다룬 아티클입니다. 단순히 규칙을 나열하는 것이 아니라 왜 개발자들이 나쁜 패턴을 선택하게 되는지 근본 원인을 탐구하고 실용적인 개선 방법을 제시합니다.

이 아티클은 React 컴포넌트와 렌더링 흐름를 면접에서 바로 꺼낼 수 있는 답변 프레임으로 접어 두는 메모처럼 읽으면 좋습니다.

React 컴포넌트와 렌더링 흐름를 설명할 때 정의만 말하면 답변이 얕아지기 쉽습니다. Props drilling, 거대한 컴포넌트, 비즈니스 로직과 UI 혼합 등이 컴포넌트를 지저분하게 만드는 주요 원인이다. 실무 판단 근거와 면접 답변의 밀도를 동시에 끌어올릴 수 있습니다.

학습 포인트

면접 답변으로 연결할 학습 포인트입니다.

Props drilling

Props drilling, 거대한 컴포넌트, 비즈니스 로직과 UI 혼합 등이 컴포넌트를 지저분하게 만드는 주요 원인이다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

PropsdrillingUI거대한
자주 하는 오해

Props drilling를 개념으로만 기억하고 맥락 없이 적용하면 Props drilling, 거대한 컴포넌트, 비즈니스 로직과 UI 혼합 등이 컴포넌트를 지저분하게 만드는 주요 원인이다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.

단일 책임 원칙

단일 책임 원칙(SRP)을 컴포넌트에 적용하면 각 컴포넌트가 하나의 역할만 담당하여 유지보수성이 높아진다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

SRP단일책임원칙
자주 하는 오해

단일 책임 원칙를 개념으로만 기억하고 맥락 없이 적용하면 단일 책임 원칙(SRP)을 컴포넌트에 적용하면 각 컴포넌트가 하나의 역할만 담당하여 유지보수성이 높아진다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.

커스텀 훅

커스텀 훅(Custom Hook)으로 비즈니스 로직을 분리하면 컴포넌트가 UI 렌더링에만 집중할 수 있다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

CustomHookUI커스텀
자주 하는 오해

커스텀 훅를 개념으로만 기억하고 맥락 없이 적용하면 커스텀 훅(Custom Hook)으로 비즈니스 로직을 분리하면 컴포넌트가 UI 렌더링에만 집중할 수 있다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.

읽는 순서

  1. 1이론

    "클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유"의 멘탈 모델과 요약을 먼저 읽고, React 컴포넌트와 렌더링 흐름와 관련된 핵심 용어 3개를 적어보세요.

  2. 2구현

    클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유에서 다룬 아이디어를 작은 예제로 직접 구현하거나 기존 코드에 대입해 보면서 적용 조건을 확인하세요.

  3. 3실무

    현재 프로젝트에서 React 컴포넌트와 렌더링 흐름와 연결되는 화면이나 코드 리뷰 사례를 찾아, 어디서 같은 판단이 필요한지 정리해보세요.

  4. 4설명

    동료에게 "리액트 컴포넌트를 작게 유지하는 것이 왜 중요하며, 컴포넌트를 분리해야 하는 기준은 무엇인가요?"에 대한 답을 5분 안에 설명해보세요. 막히는 부분이 아직 이해가 얕은 구간입니다.

면접 연결 질문

easy리액트 컴포넌트를 작게 유지하는 것이 왜 중요하며, 컴포넌트를 분리해야 하는 기준은 무엇인가요?
힌트

[감점 답변] 용어 정의만 반복하거나 "클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] 단일 책임 원칙, 재사용성, 테스트 용이성, 200줄 초과 시 분리 검토 등을 언급하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

medium리액트에서 커스텀 훅을 만들 때 어떤 기준으로 로직을 분리하고, 어떤 장점이 있나요?
힌트

[감점 답변] 용어 정의만 반복하거나 "클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] UI와 비즈니스 로직 분리, 테스트 가능성, 재사용성, 컴포넌트 가독성 향상 등을 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

hard컴포넌트 컴포지션(Composition) 패턴과 Props 전달 방식의 차이점을 설명하고, Compound Component 패턴을 예시로 설명해주세요.
힌트

[감점 답변] 용어 정의만 반복하거나 "클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] children prop, Context API를 활용한 Compound Component 패턴, 유연성과 캡슐화의 균형을 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

자기 점검

"Props drilling"가 왜 중요한지 스크롤 올리지 않고 한 문장으로 설명해보세요.
PropsdrillingUI거대한
자주 하는 오해

"Props drilling"를 기능 목록으로만 외우는 것. 실제로는 왜 이 접근이 필요한지와 적용 조건까지 설명해야 합니다.

클린 코드의 심리학: 우리가 지저분한 리액트 컴포넌트를 작성하는 이유에서 강조한 판단 기준을 실무 예시와 함께 설명해보세요.
SRP단일책임원칙
자주 하는 오해

좋은 사례만 기억하고 실패 조건을 빼먹는 것. 실제 면접에서는 언제 위험해지는지까지 함께 말해야 합니다.