FEInterview Prep

Tistory

리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기

SOLID 원칙 중 개방-폐쇄 원칙(OCP)을 React 컴포넌트 설계에 적용하는 방법을 다룹니다. OCP는 컴포넌트가 확장에는 열려 있고(새 기능 추가 가능) 수정에는 닫혀 있어야(기존 코드 변경 불필요) 함을 의미하며, 합성(composition) 패턴, 렌더 프롭, children 활용, 고차 컴포넌트(HOC) 등을 통해 구현할 수 있습니다.

2025-07-03·5분 읽기
React아키텍처
원문 보기 ↗

핵심 요약

이 아티클은 React 컴포넌트와 렌더링 흐름를 실무 판단 기준으로 다시 정렬해 주는 읽기 자료입니다. SOLID 원칙 중 개방-폐쇄 원칙(OCP)을 React 컴포넌트 설계에 적용하는 방법을 다룹니다. OCP는 컴포넌트가 확장에는 열려 있고(새 기능 추가 가능) 수정에는 닫혀 있어야(기존 코드 변경 불필요) 함을 의미하며, 합성(composition) 패턴, 렌더 프롭, children 활용, 고차 컴포넌트(HOC) 등을 통해 구현할 수 있습니다. OCP를 준수하면 기존 컴포넌트를 건드리지 않고 새로운 변형을 추가할 수 있어 버그 위험과 리팩토링 비용이 감소합니다.

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

React 컴포넌트와 렌더링 흐름를 설명할 때 정의만 말하면 답변이 얕아지기 쉽습니다. 개방-폐쇄 원칙(OCP)은 새 기능 추가 시 기존 코드를 수정하지 않고 확장만으로 가능하게 설계하는 원칙이다. 실무 판단 근거와 면접 답변의 밀도를 동시에 끌어올릴 수 있습니다.

학습 포인트

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

개방-폐쇄 원칙

개방-폐쇄 원칙(OCP)은 새 기능 추가 시 기존 코드를 수정하지 않고 확장만으로 가능하게 설계하는 원칙이다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

OCP개방폐쇄원칙
자주 하는 오해

개방-폐쇄 원칙를 개념으로만 기억하고 맥락 없이 적용하면 개방-폐쇄 원칙(OCP)은 새 기능 추가 시 기존 코드를 수정하지 않고 확장만으로 가능하게 설계하는 원칙이다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.

React에서 OCP는 children prop

React에서 OCP는 children prop, composition 패턴, 렌더 프롭을 통해 구현되며, 내부 구현을 노출하지 않고도 동작을 커스텀할 수 있다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

ReactOCPchildrenprop
자주 하는 오해

React에서 OCP는 children prop를 개념으로만 기억하고 맥락 없이 적용하면 React에서 OCP는 children prop, composition 패턴, 렌더 프롭을 통해 구현되며, 내부 구현을 노출하지 않고도 동작을 커스텀할 수 있다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.

if/switch 분기로 변형을 처리하는 대신 각

if/switch 분기로 변형을 처리하는 대신 각 변형을 별도 컴포넌트로 분리하고 조합하는 방식이 OCP를 따른다. 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

if/switchOCP분기로변형을
자주 하는 오해

if/switch 분기로 변형을 처리하는 대신 각 를 개념으로만 기억하고 맥락 없이 적용하면 if/switch 분기로 변형을 처리하는 대신 각 변형을 별도 컴포넌트로 분리하고 조합하는 방식이 OCP를 따른다. 추상화만 늘리고 경계를 점검하지 않으면 구조가 커질수록 변경 비용이 급격히 커집니다.

읽는 순서

  1. 1이론

    "리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기"의 멘탈 모델과 요약을 먼저 읽고, React 컴포넌트와 렌더링 흐름와 관련된 핵심 용어 3개를 적어보세요.

  2. 2구현

    리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기에서 다룬 아이디어를 작은 예제로 직접 구현하거나 기존 코드에 대입해 보면서 적용 조건을 확인하세요.

  3. 3실무

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

  4. 4설명

    동료에게 "React 컴포넌트에서 개방-폐쇄 원칙(OCP)을 위반하는 코드 예시와, 이를 OCP를 준수하도록 리팩토링하는 방법을 설명해주세요."에 대한 답을 5분 안에 설명해보세요. 막히는 부분이 아직 이해가 얕은 구간입니다.

면접 연결 질문

mediumReact 컴포넌트에서 개방-폐쇄 원칙(OCP)을 위반하는 코드 예시와, 이를 OCP를 준수하도록 리팩토링하는 방법을 설명해주세요.
힌트

[감점 답변] 용어 정의만 반복하거나 "리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] 버튼 타입별 if/else 분기 처리 예시를 들고, children이나 variant prop + 컴포넌트 합성으로 개선하는 방법을 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

mediumReact에서 컴포넌트 합성(Composition) 패턴과 상속(Inheritance)을 비교하고, React가 상속 대신 합성을 권장하는 이유를 설명해주세요.
힌트

[감점 답변] 용어 정의만 반복하거나 "리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] React 공식 문서의 권고사항, 합성의 유연성, 클래스 상속의 깊은 계층 구조 문제를 언급하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

hardSOLID 원칙 중 React 개발에서 가장 자주 활용되는 원칙을 2-3가지 꼽고, 각각 어떻게 적용하는지 설명해주세요.
힌트

[감점 답변] 용어 정의만 반복하거나 "리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] SRP(단일 책임 - 컴포넌트와 훅 분리), OCP(합성 패턴), ISP(props 인터페이스 분리)를 예시와 함께 설명하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

자기 점검

"개방-폐쇄 원칙"가 왜 중요한지 스크롤 올리지 않고 한 문장으로 설명해보세요.
OCP개방폐쇄원칙
자주 하는 오해

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

리액트의 개방-폐쇄 원칙: 확장 가능한 컴포넌트 만들기에서 강조한 판단 기준을 실무 예시와 함께 설명해보세요.
ReactOCPchildrenprop
자주 하는 오해

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