SlideShare a Scribd company logo
원모먼트 Vue.js 도입기
레거시와의 전쟁
목차
1. 원모먼트 소개
2. Vue.js 소개
3. 레거시와의 전쟁
4. 오픈소스를 만들어보자
https://github.com/KimWooHyun
김우현
2016.01 - 현재 ONE MOMENT (Web & Swift Developer)
2015.01 - 2016.01 ATEAM VENTURES (Web Developer)
Tech : Vue.js, Django, Swift
2015 미림여자정보과학고등학교(미림 마이스터고) 졸업
원모먼트란?
온라인 당일 꽃배달 서비스
원모먼트
Vue.js
- /vjuː/ 로 발음, view 와 발음이 같다.
- 사용자 인터페이스를 만들기 위한 진
보적인 프레임워크
- React 와 Angular와 같이 화두 되고
있는 떠오르는 웹 프레임워크
Vue.js
1. 단일 컴포넌트
template + script + style
= .vue
장점
2. 낮은 러닝커브
하루 만에 문서 정독하고
다음날 바로 실무에 적용
장점
3. 한국어 문서 https://kr.vuejs.org/v2/guide/
장점
4. 친절한 커뮤니티 https://vuejs-korea.signup.team/
장점
* Vue는 ECMAScript 5 기능을 사용하기 때문에 IE8 이하 버전을 지원하
지 않습니다. 하지만 모든 ECMAScript 5 호환 브라우저를 지원합니다.
1. 직접 <script>에 추가

- CDN 제공

https://unpkg.com/vue@2.4.2
2. Npm

- npm install vue
3. CLI

- 스캐폴딩하기 위한 공식 CLI 제공
사용하기
* 스캐폴딩(Scaffolding)이란?

- 프로젝트 구조를 미리 템플릿 형태로 정의한 것
* CLI
# vue-cli 설치

$ npm install --global vue-cli



# "webpack" 템플릿을 이용해서 새 프로젝트
생성

$ vue init webpack my-project



# 설치 및 실행

$ cd my-project

$ npm install

$ npm run dev
사용하기
사용하기
# vue-cli 설치

$ npm install --global vue-cli
사용하기
# "webpack" 템플릿을 이용해서 새 프로젝트 생성

$ vue init webpack my-project
사용하기
# 설치 및 실행

$ cd my-project

$ npm install

$ npm run dev
사용하기
사용하기
>> Hello Vue!

I am Vue
사용하기
레거시
1. 메인 페이지
원모먼트 레거시
2. 결제 오류
정상적인 결제 루틴
원모먼트 결제 루틴
Order Sheets > PG > Status Change
PG > Order Sheets > Status Change
결제가 됐는데 관리자 페이지에 정보가 없어요!
원모먼트 레거시
1. 뜯어 고치자! 처음부터!
- 백엔드는 추후 앱을 고려 해 RestFul API 로 변경
2. Front-End 이왕이면 프레임 워크를 써보자
- 가능한 빨리 적용 할 수 있는 걸로!
한다. 일. 쓴다. Vue.
해결 방법
달라진 점
nginx
기존 아키텍쳐
변경 된 아키텍쳐
Python
Django
django-osacr
ViewDB
nginx
Python
Django
django-osacr
Vue DB
달라진 점
달라진 점
달라진 점
<app-header><app-header>

<banner></banner>
달라진 점
<category-nav></category-nav>

<set-product-carousel></set-product-carousel>
달라진 점
<normal-product-card v-for="product in products">

</normal-product-card>
달라진 점
<additional-product-card v-for="product in AdditionalProducts">

</additional-product-card>
달라진 점
<app-footer></app-footer>
달라진 점
달라진 점
오픈소스 만들기
1. 음력 달력이 필요해!
라이브러리가 중국어 밖에 없잖아!?
계기
그럼 만들지 뭐
시안
1. webpack 설정하기
webpack 이란?
JavaScript 모듈 번들
러(Bundler)
과정
- mkdir vue-lunar-calendar && cd vue-lunar-calendar
- yarn add --dev webpack
// webpack.config.js
과정
- yarn build
- yarn start
과정
// package.json
과정
2. 소스 작성하기
// index.js
// Calnedar.vue



<day-cell></day-cell>
과정
3. 데모 작성
// webpack.dev.config.js
과정
3. 데모 작성
// package.json
- yarn demo
- yarn start
과정
3. 데모 작성
// index.html
App.vue 호출
과정
4. 데모 사이트 올리기
과정
5. README.md 작성하기
# 제목 + 설명

# 데모 사이트

# 설치 방법

# 사용 방법

# Property

# Event

# 지원 언어

# Thanks for
- npm publish
과정
6. 배포하기
https://kimwoohyun.github.io/vue-lunar-calendar/
결과
등록 확인
npmjs.com/package/패키지이름
설치
npm install vue-lunar-calendar —save
선언
import lunarCalendar from ‘vue-lunar-calendar’
Vue.component('lunar-calendar', lunarCalendar)
사용

