text: # 애플리케이션 구조
  
  실제로 Vuex는 코드 구조를 제한하지는 않습니다. 이보다 아래에 있는 상위 수준 원칙을 강요합니다.
  
  1. 애플리케이션 레벨의 상태는 중앙 집중된 저장소 입니다.
  
  2. 상태를 변경시키는 유일한 방법은 동기 트랜잭션인 **변이** 를 커밋하는 것입니다.
  
  3. 비동기식 로직은 캡슐화되어야하며 **액션** 으로 구성 됩니다.
  
  
  이 규칙을 따른다면 프로젝트를 구조화하는 것은 사용자에게 달려 있습니다. 저장소 파일이 너무 커지면 액션, 돌연변이 및 getter를 개별 파일로 분할하기만 하면됩니다.
  
  중요한 앱의 경우 모듈을 활용해야 할 가능성이 높습니다. 다음은 프로젝트 구조의 예입니다.
  
  ``` bash
  ├── index.html
  ├── main.js
  ├── api
  │   └── ... # API 요청을 위한 추상화를 포함합니다.
  ├── components
  │   ├── App.vue
  │   └── ...
  └── store
      ├── index.js          # 모듈을 조합하고 저장소를 내보내는 곳 입니다.
      ├── actions.js        # 루트 액션
      ├── mutations.js      # 루트 변이
      └── modules
          ├── cart.js       # cart 모듈
          └── products.js   # products 모듈
  ```
  
  참고 사항으로, [장바구니 예](https://github.com/vuejs/vuex/tree/dev/examples/shopping-cart)를 확인하십시오.
  