본문 바로가기
framework_library/vue

Vue.js란 무엇인가 – 점진적 프레임워크로 시작하는 프론트엔드 개발 | MMVM패턴

by 죄니안죄니 2025. 4. 8.

들어가며

Vue.js는 가볍고 배우기 쉬우면서도, 필요에 따라 강력한 기능 확장이 가능한 프로그레시브(점진적) 프레임워크입니다.
React나 Angular와 같은 대형 프레임워크와는 달리, Vue는 “작게 시작해서 크게 성장할 수 있는” 구조를 가지고 있어 입문자부터 실무 개발자까지 폭넓게 사랑받는 기술입니다.

이 글에서는 Vue.js가 무엇인지, 어떤 철학을 가지고 설계되었는지, 그리고 왜 많은 프론트엔드 개발자들이 Vue를 선택하는지에 대해 소개하면서 Vue 카테고리의 첫 시작을 열어보겠습니다.


Vue.js란?

Vue.js는 Evan You가 개발한 MVVM 패턴 기반의 프론트엔드 프레임워크입니다.
디자인과 데이터 바인딩을 쉽게 연결하고, DOM 조작 없이 선언적으로 UI를 설계할 수 있도록 돕는 것이 핵심 목적입니다.

주요 특징

  • 컴포넌트 기반 구조: UI를 독립된 블록 단위로 나누어 재사용성 극대화
  • 양방향 데이터 바인딩: v-model을 통한 입력값 연동 처리
  • 반응형(Reactive) 시스템: 데이터가 변하면 자동으로 DOM 갱신
  • 템플릿 문법: HTML 기반 문법으로 직관적인 구조 설계
  • 점진적 적용 가능: 필요한 기능만 선택해 사용 가능

MVVM = Model - View - ViewModel 

 

구성 요소 역할 Vue.js 기준 예시
Model 순수 데이터, 비즈니스 로직 API 응답, Vuex 상태, DB에서 온 DTO
View 실제 화면, 사용자와의 인터페이스 .vue 파일의 template 영역
ViewModel View와 Model의 중간 계층 (데이터 가공, 상태 관리) Vue의 script setup, computed, methods, watch, ref 등
[Model]
 - 서버에서 가져온 데이터
 - 또는 Vuex/Pinia 상태

    ↓ (바인딩)

[ViewModel]
 - script 영역에서 computed로 가공
 - methods로 이벤트 처리
 - ref, reactive로 상태 저장

    ↓ (양방향 바인딩 v-model)

[View]
 - 사용자에게 보여지는 HTML (template)
 - v-if, v-for, v-bind, v-on 등으로 표현
 

Vue의 설계 철학

Vue는 “점진적 프레임워크(Progressive Framework)”라는 키워드를 중심으로 설계되었습니다.
즉, 간단한 스크립트 태그 하나로 Vue를 도입할 수도 있고, Vue CLI로 대규모 SPA를 구축할 수도 있습니다.

  • 필요한 만큼만 사용: 필수 기능만 도입해서 가볍게 시작
  • 확장 가능한 생태계: Vue Router, Pinia, Vuex, Vue Test Utils 등과 연동
  • 타입스크립트와의 호환성도 점차 강화됨

Vue의 주요 구성 요소

1. 템플릿 (Template)

  • HTML과 유사한 형식으로 UI 작성
  • {{ message }} 같은 Mustache 문법 사용

2. 컴포넌트 (Component)

  • Single File Component (.vue) 형식으로 구조화
  • props, emits, setup() 등을 활용한 모듈화

3. 반응형 상태 (Reactivity)

  • ref(), reactive()를 통한 데이터 바인딩
  • Composition API를 통해 코드 구조 유연화

4. 라우팅과 상태관리

  • vue-router: 페이지 전환 및 SPA 구현
  • pinia(또는 기존 Vuex): 글로벌 상태 관리

Vue의 장점과 단점

장점
단점
배우기 쉬운 문법 복잡한 상태 관리 구조는 학습 필요
문서화가 매우 잘 되어 있음 대규모 프로젝트에선 설계 기준 필요
템플릿 기반의 직관적인 구성 React에 비해 생태계 규모는 작음
점진적 도입 가능 자유도가 높아 코드 스타일 차이 발생 가능

실무에서 Vue를 사용하는 이유

  • 사내 ERP/관리 시스템 등에서 빠른 개발 가능
  • UI 중심의 데이터 시각화/제어 시스템에 강함
  • 컴포넌트화된 UI 설계로 코드 재사용성 확보
  • Nuxt.js를 활용한 SSR/정적 사이트 생성 가능

👉 nuxt.js 란 ? | https://jobreview.tistory.com/143



 

마치며 – 앞으로 다룰 Vue.js 주제들

Vue.js는 “쉽게 시작할 수 있지만, 깊이 있는 설계도 가능한” 훌륭한 프론트엔드 프레임워크입니다.
이 블로그에서는 다음과 같은 Vue 관련 주제를 다룰 예정입니다:

  • Vue CLI/ Vite로 프로젝트 시작하기 (프로젝트 세팅)
  • 컴포지션 API vs 옵션 API 비교
  • 컴포넌트 설계 및 props/emits 패턴 이해
  • vue-router와 동적 라우팅 구성
  • Pinia 상태 관리 구조 이해 및 적용
  • Axios를 통한 API 통신 실전 예시 ( Vue + Axios 구조 정리)

초보자와 실무자 모두를 위한 Vue 실전 노트를 이 블로그에 담아보겠습니다.
Vue의 세계에 함께 발을 디뎌보시죠!


📌 
다음 글 미리보기
👉 Vue Composition API 완전 정리 초안 작성  

📚 Vue 시리즈 전체 보기
👉 https://jobreview.tistory.com/category/framework_library/vue

 

댓글