Angularjs 도입 선택 가이드NAVER D2[Angularjs 도입 선택 가이드]
본 문서는 네이버 개발자 블로그 hello world 를 통해서 공개되었습니다.
[문서개요]
이 문서는 AngularJS를 사용한 애플리케이션 개발을 계획하고 있거나 AngularJS 도입을 고려 중일 때 참고 할 만한 내용을 기술한다. AngularJS를 사용하는 방법을 다루지는 않는다.
이 문서의 모든 내용은 AngularJS 버전 1.3.x를 기준으로 작성되었다.
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...Sang Seok Lim2015년 HTML5 기반 모바일 웹 어플리케이션 기술 개발 동향 정리 및 2016년 기술 변화 예측합니다. Ionic/Angularjs 기반 상용 앱 개발 사례도 상세하게 소개 합니다. 본 자료를 통해서 HTML5 기반 모바일 어플리케이션을 개발시 활용가능한 Framework 및 최적화 분야에 대해서 이해할수 있습니다.
웹 디자이너의 도전: Vue.js 따라하기Seungmin Lee2017년 4월 19일 Vuetiful Korea 첫번째 밋업의 세번째 발표자료입니다.
Vue.js 한국어 사용자 모임에서 발표를 하게 된 디자이너, 그녀는 과연 Vue.js를 쓸 수 있을 것인가?
발표자료에서 소개되는 게임은 smilee.github.io/vuetiful-korea-170419 을 참고해 주시기 바랍니다.
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon LeeImplementing Web Based Online MultiPlyaer Tetris with OpenSource
AngularJS 2, version 1 and ReactJSKenneth CeyerAngularJS 2는 올해 릴리징된 프론트엔드 도구 중 가장 쿨하고 섹시한 도구라고 독자는 믿고있습니다.
AngularJS 2를 실무환경에 적용함으로 얻는 이점.
AngularJS 2와 1의 차이점과 성능.
그리고 ReactJS와 AngularJS 2를 비교하여 퍼포먼스 데이터를 보여줍니다.
마지막으로 AngularJS 2 사용을 위한 번들러(Bundler) 그 중 Webpack, Systemjs, JSPM에 대해서도 안내합니다.
해당 자료는 XECon 2016에 발표되었습니다.
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...Sang Seok Lim2015년 HTML5 기반 모바일 웹 어플리케이션 기술 개발 동향 정리 및 2016년 기술 변화 예측합니다. Ionic/Angularjs 기반 상용 앱 개발 사례도 상세하게 소개 합니다. 본 자료를 통해서 HTML5 기반 모바일 어플리케이션을 개발시 활용가능한 Framework 및 최적화 분야에 대해서 이해할수 있습니다.
웹 디자이너의 도전: Vue.js 따라하기Seungmin Lee2017년 4월 19일 Vuetiful Korea 첫번째 밋업의 세번째 발표자료입니다.
Vue.js 한국어 사용자 모임에서 발표를 하게 된 디자이너, 그녀는 과연 Vue.js를 쓸 수 있을 것인가?
발표자료에서 소개되는 게임은 smilee.github.io/vuetiful-korea-170419 을 참고해 주시기 바랍니다.
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon LeeImplementing Web Based Online MultiPlyaer Tetris with OpenSource
AngularJS 2, version 1 and ReactJSKenneth CeyerAngularJS 2는 올해 릴리징된 프론트엔드 도구 중 가장 쿨하고 섹시한 도구라고 독자는 믿고있습니다.
AngularJS 2를 실무환경에 적용함으로 얻는 이점.
AngularJS 2와 1의 차이점과 성능.
그리고 ReactJS와 AngularJS 2를 비교하여 퍼포먼스 데이터를 보여줍니다.
마지막으로 AngularJS 2 사용을 위한 번들러(Bundler) 그 중 Webpack, Systemjs, JSPM에 대해서도 안내합니다.
해당 자료는 XECon 2016에 발표되었습니다.
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 미래웹기술연구소 (MIRAE WEB)Sencha ExtJS를 활용한 Big Data Platform 개발 사례
ExtJS를 활용한 고도로 복잡한 웹애플리케이션 UI 개발사례
클라우다인 - 박효근 선임
[SOSCON 2018] 오픈소스 개발: Behind the scenesJae Sung Park오픈 소스 개발에 참여한다는 것은 여러분들에게 어떤 의미가 있나요? 포트폴리오 작성을 위해? 불편함을 개선하기 위해? 무언가 멋져 보이기 때문에?
외적으로 보이는 오픈 소스 개발/운영은 여러분들이 생각하는 '모습'과 아주 다를 수 있습니다. 성공적인 오픈 소스가 되기 위해서는 무엇이 필요할까요?
오픈소스 개발자로 성공(또는 살아남기) 할 수 있을까요?
billboard.js 프로젝트를 운영하면서 경험한 내용을 바탕으로, 여러분들이 알지 못하는 오픈소스 운영 과정에서의 경험을 전달하고자 합니다.
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기Jae Sung Park무엇이 오늘날의 JS/FE 개발환경을 만들었을까요?
JS의 시작부터, 오늘날의 개발환경, 그리고 2018년 각 영역별 동향을 통해 우리가 취해야할 자세에 대한 얘기를 하고자 합니다.
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지Jae Sung ParkNAVER's open source, from Jindo to billboard.js
10 yrs of front-end open source development - challenges & experiences
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기Jae Sung Park차트란 무엇일까요? 차트는 우리가 일상에서 아주 쉽게 자주 접하지만, 막상 개발자로써의 경험을 하는 동안 차트 개발(적용)은 쉽게 경험해 보기 어려운 영역이기도 합니다.
본 발표는 '차트'라는 영역에 대한 개발 경험기와 함께 오픈소스로 공개 후, 단 기간 내에 많은 주목을 받기 까지의 과정을 통해 어떻게 의미있는 성과를 글로벌 하게 얻을 수 있었는가에 대한 오픈소스 성장에 대한 경험도 같이 공유합니다.
이를 통해 다양한 오픈소스 개발 시도와 참여가 활발히 이루어 지는데 도움을 줄수 있게 되기를 기대 합니다.
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjsJae Sung ParkIntroduction of jQuery based library 'egjs'.
egjs is a set of UI interactions, effects and utility components library.
How jQuery event worksJae Sung ParkExamine how jQuery works internally handling events with flow diagrams in each steps of binding, triggering and removing.
모바일 웹 디버깅Jae Sung ParkThis document provides information about mobile web debugging and development tools. It discusses Chrome DevTools, Weinre (a web inspector tool for remote debugging), iOS Simulator, Safari, and Android debugging. It provides links to documentation and tutorials about setting up remote debugging with these various tools.
혁신적인 웹컴포넌트 라이브러리 - PolymerJae Sung ParkPolymer의 기술기반인 Web Componets를 구성하는 표준 스펙들인 Custom Elements, HTML Imports, HTML Templates 그리고 Shadow DOM을 간략히 살펴본다.
Polymer의 아키텍처 및 기본적인 사용방법 그리고 material design이 적용된 paper elements 등을 살펴본다.
How to create Aptana RubleJae Sung ParkThis document provides instructions on how to create an Aptana Ruble, which extends the IDE's functionality using Ruby. It covers generating a new ruble, adding menu items and commands, defining command scopes, inputs, outputs, and key bindings. Code assist is enabled through ScriptDoc XML. A simple demo ruble is presented, and packaging/installation instructions conclude the document.
6. 왜 개발자들이 좋아할까? (특히BACK-
END)
코드일관성(개인스타일편차적음)
구조적(MVC패턴)
코드량감소(이벤트바인딩,뷰업데이트코드
등)
코드의재사용
양방향데이터바인딩(Two-WayData
Binding)
다양한Module을활용한빠른개발
7. 간단 ANGULARJS 예제 #1
HTML Result Edit on
<html ng-app> <!-- (1) 하위 영역은 AnguarJS 어플리케이션으로 인식됨 -->
<head>
<title>AngularJS</title>
<!-- AngularJS 로딩 -->
<script type="text/javascript" src=/slideshow/angular-js-53149027/53149027/"https:/code.angularjs.org/1.3.8/angular.min.js"></script>
</head>
<body>
<div>
<!-- (2) 데이터 바인딩을 위해 사용되는 지시자로, 값으로 지정한 'name'은 모델의 이름으로 사용 -->
<input type='text' ng-model='name' />
<!-- (3) 데이터의 출력을 위한 템플릿 표현 식으로, 이중 중괄호로 묶어 사용한다. 이곳에 사용된 모델명인 'name'은
ng-model='name'과 바인딩 되어 처리된다. -->
<h2>{{name}}</h2>
</div>
</body>
</html>
8. 간단 ANGULARJS 예제 #2
HTML JS Result Edit on
<html ng-app="myApp">
<head>
<title>AngularJS</title>
<script type="text/javascript" src=/slideshow/angular-js-53149027/53149027/"https:/code.angularjs.org/1.3.8/angular.min.js"></script>
</head>
<body>
<!--
컨트롤러는 모듈 내에 정의되며, HTML 요소와 묶이도록 구성된다.
컨트롤러에는 비즈니스 로직이 구현되며, 데이터와 이벤트 핸들러 함수 등이 포함된다.
-->
<div ng-controller="myController1">
<ul>
<li ng-repeat="fruit in fruits">
<span>{{fruit.name}}</span> / <span>{{fruit.qty}}</span>
</li>
</ul>
<button ng-click="setValue()">변경</button>
</div>
14. 개발방법 비교:
DOM 젵Ӗ VS ANGULARJS
구분 종류 크기(byte) Total(byte)
DOM젵Ӗ(Jindo) HTML 1,164 4,951(100%)
JavaScript 3,787
AngularJS HTML 2,059 3,161(63.84%)
JavaScript 1,102
21. 고려사항: 성능 #2 초기로딩&렌더링
http://www.filamentgroup.com/lab/mv-initial-load-times.html
22. 고려사항: 성능 #3 데이터처리
100개목록데이터가HTML에포함되어처리되는경우
리스트 0디지털타임스 오후 1:15
리스트 1디지털타임스 오후 1:15
리스트 2디지털타임스 오후 1:15
리스트 3디지털타임스 오후 1:15
리스트 4디지털타임스 오후 1:15
리스트 5디지털타임스 오후 1:15
리스트 6디지털타임스 오후 1:15
리스트 7디지털타임스 오후 1:15
리스트 8디지털타임스 오후 1:15
리스트 9디지털타임스 오후 1:15
금융 증권 부동산
홈 정치 경제 연예 사회 IT 생활 세계 포토
로딩 속도 : 72ms
리스트 0 디지털타임스 오후 1:15
리스트 1 디지털타임스 오후 1:15
리스트 2 디지털타임스 오후 1:15
리스트 3 디지털타임스 오후 1:15
리스트 4 디지털타임스 오후 1:15
리스트 5 디지털타임스 오후 1:15
리스트 6 디지털타임스 오후 1:15
리스트 7 디지털타임스 오후 1:15
리스트 8 디지털타임스 오후 1:15
리스트 9 디지털타임스 오후 1:15
금융 증권 부동산
홈 정치 경제 연예 사회 IT 생활 세계 포토
로딩 속도 : 138ms
일반적방식 ←clicktorefresh→ AngularJS
23. 고려사항: 성능 #4 데이터바인딩
데이터편차에따른처리속도
리스트 0디지털타임스 오후 1:15
리스트 1디지털타임스 오후 1:15
리스트 2디지털타임스 오후 1:15
리스트 3디지털타임스 오후 1:15
리스트 4디지털타임스 오후 1:15
리스트 5디지털타임스 오후 1:15
리스트 6디지털타임스 오후 1:15
금융 증권 부동산
100 200 300 400 500 600 700 800 900
1000 1100 1200 1300 1400 1500 1600 1700
1800 1900 2000
로딩 속도 :
리스트 0 디지털타임스 오후 1:15
리스트 1 디지털타임스 오후 1:15
리스트 2 디지털타임스 오후 1:15
리스트 3 디지털타임스 오후 1:15
리스트 4 디지털타임스 오후 1:15
리스트 5 디지털타임스 오후 1:15
리스트 6 디지털타임스 오후 1:15
금융 증권 부동산
100 200 300 400 500 600 700 800 900
1000 1100 1200 1300 1400 1500 1600 1700
1800 1900 2000
로딩 속도 :
One-WayDataBindingvs.Two-WayDataBinding