패스잇
프론트엔드 개발 · 심화

재사용성과 유연성을 극대화하는 컴포넌트 설계를 위해, Renderless Components, Higher-Order Components (HOCs), 그리고 재귀 컴포넌트(Recursive Components) 패턴을 언제, 어떻게 활용할 수 있는지 각각의 실용적인 사용 사례와 구현 시 주의할 점을 들어 설명해 주십시오.

힌트 · Renderless 컴포넌트는 로직만 제공하고 렌더링은 슬롯에 위임하며, HOC는 컴포넌트에 추가 기능을 주입하고, 재귀 컴포넌트는 트리 구조 데이터 렌더링에 적합합니다.

Render PropsCompositionSide Effects재귀 탈출 조건관심사 분리

모범답안

면접관님, 좋은 질문 감사합니다. 재사용성과 유연성을 높이는 컴포넌트 설계는 매우 중요하다고 생각합니다.

Renderless 컴포넌트는 UI 로직을 재사용하고 싶을 때 유용합니다. 예를 들어, 현재 마우스 좌표를 추적하는 로직을 Renderless 컴포넌트로 만들고, 슬롯을 통해 렌더링 부분을 사용자에게 맡기는 것이죠. 주의할 점은 너무 많은 로직을 Renderless 컴포넌트에 넣으면 오히려 복잡해질 수 있다는 것입니다.

Higher-Order Component (HOC)는 기존 컴포넌트에 기능을 추가할 때 사용합니다. 인증이 필요한 컴포넌트에 인증 로직을 HOC로 감싸는 것이 대표적인 예시입니다. HOC를 사용할 때는 props 충돌이나 side effects 관리에 주의해야 합니다.

재귀 컴포넌트는 트리 구조 데이터를 렌더링할 때 효과적입니다. 댓글이나 파일 시스템을 시각화하는 데 사용할 수 있습니다. 재귀 호출이 무한 루프에 빠지지 않도록 탈출 조건을 명확하게 설정하는 것이 중요합니다.

각 패턴은 특정 상황에 최적화되어 있으며, 상황에 맞게 적절히 선택하는 것이 중요하다고 생각합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Vue.js / Nuxt 면접 질문

← Vue.js / Nuxt 면접 질문 전체 보기