SlideShare a Scribd company logo
1 of 10
Knockout
no more sapzil...
Introduction
- Simplify dynamic javascript UIs with the
Model-View-View Model(MVVM) pattern
- Declarative Bindings
- Automatic UI Refresh
- Dependency Tracking
- Templating
Headline feature
- 데이터 모델이 변경되면 관련한 UI가 자동적으
로 갱신됨.
- 간단하고 명료한 방식으로 UI와 모델을 연결가
능.
http://knockoutjs.com/index.html
Additional benefits
- 순수 자바스크립트,
- 작다.
- 대부분 브라우저에 돌아간다.
실습.
http://learn.knockoutjs.com/
http://knockoutjs.com/examples/inde
x.html
구현
Javascript
Html
The name is <span data-bind="text: personName"></span>
var xx = {
var myViewModel = function() {
var self = this;
self.xxx = ko.observable
var yyy =
personName: 'Bob',
personAge: 123
};
ko.applyBindings(myViewModel);
result: The name is <span><input type=”text” data-bind=”value:personName”></span>
Observable
여기가 마술.
var myViewModel = {
personName: ko.observable(‘32123’),
personAge: ko.observable(123)
};
쓰기 - (‘’),
읽기 - () get/set 개념.
Computed Observables
Observablearrays
function AppViewModel() {
var self = this;
self.firstName = ko.observable('Bob');
self.lastName = ko.observable('Smith');
self.fullName = ko.computed(function() {
return self.firstName() + " " + self.lastName();
});
}
self.fullname = rice smith;
<span
<input type=text data-bind=”value:frisd>
[ rice ][ ]
rice smth
<span data-bind=”text:fullName”></span>
<ul data-bind=”foreach: myOereer”
li data-bind=”text:name”
Bindings
- visible, text, html, css, style, attr
- foreach, if, ifnot, with
- click, event, submit, enable, disable, value ...
Observable
- MVVM and View Models(모델-뷰-뷰모델)
:모델: 데이터 저장소. UI와 독립적이며 데이
터 객체와 오퍼레이션 담당.
: 뷰모델 : UI와 연계되는 데이터 및 오퍼레이
션 담당.
: 뷰 : 선언적 바인딩을 이용한 HTML문서. 템
플릿을 사용할 수도 있음.

More Related Content

What's hot

[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 우영 주
 
프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음DataUs
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해Leehooan
 
[2014널리세미나] 웹 서비스분석 MEAN Stack과 PhantomJS만 알면 끝!
[2014널리세미나] 웹 서비스분석 MEAN Stack과  PhantomJS만 알면 끝![2014널리세미나] 웹 서비스분석 MEAN Stack과  PhantomJS만 알면 끝!
[2014널리세미나] 웹 서비스분석 MEAN Stack과 PhantomJS만 알면 끝!Nts Nuli
 
2017년 javascript의 현재주소
2017년 javascript의 현재주소2017년 javascript의 현재주소
2017년 javascript의 현재주소윤학 권
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기우현 김
 
bootstrap-scaffolding
bootstrap-scaffoldingbootstrap-scaffolding
bootstrap-scaffoldingSangHun Lee
 
Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철Kichul Jung
 
드래그홈2013표준제안서
드래그홈2013표준제안서드래그홈2013표준제안서
드래그홈2013표준제안서draghome
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer ModelHan Lee
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
리액트 적용기
리액트 적용기리액트 적용기
리액트 적용기Hun Yong Song
 
Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해tailofmoon
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJSEunYoung Kim
 
웹표준(XHTML+CSS)
웹표준(XHTML+CSS)웹표준(XHTML+CSS)
웹표준(XHTML+CSS)ymtech
 
모듈시스템과 webpack
모듈시스템과 webpack모듈시스템과 webpack
모듈시스템과 webpackDataUs
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선NAVER D2
 
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례미래웹기술연구소 (MIRAE WEB)
 
HTML5 & CSS 살펴보기
HTML5 & CSS  살펴보기HTML5 & CSS  살펴보기
HTML5 & CSS 살펴보기Suan Lee
 

What's hot (20)

[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
 
프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해
 
[2014널리세미나] 웹 서비스분석 MEAN Stack과 PhantomJS만 알면 끝!
[2014널리세미나] 웹 서비스분석 MEAN Stack과  PhantomJS만 알면 끝![2014널리세미나] 웹 서비스분석 MEAN Stack과  PhantomJS만 알면 끝!
[2014널리세미나] 웹 서비스분석 MEAN Stack과 PhantomJS만 알면 끝!
 
2017년 javascript의 현재주소
2017년 javascript의 현재주소2017년 javascript의 현재주소
2017년 javascript의 현재주소
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
bootstrap-scaffolding
bootstrap-scaffoldingbootstrap-scaffolding
bootstrap-scaffolding
 
Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철Bootstrap에 대해서 정기철
Bootstrap에 대해서 정기철
 
드래그홈2013표준제안서
드래그홈2013표준제안서드래그홈2013표준제안서
드래그홈2013표준제안서
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
리액트 적용기
리액트 적용기리액트 적용기
리액트 적용기
 
Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
웹표준(XHTML+CSS)
웹표준(XHTML+CSS)웹표준(XHTML+CSS)
웹표준(XHTML+CSS)
 
모듈시스템과 webpack
모듈시스템과 webpack모듈시스템과 webpack
모듈시스템과 webpack
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선
 
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
 
HTML5 & CSS 살펴보기
HTML5 & CSS  살펴보기HTML5 & CSS  살펴보기
HTML5 & CSS 살펴보기
 

Similar to Knock out - 삽질은 그만 #1

Spring mvc
Spring mvcSpring mvc
Spring mvcksain
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3J B
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기Jeado Ko
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)Hankyo
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서draghome
 
04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)Hankyo
 
MVVM Pattern for Android
MVVM Pattern for AndroidMVVM Pattern for Android
MVVM Pattern for Androidtaeinkim6
 
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf병근 손
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.jsJinKwon Lee
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridappNAVER D2
 
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우XpressEngine
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrapredribbon1307
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.Hojin Jun
 
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 @SeoulBansook Nam
 
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발JongKwang Kim
 
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)Sang Don Kim
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular jsJeado Ko
 

