프론트엔드 개발, 모듈유닛으로 효율 UP!

by DD
4개월 전
조회수 56

모듈유닛(Module Unit)은 신세계백화점 PC 메인 React 전환 과정에서 도입된, 페이지를 구성하는 최소 UI 구성 요소를 의미함

유닛 타입(Unit Type)과 데이터를 API로 받아와 UI를 구성하며, 유지보수성(Maintainability) 향상을 목표로 함

공통 컴포넌트(Common Component) 사용으로 변경 사항을 일괄 적용하여 개발 생산성(Development Productivity) 증대를 기대함

모듈유닛 아키텍처(Architecture)의 기본 원리

모듈유닛은 페이지를 구성하는 독립적인 UI 블록(Independent UI Block)으로, 재사용성(Reusability)과 유지보수성(Maintainability)을 높이는 데 기여한다. 각 모듈유닛은 고유한 unitType을 가지며, API 응답 데이터를 기반으로 렌더링된다.

단일 책임 원칙(Single Responsibility Principle): 각 모듈유닛은 하나의 기능에 집중하여 코드의 가독성(Readability) 및 유지보수성(Maintainability) 향상

컴포넌트 기반 개발(Component-Based Development): UI를 작은 단위로 쪼개어 관리함으로써, 변경 사항의 영향 범위를 최소화하고 개발 효율을 높임

데이터 중심 설계(Data-Driven Design): UI는 API에서 제공하는 데이터에 의존하므로, 데이터 구조 변경 시 UI 업데이트 용이

모듈유닛의 장점: 유지보수성(Maintainability) 향상

모듈유닛 아키텍처(Architecture)는 유지보수(Maintenance) 편의성을 극대화한다. 상품 가격 표시 방식 변경과 같은 요구사항 발생 시, 해당 기능을 담당하는 가격 컴포넌트(Price Component)만 수정하면 된다.

일괄 적용(Batch Application): 가격 컴포넌트를 사용하는 모든 상품유닛에 변경 사항이 자동으로 반영되어 수정 시간 단축

영향 최소화(Impact Minimization): 특정 페이지가 아닌, 공통 컴포넌트 수정으로 인해 변경 범위를 명확하게 관리

SSG7CLUB 멤버십 적립금 표기 기능 추가 사례: 상품유닛의 가격 영역에 적립금 표기 기능을 추가하여 개발 생산성(Development Productivity) 향상

결과적으로, 모듈유닛은 코드 변경의 파급 효과를 줄여 개발 효율성(Development Efficiency)을 높이는 데 기여한다.

모듈유닛 도입 시 고려사항

모듈유닛은 여러 페이지와 매장에서 공통으로 사용되므로, 변경 사항이 광범위한 영향(Wide Impact)을 미칠 수 있다. 따라서, 기획 단계에서부터 충분한 검토(Thorough Review)가 필요하다.

기획 리뷰(Planning Review): 변경 사항이 기존 모듈유닛 정책을 위반하지 않는지, 구조적 변경으로 인한 공수 증가는 없는지 확인

공통 정책(Common Policy): 공통으로 사용되는 모듈유닛의 경우, 변경 사항이 다른 매장이나 화면에도 동일하게 반영됨을 인지

책임 분담(Responsibility Sharing): 모듈유닛 기반 구조는 변경을 쉽게 만들지만, 변경의 영향 범위에 대한 책임(Responsibility)을 명확히 해야 함

결론적으로, 모듈유닛은 개발 효율성을 높이지만, 변경의 영향 범위를 고려하여 신중한 설계(Careful Design)가 필요하다.

페이지를 이루는 최소 기능 블록, 모듈유닛