SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
실무자를 위한
ExtJS 엔터프라이즈 개발 노하우
2015. 05. 19
박무형 선임 컨설턴트 | 미래웹기술연구소
발표자 소개
§  미래웹기술 연구소선임컨설턴트
§  Ext JS 프로젝트 경력
§  한솔 NexG ESM
§  삼정 KPMG ING 생명 연말정산시스템
§  연세대학교 연구개발시스템
Page 2
목차
§  자바스크립트 메타프로그래밍 기법
§  효율적인 ExtJS패키지설계와 네이밍룰
§  이벤트링크드 패턴
§  Demo
§  결론
Page 3
자바스크립트 메타프로그래밍 기법
자바스크립트 메타프로그래밍 기법이란?
§  자바스크립트의 문법의 형태
§  자바스크립트에서 객체지향적인 프로그래밍 가능
§  예제 1) 프로토타입 프로그래밍
§  예제 2) 콜백함수 프로그래밍
Page 5
프로토타입 프로그래밍 (1/2)
§  속성값, 즉 Key,Value를 기반으로 하는 프로그래밍
§  사용시기 : 중첩 If 문 또는 조건분기가 많아질경우
Page 6
프로토타입 프로그래밍 샘플 (1/2)
§  샘플코드
Page 7
계속
프로토타입 프로그래밍 장점(1/2)
§  코드를 읽기 편하다
§  조건문이 변경될때 메인로직을 건드리지 않아도 된다.
-  데이터와 프로그램 로직의 분리
-  프로퍼티만 추가/수정/삭제만 하면 된다.
Page 8
콜백함수 프로그래밍 사용법(2/2)
Page 9
§  함수를 호출하였을때 내부처리 함수를 프로그래머가 지정하는 방식
§  메인로직이 같은데 전처리, 후처리 로직이 다를때 주로 이용
§  주로 공통모듈(사용자검색팝업,우편번호찾기팝업등)에서 많이 사용된다.
§  ExtJS 코어에서도 많이 사용되고 있다.
ex) Ext.Ajax.request, Ext.require 등..
콜백함수 프로그래밍 샘플
Page 10
그밖의 자바스크립트 메타프로그래밍 기법
Page 11
§  스코프(this)를 이용한 메타프로그래밍
§  || (OR 연산자)를 이용한 메타프로그래밍
§  기타 등
효율적인 Ext JS 패키지 설계와 클래스 네이밍 룰
Page 12
효율적인 패키지란?
Page 13
§  패키지 구조만 보더라도 단번에 이해가 가능해야 한다.
§  패키지 재사용성이 보장되어야 한다.
§  에러가 났을때 원인을 손쉽게 찾을수 있어야 한다.
효율적인 패키지설계 방안(1/4)
Page 14
§  원칙 1 : 상위 패키지는 하위패키지를 전부 포함해야 한다.
효율적인 패키지설계 방안(2/4)
Page 15
§  원칙 2 : 하위패키지는 상위패키지 내용을 직접 호출해서는 안된다.
-  상위패키지를 이용해서 로직처리가 필요한 경우에는 별도의 controller에서 제어해야한다.
효과적인 클래스 네이밍 룰(3/4)
Page 16
§  원칙 3 : 네이밍 룰
-  컴포넌트를 포함시키는 클래스는 Main이라는 접미어를 붙여서 활용
-  컴포넌트 클래스는 Main 클래스에 모두 포함 시킴
-  패키지 경로를 접두어로 계속 붙여나간다.
효과적인 클래스 네이밍 룰(4/4)
Page 17
§  원칙 4 : Current한 패키지 안에는 2개의 Main.js가 존재하면 안된다.
효율적인 패키지 설계와 네이밍 룰 - 결론
Page 18
§  수백본의 화면 개발 프로젝트시 개발 편의성이 증대된다
§  복잡한 화면이 담긴 화면 개발시 Main.js 파일만 참조하면 되는 편리성이 있다.
§  객체명이 유니크 하므로 손쉽게 트래킹이 가능하다.
이벤트 링크드 패턴 프로그래밍
Page 19
이벤트 링크드 패턴이란?
Page 20
§  이벤트기반 프로그래밍에서 한 단계 진화된 패턴
§  상호간의 종속성이 없는 코드를 작성을 위한 패턴
§  비즈니스 이벤트라는 개념을 도입
§  추상 이벤트의 도입
-  비즈니스 이벤트에 대한 조건분기 처리를 위한 개념
예제
Page 21
일반적인 컴포넌트 이벤트 내의 함수 구현 방식
Page 22
대분류 Select 중분류 Select 소분류 Select
이벤트 링크드 패턴을 위한 비즈니스 이벤트 개념 도입
§  이벤트 링크드 패턴에서 컴포넌트 이벤트들의 집합체
§  컴포넌트에서 발생한 이벤트들이 상호종속적으로 연결되는 단위
Page 23
대분류 사용자 클릭	
중분류 사용자 클릭	
소분류 사용자 클릭	
이벤트 바인딩
이벤트 바인딩
이벤트 바인딩
비즈니스 이벤트 도입으로 인한 객체간 의존성 제거
Page 24
§  컴포넌트간의 기능상의 상호 의존성이 없는 코드작성이 가능
대분류 Select 중분류 Select 소분류 Select
이벤트 링크드 패턴의 장점
Page 25
§  업무파악이 매우 쉬어진다.
-  비즈니스이벤트가 화면상에 이루어지는 모든 기능이다.
§  코드유지보수가 매우 간결해진다.
-  중간에 컴포넌트가 추가되거나 분기로직이이루어질경우 이벤트만 끼워넣고 연결만 다시해주면된다
§  코드안정성이높아진다.
-  구조적으로사용자가 할수 있는 모든 액션에대해 코드가 간접적으로 구현(이벤트연결)이  되어있으
므로 버그가 줄어든다.
§  중복코드가줄어든다. 
-  중복이발생했다는 뜻은 대부분 이벤트 연결이나 이벤트구현이 잘못된 경우이다. 이로인해 좀더 구조
적으로 코드를 작성하므로 코드안정성이 높아진다.
Demo
Page 26
이벤트 링크드 패턴 전체
Page 27
이벤트 링크드 패턴 결론
Page 28
§  어떤화면 어떤 요구사항이든 버그를 극한으로 줄일수 있는 프로그래밍 기법이다.
§  코드가 코드 코멘트가 되어버린다. 코드 코멘트 쓸일이 거의 없어진다.
§  개발시간과 테스트 시간감소
-  화이트보드에 단순하게 스케치 몇번으로 비즈니스 로직의 시뮬레이팅이 가능하다.
-  화이트보드에 스케치한 비즈니스로직을 그대로 옮기면 된다..
§  화면설계와 보는시각자체가 아예 달라진다.
-  단순하게 컴포넌트설계가 아니라 전체적인 이벤트 디자인에 염두하여 프로그래밍을 한다.
-  패턴 특성상 체계적인 코딩이 아니면 구현이 불가능하다.
정리
§  자바스크립트 메타프로그래밍
§  패키지설계 및 네이밍룰
§  이벤트링크드 프로그래밍
Page 29