Similar to Knock out - 삽질은 그만 #1 (20)

Spring mvc
Spring mvcSpring mvc
Spring mvc
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)
 
MVVM Pattern for Android
MVVM Pattern for AndroidMVVM Pattern for Android
MVVM Pattern for Android
 
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.
 
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
 
Presentation1
Presentation1Presentation1
Presentation1
 
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
 
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular js
 

Knock out - 삽질은 그만 #1

  • 2. Introduction - Simplify dynamic javascript UIs with the Model-View-View Model(MVVM) pattern - Declarative Bindings - Automatic UI Refresh - Dependency Tracking - Templating
  • 3. Headline feature - 데이터 모델이 변경되면 관련한 UI가 자동적으 로 갱신됨. - 간단하고 명료한 방식으로 UI와 모델을 연결가 능. http://knockoutjs.com/index.html
  • 4. Additional benefits - 순수 자바스크립트, - 작다. - 대부분 브라우저에 돌아간다.
  • 6. 구현 Javascript Html The name is <span data-bind="text: personName"></span> var xx = { var myViewModel = function() { var self = this; self.xxx = ko.observable var yyy = personName: 'Bob', personAge: 123 }; ko.applyBindings(myViewModel); result: The name is <span><input type=”text” data-bind=”value:personName”></span>
  • 7. Observable 여기가 마술. var myViewModel = { personName: ko.observable(‘32123’), personAge: ko.observable(123) }; 쓰기 - (‘’), 읽기 - () get/set 개념.
  • 8. Computed Observables Observablearrays function AppViewModel() { var self = this; self.firstName = ko.observable('Bob'); self.lastName = ko.observable('Smith'); self.fullName = ko.computed(function() { return self.firstName() + " " + self.lastName(); }); } self.fullname = rice smith; <span <input type=text data-bind=”value:frisd> [ rice ][ ] rice smth <span data-bind=”text:fullName”></span> <ul data-bind=”foreach: myOereer” li data-bind=”text:name”
  • 9. Bindings - visible, text, html, css, style, attr - foreach, if, ifnot, with - click, event, submit, enable, disable, value ...
  • 10. Observable - MVVM and View Models(모델-뷰-뷰모델) :모델: 데이터 저장소. UI와 독립적이며 데이 터 객체와 오퍼레이션 담당. : 뷰모델 : UI와 연계되는 데이터 및 오퍼레이 션 담당. : 뷰 : 선언적 바인딩을 이용한 HTML문서. 템 플릿을 사용할 수도 있음.

Editor's Notes

  1. 동일한 동적 UI 처리를 jquery로 처리하는 것과 비교 로직 참고. 셀렉터로 찾고, 셋 겟 하고 코드가 몇줄….
  2. 다른 형태로 구현 가능함. 어쨌던 태그에 바인딩을 하고 있다는 점.