SlideShare a Scribd company logo
1 of 26
Vue.js와 Firebase를 활용
한
웹 서비스 개발
프론트엔드개발팀 김인숙
“약 팔러 나왔습니다.”
JavaScript Framework 3대장
Vue.js
“The Progressive JavaScript Framework”
/vjuː /
Hello, Vue!
Vue.js와 다른 언어와 관계
• 가상 DOM
• 반응적이고 조합가능한
컴포넌트
• 코어 라이브러리에만 집중
• 라우팅 및 전역상태를 관리하는
컴패니언 라이브러리
Vue.js를 선택한 이유
• 학습곡선이 낮음.
• 유연함.
• 가벼움.
• 한국어 가이드 문서가 잘 되어 있음.
템플릿 문법
• HTML 기반 템플릿 구문 사용
• 데이터 바인딩의 기본 형태는 {{ }} 을 사용한 텍스트
보간
• 디렉티브: v- 접두사 사용
단일 파일 컴포넌트
Vue.js 설치하기
1. 직접 <script> 에 추가
2. npm 으로 설치하기
3. Vue-cli
4. Bower
Vue-cli
$ npm install -g vue-cli
$ vue init webpack my-project
$ cd my-project
$ npm install
$ npm run dev
Vue-cli
Vue-cli
Firebase
Firebase에서 사용할 자원
• 실시간 데이터베이스
• 배포
• SSL이 적용 된 도메인
개발 프로세스
1. Firebase 셋팅
2. Vue-cli 프로젝트 셋팅
3. 프로젝트에 필요한 라이브러리 추가
4. Firebase 연결
5. 입출력 구현
6. 빌드
7. 배포
필요한 라이브러리 추가
• VueFire
• Firebase cli
$ npm install firebase vuefire —-save
$ npm install -g firebase-tools
$ firebase login
$ firebase init
$ firebase deploy
필요한 라이브러리 추가
• Bootstrap
• JQuery
• Toastr Library
build
deploy
Show me the Code
Vue.js IE8 이하 지원
“Vue.js는 IE9부터 지원합니다.”
멀리 가기 위해 함께 하실래요?
References
• Vue.js 공식 한국어 가이드 문서
• Vue.js 한국어 사용자 모임
• 2016년의 Vue
• Tour of Vue.js
• The Majesty of Vue.js 2
• A Vue over React
• Vue.js Is Good, But Is It Better Than Angular Or React?
• Vue.js 2 & Firebase
References
• Getting started with Vue.js: AngularJS perspective
• Evan You 인터뷰
• Why Vue2 beats Angular2 and React
• React or Vue: Which Javascript UI Library Should You
Be Using?
• Why We Choose Vue.js
• Firebase 문서
Q&A
kis@gabia.com

More Related Content

What's hot

What's hot (20)

이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
 
PHP로 웹개발을 해보자
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
 
iOS9 소개
iOS9 소개iOS9 소개
iOS9 소개
 
[Td 2015]asp.net 5 깊게 파고들기(박용준)
[Td 2015]asp.net 5 깊게 파고들기(박용준)[Td 2015]asp.net 5 깊게 파고들기(박용준)
[Td 2015]asp.net 5 깊게 파고들기(박용준)
 
Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)
 
Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리
 
ALB+EC2 to API gateway + Lambda
ALB+EC2 to API gateway + LambdaALB+EC2 to API gateway + Lambda
ALB+EC2 to API gateway + Lambda
 
WebAssembly 101
WebAssembly 101WebAssembly 101
WebAssembly 101
 
왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
Project TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeProject TIMAT - infrastructure as code
Project TIMAT - infrastructure as code
 
Firebase for web (웹개발을 위한 파이어베이스) 4 Storage
Firebase for web (웹개발을 위한 파이어베이스) 4 StorageFirebase for web (웹개발을 위한 파이어베이스) 4 Storage
Firebase for web (웹개발을 위한 파이어베이스) 4 Storage
 