<lunar-calendar></lunar-calendar>
적용
등록 이후
http://git-awards.com/
등록 이후
홍보를 해볼까?
그럼 다국어 지원을 해야 하지 않을까!?
그럼 하지 뭐
// lang.js
module.exports = {
translations: {
'ko': {
'name': 'Korean',
'days': ['일', '월', '화', '수', '목', '금', '토'],
'solar': '양력', 'lunar': '음력', 'leap' : '윤',
'solarShort': '양', 'lunarShort': '음'
},
'en': {
'name': 'English',
'days': ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'],
'solar': 'solar', 'lunar': 'lunar', 'leap': 'leap',
'solarShort': 'sol', 'lunarShort': 'lun'
}
}
};
https://github.com/vuejs/awesome-vue
홍보
홍보
홍보
몇 주 후
홍보
최종
Q&A
감사합니다.

More Related Content

What's hot

CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
J-Stream Inc.
 
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
VirtualTech Japan Inc./Begi.net Inc.
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
slankdev
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージTakashi Hoshino
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とか
kotto_hihihi
 
DNS再入門
DNS再入門DNS再入門
DNS再入門
Takashi Takizawa
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
중선 곽
 
WebRTCハンズオン
WebRTCハンズオンWebRTCハンズオン
WebRTCハンズオン
Yusuke Naka
 
MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後
Takanori Sejima
 
Node-REDからREST APIに接続
Node-REDからREST APIに接続Node-REDからREST APIに接続
Node-REDからREST APIに接続
Hitachi, Ltd. OSS Solution Center.
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
 
4K/8K時代のVideo over IPとCDN
4K/8K時代のVideo over IPとCDN4K/8K時代のVideo over IPとCDN
4K/8K時代のVideo over IPとCDN
Bunji Yamamoto
 
KubeVirt 101
KubeVirt 101KubeVirt 101
自宅サーバラックの勧め ~In osc nagoya~
自宅サーバラックの勧め ~In osc nagoya~自宅サーバラックの勧め ~In osc nagoya~
自宅サーバラックの勧め ~In osc nagoya~
h-otter
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu AsanoInsight Technology, Inc.
 

What's hot (19)

CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
 
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージ
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とか
 
DNS再入門
DNS再入門DNS再入門
DNS再入門
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
 
WebRTCハンズオン
WebRTCハンズオンWebRTCハンズオン
WebRTCハンズオン
 
Nmapの真実
Nmapの真実Nmapの真実
Nmapの真実
 
MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後
 
Node-REDからREST APIに接続
Node-REDからREST APIに接続Node-REDからREST APIに接続
Node-REDからREST APIに接続
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
4K/8K時代のVideo over IPとCDN
4K/8K時代のVideo over IPとCDN4K/8K時代のVideo over IPとCDN
4K/8K時代のVideo over IPとCDN
 
KubeVirt 101
KubeVirt 101KubeVirt 101
KubeVirt 101
 
自宅サーバラックの勧め ~In osc nagoya~
自宅サーバラックの勧め ~In osc nagoya~自宅サーバラックの勧め ~In osc nagoya~
自宅サーバラックの勧め ~In osc nagoya~
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
 

Similar to 원모먼트 Vue js 적용기

Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
Sangmin Yoon
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
EunYoung Kim
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
NAVER D2
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
Jae Sung Park
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
Junsu Kim
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
NAVER D2
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
leejungwang
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
월간 IT 슬라이드
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서draghome
 
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기
NAVER D2
 
deview2014
deview2014deview2014
deview2014
yongwoo Jeon
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
Tai Hoon KIM
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
dpTablo
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개
SuHyun Jeon
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Bansook Nam
 
okspring3x
okspring3xokspring3x
okspring3x
Kenu, GwangNam Heo
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기
철민 배
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
주식회사 내일비
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
Sang-ho Choi
 

Similar to 원모먼트 Vue js 적용기 (20)

Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기
 
deview2014
deview2014deview2014
deview2014
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
 
okspring3x
okspring3xokspring3x
okspring3x
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 

More from 우현 김

[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
우현 김
 
Front-End Programmer 의 "데이터 탐방기"
Front-End Programmer 의 "데이터 탐방기"Front-End Programmer 의 "데이터 탐방기"
Front-End Programmer 의 "데이터 탐방기"
우현 김
 
조금 일찍 시작한 사회 적응기
조금 일찍 시작한 사회 적응기조금 일찍 시작한 사회 적응기
조금 일찍 시작한 사회 적응기
우현 김
 
Be Creators
Be CreatorsBe Creators
Be Creators
우현 김
 
합시다. 회고.
합시다. 회고.합시다. 회고.
합시다. 회고.
우현 김
 
디자이너와 파티맺기
디자이너와 파티맺기디자이너와 파티맺기
디자이너와 파티맺기
우현 김
 

More from 우현 김 (6)

[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
[제3회 스포카콘] React + TypeScript + GraphQL 으로 시작하는 Web Front-End
 
Front-End Programmer 의 "데이터 탐방기"
Front-End Programmer 의 "데이터 탐방기"Front-End Programmer 의 "데이터 탐방기"
Front-End Programmer 의 "데이터 탐방기"
 
조금 일찍 시작한 사회 적응기
조금 일찍 시작한 사회 적응기조금 일찍 시작한 사회 적응기
조금 일찍 시작한 사회 적응기
 
Be Creators
Be CreatorsBe Creators
Be Creators
 
합시다. 회고.
합시다. 회고.합시다. 회고.
합시다. 회고.
 
디자이너와 파티맺기
디자이너와 파티맺기디자이너와 파티맺기
디자이너와 파티맺기
 

원모먼트 Vue js 적용기