티스토리 뷰

반응형

React 앱 구조 설계 Best Practice – Atomic Design 적용법


React 프로젝트가 커질수록 컴포넌트 재사용, 코드 유지보수성,
협업 생산성이 중요한 요소가 됩니다.
이때 유용한 설계 전략 중 하나가 바로 Atomic Design 패턴입니다.

이번 글에서는 Atomic Design의 개념부터,
React 프로젝트에 어떻게 적용할 수 있는지 실전 예제와 함께 정리합니다.


✅ 왜 앱 구조 설계가 중요할까?

  • 규모가 커질수록 유지보수가 힘들어짐
  • 컴포넌트 간 관계가 꼬이기 쉬움
  • 재사용성이 떨어지는 UI는 중복 코드와 버그를 유발

명확한 컴포넌트 계층 구조와 폴더 구조 설계는 생산성을 극대화합니다.


🔷 Atomic Design이란?

Brad Frost가 제안한 UI 설계 방법론으로,
UI를 작은 단위부터 점점 조합해가는 방식입니다.

구성 단계

  1. Atoms – 가장 작은 단위 (버튼, 라벨, 입력 등)
  2. Molecules – 원자들을 조합한 작은 컴포넌트 (입력 + 라벨 등)
  3. Organisms – 독립적인 섹션 구성 (카드, 네비게이션 등)
  4. Templates – 레이아웃 구조 (Header + Main + Footer)
  5. Pages – 실제 페이지에 데이터를 적용한 형태

🔸 예시

단계 예

Atom Button, Input, Label
Molecule SearchBar (Input + Button)
Organism Header, CardList
Template MainLayout, AuthLayout
Page /home, /login, /product/[id]

🗂 React 프로젝트 폴더 구조 예시

/src
  /components
    /atoms
      Button.jsx
      Input.jsx
    /molecules
      SearchBar.jsx
      FormField.jsx
    /organisms
      Header.jsx
      ProductList.jsx
  /layouts
    MainLayout.jsx
    AuthLayout.jsx
  /pages
    Home.jsx
    ProductDetail.jsx
  /hooks
    useFetch.js
  /contexts
    ThemeContext.js
  /utils
    formatDate.js

✅ 계층적으로 컴포넌트를 관리하므로,
✅ 협업 시 역할 분리가 명확하고,
✅ 테스트와 유지보수가 쉬움


🧱 컴포넌트 이름 짓는 팁

반응형

위치 이름 예시 역할

Atoms Button, Text, Badge 단순 스타일, 입력
Molecules FormField, SearchBar 조합된 입력 블록
Organisms CardList, Navbar, Footer 특정 섹션을 구성
Templates MainLayout, DashboardLayout 페이지 구조 설계
Pages HomePage, LoginPage 데이터 포함된 화면 단위

🔁 Atomic Design vs 일반 폴더 구조

항목 일반 구조 Atomic Design

접근 방식 기능 단위 (예: /Product/) 역할 단위 (예: /atoms, /organisms)
재사용성 낮음 높음
협업 중복 구성 우려 명확한 계층 분리
테스트 섞여 있음 단위 테스트 쉬움

✨ 실무 팁

  • atoms와 molecules는 UI 라이브러리처럼 만들어라
  • organisms부터는 비즈니스 로직이 포함될 수 있음
  • pages 폴더에서는 데이터 fetch + 컴포넌트 조립에 집중
  • hooks, contexts, utils는 계층 외 별도 분리

🧠 오늘의 요약

개념 설명

Atomic Design UI를 계층적으로 구성하는 설계 전략
Atoms → Pages 가장 작은 단위에서 페이지까지 구성
폴더 구조 설계 역할에 따라 디렉토리를 나눔
재사용성 구조화된 설계를 통해 반복을 줄임

🧪 실습 과제

  1. 기존 프로젝트의 /components 폴더를 atoms, molecules, organisms로 나눠보세요
  2. 공통 UI 요소는 atoms로 분리하고, 검색창 등은 molecules로 구성해보세요
  3. 전체 레이아웃은 MainLayout.jsx로 만들고, 각 페이지에서 래핑해보세요

📌 다음 글 예고

👉 React + React Router로 싱글 페이지 앱 만들기

  • SPA 라우팅 원리
  • 동적 라우트, 중첩 라우트 사용법
  • 레이아웃 기반 구조 설계

 

React 폴더 구조, Atomic Design 패턴, React 컴포넌트 설계, 컴포넌트 재사용성, React UI 아키텍처, React 컴포넌트 계층, atoms molecules organisms, React 프로젝트 구조, 컴포넌트 네이밍 전략, React 설계 베스트 프랙티스

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함
반응형