웹 프로그래밍/Vue.js

웹 애플리케이션과 Vue.js

0_TLS 2024. 12. 10. 21:18

Vue.js 프레임워크

-Component

-Directive

-Router

-Vuex

 

1. 프론트엔드 웹 애플리케이션

-서버 사이드의 도움을 받지 않고도 스스로 무언가를 해결하고 제공할 수 있는 서비스를 가진 웹

-서버 사이드와 적절하게 연동하면서 기존에 서버 사이드에서 결정했던 많은 기능적인 측면이 클라이언트 사이드에서 구현되는 웹

-CS프로그램 환경처럼 독립적인 클라이언트 사이드앱인데 단지 실행환경이 웹으로 개발

 

클라이언트 사이드 = 브라우저

예전에는 클라이언트 사이드에서 서버에 요청한 다음에 클라이언트가 요청한 업무가 진행되어야 하는데 그 비즈니스 업무 로직이 대부분 서버사이드에서 수행되고, 그 업무 로직에 의해 발생한 데이터를 어느 화면에 준비해서 어디에 찍을건지도 모두 서버사이드에서 결정해서 클라이언트에게 넘겨줌. 클라이언트는 서버사이드가 넘겨준 것을 단순히 자신의 브라우저에 뿌려주는(렌더)역할만 했음

 

=> 시간이 지나면서 웹이 웹 애플리케이션으로 진화되니까 클라이언트 사이드도

서버사이드 결과를 렌더링하는것에 머물지 않고 애플리케이션적인 역할을 하게 됨.

=>과거에는 서버사이드에서 데이터의 위치가 결정되었는데 이를 클라이언트 사이드에서 하게 됨.

=>서버사이드의 도움을 받지 않고 데이터를 자체적으로 저장하는 기법

 

애플리케이션이다 = 브라우저에서 수행되는 것이긴 하지만 클라이언트 사이드 애플리케이션이 서버 사이드 애플리케이션과 적절히 네트워킹하면서 서비스를 제공해준다.

클라이언트 사이드 애플리케이션 = 프론트엔드 웹 애플리케이션

서버사이드 애플리케이션 = 백엔드 웹 애플리케이션

 

 

-화면만 화려한 클라이언트 사이드가 아닌 일정 정도는 애플리케이션 기능이 가능한 클라이언트 사이드 웹 애플리케이션의 요구가 발생 

 

3. 프론트엔드 웹 애플리케이션 기술 요소

 

4. HTML5와 자바스크립트 프레임워크

HTML5 적용 : 애플리케이션으로서의 다양한 기능 구현 필요

자바스크립트 프레임워크 적용 : 애플리케이션의 Base Architecture 필요

(더 이상 렌더가 아니고 애플리케이션이기 때문에 프레임워크 적용을 원함)

 

5. HTML5 기술 요소

  • web socket : 연결 지향형 socket 통신
  • web storage : 데이터 영속적 저장
  • index db : 데이터 영속적 저장
  • canvas : Graphic 요소
  • audio, video : Multimedia 데이터 처리
  • Responsive Web Design : 다양한 사이즈의 Device를 위한 Design

6. 자바스크립트 프레임워크

Angular

React.js

Vue.js

자바스크립트 프레임워크에는 다양한 종류가 있고, 목적이 비슷함


자바스크립트 프레임워크

: 자바스크립트를 이용한 웹 애플리케이션의 기본 Architecture 제공을 목적으로 함.

 

-UI Component 제공 : 동적 재사용 가능한 UI Widget

-Router : Hash Control과 이를 통한 SPA 구현

-State Management Framework : 앱의 상태 정보를 유지 프레임워크

 

AngularJS

-MVM Pattern(Model-View-Whatever)

model: 비지니스 업무 로직에 비즈니스 데이터를 표현하는 것

 

 

하나의 페이지에 자바스크립트 영역이 있고 HTML태그 영역(DOM)이 있음

자바스크립트가 서버랑 연동하여 데이터 발생 -> 이 데이터는 DOM에 찍혀야 함.

또 DOM에서 데이터 발생 -> 유저가 입력한 데이터가 업무 로직상 이용되려면 자바스크립트에 대입되어야 함.

 

Two-Way Data Binding
자바스크립트의 데이터 -> DOM에 대입
DOM의 데이터 -> 자바스크립트에 대입

 

Angular 2.0 발표 : 아키텍처적으로 단순화

AngularJS -> Angular

 

목적

-for web

-mobile web

-native mobile : 브라우저에서 수행되는 웹 애플리케이션이 아니라 그냥 모바일 기기에서 수행되는안드로이드 IOS 애플리케이션을 만들겠다는 목적. 

-native desktop

 

React.js

:facebook의 view부분을 위한 컴포넌트 라이브러리

-UI Component

-VIRTUAL DOM

-Unidirectional Data Flow

-JSX

 

Redux 

(vuex도 사실은 Redux부터 시작했던 것을 지원해주기 위해서 나온 것)

Isomorphic JavaScript

React Native

 

Vue.js

Vue.js 특징 

-'Evan you'에 의해 개발

-웹 UI를 빠르게 작성하기 위한 목적

 

 

 

-가상 DOM 지원

-Router

-Vuex

 

 

'웹 프로그래밍 > Vue.js' 카테고리의 다른 글

ES2015 - Class와 생성자  (1) 2024.12.23
ES2015 기본 문법  (0) 2024.12.13
ES2015  (1) 2024.12.11
Vue.js 개발환경  (0) 2024.12.11