Más contenido relacionado

La actualidad más candente

엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5Manyoung Cho
 
[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)
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 우영 주
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰Kenu, GwangNam Heo
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망NAVER Engineering
 
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...Sang Seok Lim
 
1.openseminar
1.openseminar1.openseminar
1.openseminarNAVER D2
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스Tai Hoon KIM
 
Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해tailofmoon
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기우현 김
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정Kenu, GwangNam Heo
 
JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기항희 이
 

La actualidad más candente (20)

엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
 
HTML5 기업 적용시 고려사항 : 미래웹기술연구소
HTML5 기업 적용시 고려사항 : 미래웹기술연구소 HTML5 기업 적용시 고려사항 : 미래웹기술연구소
HTML5 기업 적용시 고려사항 : 미래웹기술연구소
 
HTML5 와 미래웹기술 part 2
HTML5 와 미래웹기술 part 2HTML5 와 미래웹기술 part 2
HTML5 와 미래웹기술 part 2
 
[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 를 활용한 엔터프라이즈 솔루션 개발사례
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
 
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
HTML5 관점에서 2015년 웹 앱 개발 동향과 사례 및 2016년 발전 방향 저...
 
1.openseminar
1.openseminar1.openseminar
1.openseminar
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스
 
Costar s2
Costar s2Costar s2
Costar s2
 
HTML5 와 미래웹기술 part 1
HTML5 와 미래웹기술 part 1HTML5 와 미래웹기술 part 1
HTML5 와 미래웹기술 part 1
 
Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해Html초급 1강 웹표준의 이해
Html초급 1강 웹표준의 이해
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정
 
JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기
 

Destacado

Sencha architect 체험기
Sencha architect 체험기Sencha architect 체험기
Sencha architect 체험기천 세욱
 
HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010alanburke
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 
지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기Q-Young Lee
 
arcplan dynaSight Enterprise 최신 버전 포지셔닝
arcplan dynaSight Enterprise 최신 버전 포지셔닝arcplan dynaSight Enterprise 최신 버전 포지셔닝
arcplan dynaSight Enterprise 최신 버전 포지셔닝mosaicnet
 
arcplan dynaSight Enterprise Live Demo
arcplan dynaSight Enterprise Live Demoarcplan dynaSight Enterprise Live Demo
arcplan dynaSight Enterprise Live Demomosaicnet
 
082303 장이현(sencha architecture)
082303 장이현(sencha architecture)082303 장이현(sencha architecture)
082303 장이현(sencha architecture)Yihyun Jang
 
Cloud_Talent_Management
Cloud_Talent_ManagementCloud_Talent_Management
Cloud_Talent_ManagementAdam Park
 
[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim
[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim
[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss GimSTONE BRAND COMMUNICATIONS
 
한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진
한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진
한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진Jwajin Yoon
 
차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향
차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향
차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향미래웹기술연구소 (MIRAE WEB)
 
[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대
[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대
[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대미래웹기술연구소 (MIRAE WEB)
 
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space미래웹기술연구소 (MIRAE WEB)
 

Destacado (16)

Sencha architect 체험기
Sencha architect 체험기Sencha architect 체험기
Sencha architect 체험기
 
HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010HTML 5 Drupalcamp Ireland Dublin 2010
HTML 5 Drupalcamp Ireland Dublin 2010
 
Sencha Ext JS 구축사례 : 콜로사 프로세스메이커
Sencha Ext JS 구축사례 : 콜로사 프로세스메이커Sencha Ext JS 구축사례 : 콜로사 프로세스메이커
Sencha Ext JS 구축사례 : 콜로사 프로세스메이커
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
Géneros de música
Géneros de músicaGéneros de música
Géneros de música
 
지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기지도 서비스용 웹앱 개발환경 사용기
지도 서비스용 웹앱 개발환경 사용기
 
arcplan dynaSight Enterprise 최신 버전 포지셔닝
arcplan dynaSight Enterprise 최신 버전 포지셔닝arcplan dynaSight Enterprise 최신 버전 포지셔닝
arcplan dynaSight Enterprise 최신 버전 포지셔닝
 
arcplan dynaSight Enterprise Live Demo
arcplan dynaSight Enterprise Live Demoarcplan dynaSight Enterprise Live Demo
arcplan dynaSight Enterprise Live Demo
 
082303 장이현(sencha architecture)
082303 장이현(sencha architecture)082303 장이현(sencha architecture)
082303 장이현(sencha architecture)
 
Cloud_Talent_Management
Cloud_Talent_ManagementCloud_Talent_Management
Cloud_Talent_Management
 
Mobile UI Framework
Mobile UI FrameworkMobile UI Framework
Mobile UI Framework
 
[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim
[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim
[STONE BID] 무엇이 오스카를 특별하게 만드는가 by Kriss Gim
 
한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진
한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진
한국형웹콘텐츠접근성지침2 0 알아보기_윤좌진
 
차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향
차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향
차세대 모바일 App 기술동향 컨퍼런스 - HTML5와 웹앱 동향
 
[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대
[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대
[Sencha 엔터프라이즈 웹애플리케이션 세미나] 웹앱기반 차세대 학사 관리시스템 _청강문화산업대
 
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
 

Similar a 실무자를 위한 ExtJS 엔터프라이즈 개발 노하우

2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)승용 윤
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER Engineering
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3uEngine Solutions
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답SangIn Choung
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?VMware Tanzu Korea
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Node.js 살펴보기
Node.js 살펴보기Node.js 살펴보기
Node.js 살펴보기명신 김
 
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결VMware Tanzu Korea
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기Donghyun Cho
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기복연 이
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표ChangGyum Kim
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...BESPIN GLOBAL
 
Data Web Grid 'SBGrid'
Data Web Grid 'SBGrid'Data Web Grid 'SBGrid'
Data Web Grid 'SBGrid'ssuser4e0be8
 
Social game and windows azure platform (final)
Social game and windows azure platform (final)Social game and windows azure platform (final)
Social game and windows azure platform (final)정현 남
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 

Similar a 실무자를 위한 ExtJS 엔터프라이즈 개발 노하우 (20)

2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
Node.js 살펴보기
Node.js 살펴보기Node.js 살펴보기
Node.js 살펴보기
 
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
꿀밋업2탄_도메인 모델에 따른 데이터 분리 저장과 API 연결
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
 
Data Web Grid 'SBGrid'
Data Web Grid 'SBGrid'Data Web Grid 'SBGrid'
Data Web Grid 'SBGrid'
 
Social game and windows azure platform (final)
Social game and windows azure platform (final)Social game and windows azure platform (final)
Social game and windows azure platform (final)
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 

Más de 미래웹기술연구소 (MIRAE WEB)

Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례
Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례
Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례미래웹기술연구소 (MIRAE WEB)
 
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5미래웹기술연구소 (MIRAE WEB)
 
Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석
Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석
Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석미래웹기술연구소 (MIRAE WEB)
 
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션미래웹기술연구소 (MIRAE WEB)
 

Más de 미래웹기술연구소 (MIRAE WEB) (14)

Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례
Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례
Sencha ExtJS를 활용한 물류 통합 관리솔루션 개발 사례
 
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
 
Ext JS 구축사례 : 하나로 TNS
Ext JS 구축사례 : 하나로 TNSExt JS 구축사례 : 하나로 TNS
Ext JS 구축사례 : 하나로 TNS
 
[Sencha 국제공인 교육_Ext JS 4 Training ] 5월교육
[Sencha 국제공인 교육_Ext JS 4 Training ] 5월교육[Sencha 국제공인 교육_Ext JS 4 Training ] 5월교육
[Sencha 국제공인 교육_Ext JS 4 Training ] 5월교육
 
Sencha Ext JS 구축사례 : 마케토
Sencha Ext JS 구축사례 : 마케토Sencha Ext JS 구축사례 : 마케토
Sencha Ext JS 구축사례 : 마케토
 
Sencha Ext JS 구축사례 : 코드스미스 툴즈
Sencha Ext JS 구축사례 : 코드스미스 툴즈Sencha Ext JS 구축사례 : 코드스미스 툴즈
Sencha Ext JS 구축사례 : 코드스미스 툴즈
 
Sencha Touch 구축사례 : 포드 쇼룸 앱
Sencha Touch 구축사례 : 포드 쇼룸 앱Sencha Touch 구축사례 : 포드 쇼룸 앱
Sencha Touch 구축사례 : 포드 쇼룸 앱
 
Sencha Ext JS 구축사례 : 클릭타임
Sencha Ext JS 구축사례 : 클릭타임Sencha Ext JS 구축사례 : 클릭타임
Sencha Ext JS 구축사례 : 클릭타임
 
Sencha Touch 구축사례 : 스텔라앤닷
Sencha Touch 구축사례 : 스텔라앤닷Sencha Touch 구축사례 : 스텔라앤닷
Sencha Touch 구축사례 : 스텔라앤닷
 
양면브로셔0324
양면브로셔0324양면브로셔0324
양면브로셔0324
 
Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석
Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석
Sencha Touch 구축사례 : SK 모바일 아카데미 사례분석
 
W3C 온라인 트레이닝 한국어과정
W3C 온라인 트레이닝 한국어과정W3C 온라인 트레이닝 한국어과정
W3C 온라인 트레이닝 한국어과정
 
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
 
N-Screen 종결자, HTML5
N-Screen 종결자, HTML5N-Screen 종결자, HTML5
N-Screen 종결자, HTML5
 

실무자를 위한 ExtJS 엔터프라이즈 개발 노하우

  • 1. 실무자를 위한 ExtJS 엔터프라이즈 개발 노하우 2015. 05. 19 박무형 선임 컨설턴트 | 미래웹기술연구소
  • 2. 발표자 소개 §  미래웹기술 연구소선임컨설턴트 §  Ext JS 프로젝트 경력 §  한솔 NexG ESM §  삼정 KPMG ING 생명 연말정산시스템 §  연세대학교 연구개발시스템 Page 2
  • 3. 목차 §  자바스크립트 메타프로그래밍 기법 §  효율적인 ExtJS패키지설계와 네이밍룰 §  이벤트링크드 패턴 §  Demo §  결론 Page 3
  • 5. 자바스크립트 메타프로그래밍 기법이란? §  자바스크립트의 문법의 형태 §  자바스크립트에서 객체지향적인 프로그래밍 가능 §  예제 1) 프로토타입 프로그래밍 §  예제 2) 콜백함수 프로그래밍 Page 5
  • 6. 프로토타입 프로그래밍 (1/2) §  속성값, 즉 Key,Value를 기반으로 하는 프로그래밍 §  사용시기 : 중첩 If 문 또는 조건분기가 많아질경우 Page 6
  • 7. 프로토타입 프로그래밍 샘플 (1/2) §  샘플코드 Page 7 계속
  • 8. 프로토타입 프로그래밍 장점(1/2) §  코드를 읽기 편하다 §  조건문이 변경될때 메인로직을 건드리지 않아도 된다. -  데이터와 프로그램 로직의 분리 -  프로퍼티만 추가/수정/삭제만 하면 된다. Page 8
  • 9. 콜백함수 프로그래밍 사용법(2/2) Page 9 §  함수를 호출하였을때 내부처리 함수를 프로그래머가 지정하는 방식 §  메인로직이 같은데 전처리, 후처리 로직이 다를때 주로 이용 §  주로 공통모듈(사용자검색팝업,우편번호찾기팝업등)에서 많이 사용된다. §  ExtJS 코어에서도 많이 사용되고 있다. ex) Ext.Ajax.request, Ext.require 등..
  • 11. 그밖의 자바스크립트 메타프로그래밍 기법 Page 11 §  스코프(this)를 이용한 메타프로그래밍 §  || (OR 연산자)를 이용한 메타프로그래밍 §  기타 등
  • 12. 효율적인 Ext JS 패키지 설계와 클래스 네이밍 룰 Page 12
  • 13. 효율적인 패키지란? Page 13 §  패키지 구조만 보더라도 단번에 이해가 가능해야 한다. §  패키지 재사용성이 보장되어야 한다. §  에러가 났을때 원인을 손쉽게 찾을수 있어야 한다.
  • 14. 효율적인 패키지설계 방안(1/4) Page 14 §  원칙 1 : 상위 패키지는 하위패키지를 전부 포함해야 한다.
  • 15. 효율적인 패키지설계 방안(2/4) Page 15 §  원칙 2 : 하위패키지는 상위패키지 내용을 직접 호출해서는 안된다. -  상위패키지를 이용해서 로직처리가 필요한 경우에는 별도의 controller에서 제어해야한다.
  • 16. 효과적인 클래스 네이밍 룰(3/4) Page 16 §  원칙 3 : 네이밍 룰 -  컴포넌트를 포함시키는 클래스는 Main이라는 접미어를 붙여서 활용 -  컴포넌트 클래스는 Main 클래스에 모두 포함 시킴 -  패키지 경로를 접두어로 계속 붙여나간다.
  • 17. 효과적인 클래스 네이밍 룰(4/4) Page 17 §  원칙 4 : Current한 패키지 안에는 2개의 Main.js가 존재하면 안된다.
  • 18. 효율적인 패키지 설계와 네이밍 룰 - 결론 Page 18 §  수백본의 화면 개발 프로젝트시 개발 편의성이 증대된다 §  복잡한 화면이 담긴 화면 개발시 Main.js 파일만 참조하면 되는 편리성이 있다. §  객체명이 유니크 하므로 손쉽게 트래킹이 가능하다.
  • 19. 이벤트 링크드 패턴 프로그래밍 Page 19
  • 20. 이벤트 링크드 패턴이란? Page 20 §  이벤트기반 프로그래밍에서 한 단계 진화된 패턴 §  상호간의 종속성이 없는 코드를 작성을 위한 패턴 §  비즈니스 이벤트라는 개념을 도입 §  추상 이벤트의 도입 -  비즈니스 이벤트에 대한 조건분기 처리를 위한 개념
  • 22. 일반적인 컴포넌트 이벤트 내의 함수 구현 방식 Page 22 대분류 Select 중분류 Select 소분류 Select
  • 23. 이벤트 링크드 패턴을 위한 비즈니스 이벤트 개념 도입 §  이벤트 링크드 패턴에서 컴포넌트 이벤트들의 집합체 §  컴포넌트에서 발생한 이벤트들이 상호종속적으로 연결되는 단위 Page 23 대분류 사용자 클릭 중분류 사용자 클릭 소분류 사용자 클릭 이벤트 바인딩 이벤트 바인딩 이벤트 바인딩
  • 24. 비즈니스 이벤트 도입으로 인한 객체간 의존성 제거 Page 24 §  컴포넌트간의 기능상의 상호 의존성이 없는 코드작성이 가능 대분류 Select 중분류 Select 소분류 Select
  • 25. 이벤트 링크드 패턴의 장점 Page 25 §  업무파악이 매우 쉬어진다. -  비즈니스이벤트가 화면상에 이루어지는 모든 기능이다. §  코드유지보수가 매우 간결해진다. -  중간에 컴포넌트가 추가되거나 분기로직이이루어질경우 이벤트만 끼워넣고 연결만 다시해주면된다 §  코드안정성이높아진다. -  구조적으로사용자가 할수 있는 모든 액션에대해 코드가 간접적으로 구현(이벤트연결)이  되어있으 므로 버그가 줄어든다. §  중복코드가줄어든다.  -  중복이발생했다는 뜻은 대부분 이벤트 연결이나 이벤트구현이 잘못된 경우이다. 이로인해 좀더 구조 적으로 코드를 작성하므로 코드안정성이 높아진다.
  • 27. 이벤트 링크드 패턴 전체 Page 27
  • 28. 이벤트 링크드 패턴 결론 Page 28 §  어떤화면 어떤 요구사항이든 버그를 극한으로 줄일수 있는 프로그래밍 기법이다. §  코드가 코드 코멘트가 되어버린다. 코드 코멘트 쓸일이 거의 없어진다. §  개발시간과 테스트 시간감소 -  화이트보드에 단순하게 스케치 몇번으로 비즈니스 로직의 시뮬레이팅이 가능하다. -  화이트보드에 스케치한 비즈니스로직을 그대로 옮기면 된다.. §  화면설계와 보는시각자체가 아예 달라진다. -  단순하게 컴포넌트설계가 아니라 전체적인 이벤트 디자인에 염두하여 프로그래밍을 한다. -  패턴 특성상 체계적인 코딩이 아니면 구현이 불가능하다.
  • 29. 정리 §  자바스크립트 메타프로그래밍 §  패키지설계 및 네이밍룰 §  이벤트링크드 프로그래밍 Page 29