Vue, Vuex, VueCLI, Nuxt.js란?

문철환·2024년 3월 30일
post-thumbnail

Vue.js의 특징과 사용사례

  • 간결한 문법
    • 간결하고 직관적인 문법을 가지고 있습니다.
    • HTML, JavaScript, CSS를 기반으로 한 선언적인 문법을 사용하여 쉽게 이해하고 구현할 수 있습니다.
  • 컴포넌트 기반 구조
    • Vue.js는 컴포넌트 기반의 아키텍처를 채택.
    • 애플리케이션을 작은 단위로 나누어 재사용성을 증가시키고 유지보수를 용이하게 만듭니다.
  • 반응성(Reactivity)
    • 데이터의 변경에 반응하여 자동으로 화면을 업데이트할 수 있는 반응성 시스템을 제공합니다.
    • 양방향 데이터 바인딩을 통해 효율적인 상태 관리를 가능하게합니다.
  • 유연한 라우팅
    • Vue Router를 사용하여 애플리케이션의 라우팅을 쉽게 구현할 수 있습니다. 라우팅을 통해 여러 페이지 간의 이동 및 상태관리가 가능합니다.
  • 상태 관리
    • Vuex라는 상태 관리 라이브러리를 제공하여 중대형 애플리케이션에서의 상태 관리를 효율적으로 할 수 있습니다.
  • 생태계
    • Vue.js는 다양한 플러그인과 라이브러리들이 있는 생태계를 가지고 있어, 다양한 요구사항에 대응할 수 있습니다.

Vue.js는 Vue CLI와 함께 사용되어 프로젝트 구조를 설정하고 개발 서버를 실행하는 등의 기능을 제공합니다.


Vuex와 Vue CLI에 대해 알아보겠습니다.

Vuex

  • Vue.js 애플리케이션에서 상태 관리를 위한 라이브러리입니다.
  • 애플리케이션의 상태를 중앙에서 관리하고 컴포넌트 간의 통신을 효율적으로 하기 위해 사요용됩니다.
  • 대규모 애플리케이션 또는 상태가 복잡한 애플리케이션에서 유용합니다.

주요 특징 및 개념

  • 상태(State)
    • 애플리케이션의 상태를 단일 스토어에 저장합니다.
    • 이 스토어는 애플리케이션의 모든 컴포넌트에서 접근 가능하며 중앙에서 관리됩니다.
  • 뮤테이션(Mutation)
    • 상태를 변경하는 유일한 방법으로, 뮤테이션을 통해 상태를 동기적으로 변경할 수 있습니다.
    • 뮤테이션은 변이를 추적하고 디버깅하기 쉽도록 기록됩니다.
  • 액션(Action)
    • 비동기적인 작업이나 여러 뮤테이션들을 연속적으로 호출하는 작업을 수행할 때 사용됩니다.
    • 액션은 뮤테이션을 커밋하는 역할을 하며, 비동기 로직이나 비지역적인 상태 변경에 적합합니다.
  • 게터(Getter)
    • 스토어의 상태를 가져오거나 계산된 값을 반환하는데 사용됩니다.
    • 게터는 컴포넌트에서 스토어의 상태를 읽을 때 유용합니다.
  • 모듈(Modules)
    • 큰 규모의 애플리케이션에서 코드의 구조를 단순화하기 위해 모듈을 사용할 수 있습니다.
    • 모듈은 각자의 상태, 뮤테이션, 액션, 게터를 가지며, 하나의 스토어에 여러 모듈을 포함할 수 있습니다.

VueCLI

  • 뷰 코어 인터페이스
  • Vue.js 프로젝트를 구성하고 개발할 수 있도록 도와주는 커맨드 라인 인터페이스
  • 프로젝트의 초기 설정부터 빌드, 테스트, 배포까지 다양한 작업을 지원하며, 프로젝트를 효율적으로 관리

주요기능

  • 프로젝트 생성 및 설정
    • vue create 새로운 프로젝트 생성, 초기설정
  • 개발 서버 제공
    • vue serve 명령으로 로컬 개발 서버를 시작하여 실시간으로 변경 사항을 확인할 수 있습니다.
  • 빌드 및 번들링
    • vue build 명령으로 프로덕션 빌드를 생성하고 번들링할 수 있습니다.
  • 플러그인 관리
    • Vue CLI를 확장하기 위한 플러그인을 추가하거나 삭제할 수 있습니다.
  • ESLint 및 Prettier 지원
    • 코드 스타일 및 품질을 유지하기 위한 ESLint, Prettier 설정이 내장되어 있습니다.
  • 테스트 및 배포
    • 유닛 테스트와 E2E(End-to-End) 테스트를 실행하고, 배포를 위한 설정을 제공합니다.

Nuxt.js

  • Vue.js 기반의 프레임워크
  • Nuxt.js는 Vue.js의 생태계를 기반으로 하여 서버 사이드 렌더링, 정적 사이트 생성, 라우팅, 미들웨어, 상태 관리 등의 기능을 제공합니다.

주요 기능과 특징

  • 서버 사이드 렌더링(SSR)
    • 초기 로딩 속도를 개선하고 검색 엔진 최적화를 강화할 수 있습니다.
  • 정적 사이트 생성(SSG)
    • 페이지를 미리 렌더링하여 정적인 HTML파일을 생성하는 정적 사이트를 지원합니다.
    • 이를 통해 CDN(Content Delivery Nextwork)를 활용하여 성능을 최적화할 수 있습니다.
      • CDN은 전 세계에 분산된 서버 네트워크를 활용하여 콘텐츠를 효율적으로 제공하는 서비스.
      • 로드 밸런싱을 수행하여 서버의 부하를 분산시키고 대규모 트래픽을 처리할 수 있습니다.
      • CDN은 콘텐츠를 전 세계의 서버에서 캐싱하여 사용자들이 요청할 때 로컬 서버에서 콘텐츠를 제공합니다. 이를 통해 콘텐츠의 로딩 시간을 줄이고 대역폭을 절약할 수 있습니다.
  • 인티그레이티드 라우팅
    • 파일 시스템 기반의 라우팅 설정을 제공하여 라우팅을 쉽게 구현할 수 있습니다.
    • 페이지의 구조를 기반으로 동적인 라우팅을 자동으로 처리합니다.
  • 미들웨어
    • 서버와 클라이언트에서 실행되는 미들웨어를 정의할 수 있습니다.
    • 요청 처리 전에 특정한 작업을 수행하거나 페이지 렌더링 전에 데이터를 가공하는 등 다양한 용도로 활용됩니다.
  • 자동 코드 분할
    • 페이지 단위로 코드를 분할하여 필요한 코드만 클라이언트에 전달하게 되어 초기 로딩 시간을 최적화할 수 있습니다.
  • 상태관리
    • Vue.js의 Vues를 기반으로 한 상태 관리를 지원합니다.
    • 서버 사이드 렌더링 시에도 일관된 상태를 유지할 수 있습니다.
  • 플러그인 시스템
    • 플러그인을 손쉽게 추가하고 관리할 수 있는 플러그인 시스템이 있습니다.
  • ESLint 및 Prettier 지원
  • 프로젝트 생성하는 방법
    • npm install -g create-nuxt-app
    • create-nuxt-app 프로젝트이름
    • 설정 옵션 선택
    • cd 프로젝트이름
    • npm install
profile
밝고 빛나게

0개의 댓글