Viewers also liked

Viewers also liked (7)

RokSeoul
RokSeoulRokSeoul
RokSeoul
 
Modern Android App Development
Modern Android App DevelopmentModern Android App Development
Modern Android App Development
 
리눅스를 이용한 Nas만들기
리눅스를 이용한 Nas만들기리눅스를 이용한 Nas만들기
리눅스를 이용한 Nas만들기
 
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
 
Abcd 2016 firebase
Abcd 2016 firebaseAbcd 2016 firebase
Abcd 2016 firebase
 
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase로 레고블럭 조립하기 - IO Extended 2016Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
 
Firebase for web (웹개발을 위한 파이어베이스) 2 Authentication
Firebase for web (웹개발을 위한 파이어베이스) 2 AuthenticationFirebase for web (웹개발을 위한 파이어베이스) 2 Authentication
Firebase for web (웹개발을 위한 파이어베이스) 2 Authentication
 

Similar to Vue.js와 Firebase를 활용한 웹 서비스 개발

JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
Tai Hoon KIM
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
NAVER D2
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
draghome
 
Node.js를 이용한 수업관리 시스템(Lecture System using Node.js)
Node.js를 이용한 수업관리 시스템(Lecture System using Node.js) Node.js를 이용한 수업관리 시스템(Lecture System using Node.js)
Node.js를 이용한 수업관리 시스템(Lecture System using Node.js)
은지 박
 

Similar to Vue.js와 Firebase를 활용한 웹 서비스 개발 (20)

Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교
 
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
DevOps Study
DevOps StudyDevOps Study
DevOps Study
 
Node.js를 이용한 수업관리 시스템(Lecture System using Node.js)
Node.js를 이용한 수업관리 시스템(Lecture System using Node.js) Node.js를 이용한 수업관리 시스템(Lecture System using Node.js)
Node.js를 이용한 수업관리 시스템(Lecture System using Node.js)
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER
 
Memong
MemongMemong
Memong
 
자기 일은 스스로 하자
자기 일은 스스로 하자자기 일은 스스로 하자
자기 일은 스스로 하자
 
regular.express 발표자료
regular.express 발표자료regular.express 발표자료
regular.express 발표자료
 
Maven의 이해
Maven의 이해Maven의 이해
Maven의 이해
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
hexa core
hexa corehexa core
hexa core
 

Vue.js와 Firebase를 활용한 웹 서비스 개발

