Presentational & Container 디자인 패턴은 React 애플리케이션을 구조화하는 데 사용되는 패턴으로, UI와 비즈니스 로직을 분리하여 더 깨끗하고 유지보수하기 쉬운 코드를 작성하는 데 도움을 줍니다. 이 패턴은 Dan Abramov에 의해 널리 알려졌습니다.
Presentational Components
Presentational 컴포넌트는 UI를 렌더링하는 데 집중하며, 주로 다음과 같은 특징을 가집니다:
예제:
const PresentationalComponent = ({ title, onClick }) => (
<div>
<h1>{title}</h1>
<button onClick={onClick}>Click me</button>
</div>
);
Container Components
Container 컴포넌트는 애플리케이션의 비즈니스 로직과 데이터 페칭을 담당하며, 주로 다음과 같은 특징을 가집니다:
예제:
import React, { useState } from 'react';
import PresentationalComponent from './PresentationalComponent';
const ContainerComponent = () => {
const [title, setTitle] = useState('Hello, World!');
const handleClick = () => {
setTitle('Button Clicked!');
};
return (
<PresentationalComponent title={title} onClick={handleClick} />
);
};
export default ContainerComponent;
장점
단점
결론
Presentational & Container 디자인 패턴은 대규모 애플리케이션에서 관심사의 분리를 통해 코드의 유지보수성과 재사용성을 높이는 데 유용합니다. 그러나 작은 프로젝트에서는 과도한 분리가 오히려 복잡성을 증가시킬 수 있으므로, 프로젝트의 규모와 복잡성에 맞게 적절히 활용하는 것이 중요합니다.
JavaScript만 사용하는 것과 비교해 TypeScript를 사용하는 이유 (0) | 2024.08.03 |
---|---|
코드잇 첫 프로젝트 회고 (0) | 2024.07.31 |
CSS-in-JS의 장점과 단점 (0) | 2024.07.13 |
PRODUCT ID별 상품 가져오기 / 코멘트 가져오기 / 코드 리뷰 (0) | 2024.07.09 |
웹 페이지 렌더링 방식: CSR, SSR, SSG 각각의 특징 (0) | 2024.07.05 |