컴포넌트 분리란, 하나의 거대한 컴포넌트를 여러 개의 작은 컴포넌트를 나누는 것을 의미한다.
재사용성 증가
: 명확한 컴포넌트는 다른 프로젝트나 기능에서도 쉽게 재사용이 가능하다.가독성 향상
: 작은 컴포넌트로 분리하면 각 컴포넌트 파일의 코드량이 줄어들고, 더 간결한 코드를 작성할 수 있다.유지보수 용이
: 반복적으로 사용되는 컴포넌트를 한 파일 또는 한 곳에서 관리함으로써, 유지보수가 용이하도록 한다.성능 최적화
: 특정 컴포넌트만 업데이트하게 함으로써 다른 컴포넌트들이 불필요하게 리렌더링되지 않도록 한다.테스트 용이
: 하나의 컴포넌트가 특정 로직에 집중하게 함으로써, 컴포넌트만 단위 테스트 할 수 있게 한다.하지만 이 두 기준 이외에도 컴포넌트를 분리할 때는 복잡도, 재사용성, 확장성을 함께 고려하여야 한다.
공용 컴포넌트란, 애플리케이션 전반에서 반복적으로 사용되는, 재사용성이 높은 컴포넌트를 의미한다. (버튼, input, 모달, 로딩 스피너 등)
공용 컴포넌트를 만들 때는, 범용적으로 재사용이 가능해야 하고, 특정한 기능이나 스타일에 종속적이지 않도록 해야 한다.
유틸 함수란, 애플리케이션 전반에서 반복적으로 사용되는 공통 기능을 수행하는 함수들을 말한다. (문자열 포맷팅, 데이터 정렬, 날짜 변환 등)
유틸 함수를 만들 때는, 재사용성을 고려하여 특정 컴포넌트나 특정 상황에 종속적이지 않도록 해야 한다.
UI와 비즈니스 로직을 분리하는 패턴.
하나의 부모 컴포넌트가 여러 하위 컴포넌트를 포함하여 상호작용 할 수 있는 여러 컴포넌트를 하나의 단위로 구성하는 방식.
부모 컴포넌트는 전체적인 상태와 동작을 관리하고, 자식 컴포넌트들은 특정 UI 요소나 기능을 담당한다. 부모 컴포넌트를 통해 자식 컴포넌트의 상태나 동작을 제어하므로, 복잡한 UI를 유연하게 구성할 수 있다.
시스템을 작은 단위의 구성 요소부터 시작하여 점진적으로 더 복잡한 UI를 구성하는 방법론.
아토믹 디자인은 컴포넌트를 원자(Atoms)
, 분자(Molecules)
, 유기체(Organisms)
, 템플릿(Templates)
, 페이지(Pages)
로 분류하여 시스템화하는 디자인 방법론
디자인 시스템은 일관된 사용자 경험과 디자인을 제공하기 위해 사용되는 가이드라인, 컴포넌트, 패턴의 집합
디자인 시스템 사용의 장점