Editor's Notes

  1. 안녕하세요 프론트엔드개발팀 김인숙입니다. 저는 오늘 Vue.js와 Firebase를 활용하여 웹 서비스를 개발했던 경험을 공유하고자 합니다. 맛보기 정도라고 생각해주세요.
  2. 오늘의 약은 Vue.js와 Firebase입니다. 저는 백엔드를 잘 알지 못합니다. 물론 자바스크립트 레벨도 게임으로 치면 이제 막 튜토리얼 단계를 시작하고 있는 Lv.1 입니다. 쪼렙이죠. 이런 쪼렙인 저도 Vue.js와 Firebase만 있으면 제대로 된 웹 서비스를 하나 만들 수 있습니다. 일단 오늘은 뷰에 대한 안면 익히기 정도로…시작하겠습니다.
  3. 최근 자바스크립트 프레임워크는 앵귤러, 리액트, 뷰 이렇게 3가지가 많이 쓰이고 있습니다. 3대장이죠. 깊게는 아니지만 위의 3가지를 조금씩 접해보았습니다. 뷰는 2016년을 기점으로 급격히 성장합니다. 그래서 뷰가 2016년에 새로 나왔다고 생각할 수 있는데요. 
  4. 뷰는 2013년에 Evan you에 의해 만들어졌습니다. AngularJS와 Backbone에서 영감을 얻어 만들었다고 합니다. 진보한 자바스크립트 프레임워크라는 슬로건을 걸고 있습니다.  뷰는 MVVC 패턴에서 ViewModel 만 다루고 있습니다. 이름 자체도 View와 발음이 같습니다. 그러므로 다른 라이브러리나 기존 프로젝트와 결합이 쉽습니다.
  5. 만약 앵귤러나 리액트를 접해보셨다면 뷰는 매우 쉽게 사용하실 수 있습니다. 뷰는 다른 두 언어의 영향을 많이 받았기 때문에 유사한 부분이 많습니다. 리액트와의 관계를 보면 가상 DOM을 활용합니다. 반응적이고 조합가능한 컴포넌트를 제공하며, 뷰만 있기에 코어라이브러리에만 집중합니다. 그래서 다른 라우팅이나 전역상태를 관리하는 부분은 컴패니언 라이브러리가 존재합니다.
  6. 제가 뷰를 선택한 이유는 다음과 같습니다. 특히 한국어 가이드 문서가 잘 되어 있어 학습곡선이 낮다는 점입니다. 물론 앵귤러도 앵귤러 사용자 그룹에서 번역이 진행중입니다. 유연함은 템플릿 상에서 JSX도 사용가능하고 타입스크립트도 사용이 가능하다는 점입니다. 뷰모델만 있으므로 당연히 가벼울 수 밖에 없습니다.
  7. 템플릿 부분을 보면 앵귤러와 상당히 유사하다는 느낌을 받으실 수 있습니다. 바로 이중 중괄호와 디렉티브가 있다는 점이죠.
  8. 전 뷰에서 이 부분이 가장 매력적인 부분이였습니다. 컴포넌트 안에서 HTML, CSS, JS 가 *.vue 확장자 파일로 묶여지는 부분이였습니다. 그리고 이 내부에 컴포넌트에 대한 데이터와 메서드가 존재합니다. 데이터와 메서드를 통해 컴포넌트를 제어할 수 있습니다. 각각을 블럭이라고 부르는데 template에는 html뿐만 아니라 Pug, handlebar같은 템플릿이 올수도 있습니다. style에는 css, less, sass 등을 사용할 수 있고, 스크립트에는 자바스크립트 뿐만 아니라 타입스크립트 커피스크립트를 사용할 수 있습니다. 구조, 표현, 동작의 구분이 마치 프론트엔드개발에서 마크업 작업 결과물과 비슷하다는 느낌을 받았습니다. 이 컴포넌트들이 결합해서
  9. 개발용 버전을 다운받아서 추가하거나(Vue는 전역변수가 됨), npm 으로 설치합니다. 대규모 응용 프로그램을 빌드할 때 권장합니다. Vue-cli는 webpack 기반이며, 쉽고 빠르게 개발 환경을 구성해줍니다. Bower를 통해 설치하는 방법이 있으나 npm으로 의존성을 관리하는것이 더 좋습니다. bower_component라는 별도의 폴더가 생성되며, 이것을 서버에 올려야 하는 귀찮음이 있습니다.
  10. cli 방식의 설치는 블라블라… (여기까지 7분 이내)
  11. 지난 주에 이미 발표가 있었으므로 상세한 설명은 생락하겠습니다.
  12. 제가 이 시간에 Firebase를 활용하는 부분은 실시간 데이터베이스와 배포, 도메인 3가지 입니다. (여기까지 3분)
  13. firebase serve public…
  14. …그리고 도메인 셋팅까지.
  15. 바이두에서 만든 echart는 낮은 IE버전을 지원하지만 뷰는 그렇지 않습니다. ES5 사실 IE8 지원을 하면 참~ 좋겠지만 지원을 하기 위해 드는 노력대비 효과가 그리 좋지 않은 느낌입니다…떱.
  16. (여기까지 나머지 전부) 아프리카 속담에 이런 말이 있습니다. 가까이 가려면 혼자가고 멀리 가려면 함께 가라. 전 Vue.js 를 깊게 파고 싶은데 혹시 관심이 있으시다면 함께 스터디하면 좋을듯합니다.