SlideShare a Scribd company logo
1 of 16
전자정부 프레임워크
대시 보드 – JSON View 예제.(+RequireJS)
EMS 2 Team
진형은 사원
1. RequireJS 간단한 구조.
2. RequireJS를 활용한 Select 예제.
3. 구현한 Select기능을 모듈화.
1. RequireJS (1)
• RequireJS를 사용하는 이유..
: 대시보드의 경우, 화면을 담당하는 html과 순수 JS위주로 되어있다고 합니다.
즉, JS파일 내에서 다른 JS를 사용해야할 경우가 있습니다.
(ex jQuery사용, Ajax 호출, 암호화, 등등..)
이처럼 다양한 JS 모듈을 활용해야 할 경우, 의존성관리가 되지 않는 문제가
있었습니다. 이 때문에 Require JS를 사용하게 되었습니다.
또한, 자주 사용되는 JS(비즈니스 로직)을 모듈화하여,
추후에 재사용할 수 있도록 “사용자 모듈화”도 가능합니다.
예제는 requireJS 사용법과 “사용자모듈화” 이 두 부분을 위주로 작성하였습니다.
1. RequireJS (1)
Main.js
(requireJS setting)
Jquery.js
(Module)
Cryptograph.js
(Module)
Json2.js
(Module)
Require.js
Json2.js
(Module)
• 모듈 경로 지정 및 각 모듈의 의존성을 정의.
• 자주 사용하는 경우, 미리 로드하여 초기화
작업을 할 수 있다.
사용자정의.js
(Module)
1. RequireJS – main.js (2)
• Requirejs 구성환경 설정.
• baseUrl
: 기본적인 모듈 경로 지정
• Paths
: 사용할 모듈 경로 지정.
• Shim
: 모듈별 의존성 지정.
• Requirejs
최초 가져올 모듈을 정의,
초기화 함수 지정 가능.
1. RequireJS 간단한 구조.
2. RequireJS를 활용한 Select 예제.
3. 구현한 Select기능을 모듈화.
2. 예제화면.
src/main/webapp/htmlview
• Require([“사용하고자하는 모듈”],
• Sample.js 안에서
사용할 모듈(ex jquery, 암호화..)들을
미리 load하며, 초기화 기능을 정의합니다.
• 기능 구현의 경우, 추후에 html에서
접근 가능형태로 제공 해야하기 때문에,
객체 형식으로 작성합니다.
(자세한 내용은 3번에서 자세히 설명.)
2. Sample.js (1)
2. Sample.js (2)
1) 조회할 Select Query를 가져옵니다.
2) 암호화 모듈을 통해 쿼리를 암호화.
3) 암호화된 쿼리를 parameter형식으로 변환
* “_”문제 등으로 변환처리.
*$.param사용시 JSON형태로 인자값을 넣어줘
4) Jquery의 Ajax를 사용해 요청.
5) 요청이 정상적으로 성공할 경우, 결과값을
JSON 파싱하여 View(대시보드) 구현.
1
2
3
4
5
2. Sample.js (3)
• 작성된 class를, new연산자를 통해 생성합니다.
• 브라우저에서 최상위(Global)개념인
Window 객체에 생성한 객체를 넣고,
이후 html에서 Window.정의한객체.정의한메소드 를 통해 접근가능합니다.
2. main.html
src/main/webapp/htmlview/main.html
1. RequireJS 간단한 구조.
2. RequireJS를 활용한 Select 예제.
3. 구현한 Select기능을 모듈화.
3. sampleModule.js (1)
• 첫번째 예제와 달리, 모듈을 만드는 경우
Require가 아니라 define을 통해서 정의합니다.
• 의존성 형식은 동일합니다
[“사용할모듈”],function(로드될 모듈변수)
3. sampleModule.js (2)
1
2
3
4
5
• 세부기능은 위에서 설명과 동일하므로
• 생략하겠습니다.
3. sampleModule.js (3)
• sampleModule에서 정의한 객체를 반환합니다.
sampleModule.js
sampleModuleLoader.js
• sampleModuleLoader에서는
require를 이용하여 사용자 정의 모듈을
로드한 후 마찬가지로 html접근을 위해
Window객체에 추가합니다.
*재밋는건, 하위모듈(sampleModule)에서
상위모듈이 로드한 모듈(jQuery..)
역시 사용 가능합니다.
3. sampleModule.js (3)
src/main/webapp/htmlview/mainUsingModule.html

More Related Content

What's hot

유엔진 BPM 커스터마이징 개발 방법
유엔진 BPM 커스터마이징 개발 방법유엔진 BPM 커스터마이징 개발 방법
유엔진 BPM 커스터마이징 개발 방법uEngine Solutions
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)beom kyun choi
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)DK Lee
 
Servlet Architecture
Servlet ArchitectureServlet Architecture
Servlet ArchitectureJU Chae
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)Yu Yongwoo
 
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료beom kyun choi
 
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)DK Lee
 
Node.js + Express + MongoDB
Node.js + Express + MongoDBNode.js + Express + MongoDB
Node.js + Express + MongoDBVincent Park
 

What's hot (11)

유엔진 BPM 커스터마이징 개발 방법
유엔진 BPM 커스터마이징 개발 방법유엔진 BPM 커스터마이징 개발 방법
유엔진 BPM 커스터마이징 개발 방법
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
 
SQLite Example
SQLite ExampleSQLite Example
SQLite Example
 
Servlet Architecture
Servlet ArchitectureServlet Architecture
Servlet Architecture
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)
 
Mvc pattern
Mvc patternMvc pattern
Mvc pattern
 
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
2007년 제8회 JCO 컨퍼런스 POJO 프로그래밍 발표 자료
 
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
 
Node.js + Express + MongoDB
Node.js + Express + MongoDBNode.js + Express + MongoDB
Node.js + Express + MongoDB
 
(JPA 엔티티 매니저)JPA 기초강좌, 엔티티 매니저. 엔티티 매니저팩토리
(JPA 엔티티 매니저)JPA 기초강좌, 엔티티 매니저. 엔티티 매니저팩토리(JPA 엔티티 매니저)JPA 기초강좌, 엔티티 매니저. 엔티티 매니저팩토리
(JPA 엔티티 매니저)JPA 기초강좌, 엔티티 매니저. 엔티티 매니저팩토리
 

Viewers also liked

Lazy angular w/ webpack
Lazy angular w/ webpackLazy angular w/ webpack
Lazy angular w/ webpackRich Snapp
 
Angular 1 + es6
Angular 1 + es6Angular 1 + es6
Angular 1 + es6장현 한
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기sung yong jung
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 
혼자서 프로젝트 수행하기
혼자서 프로젝트 수행하기혼자서 프로젝트 수행하기
혼자서 프로젝트 수행하기JeongHun Byeon
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택  ES6 & ReactFront-End 개발의 괜찮은 선택  ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React지수 윤
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기JeongHun Byeon
 

Viewers also liked (8)

RequireJS
RequireJSRequireJS
RequireJS
 
Lazy angular w/ webpack
Lazy angular w/ webpackLazy angular w/ webpack
Lazy angular w/ webpack
 
Angular 1 + es6
Angular 1 + es6Angular 1 + es6
Angular 1 + es6
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
혼자서 프로젝트 수행하기
혼자서 프로젝트 수행하기혼자서 프로젝트 수행하기
혼자서 프로젝트 수행하기
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택  ES6 & ReactFront-End 개발의 괜찮은 선택  ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기
 

Similar to RequireJS를 이용한 모듈관리.

Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015uEngine Solutions
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322jylee6977
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web AnimationsChang W. Doh
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XpressEngine
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
HTML5의 web worker
HTML5의 web workerHTML5의 web worker
HTML5의 web workerYongho Ji
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해Dong Hyun Kim
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 uEngine Solutions
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용중선 곽
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기Jeado Ko
 
Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2plusperson
 
E-Gov 기반 Mobile Web Friendly 개발
E-Gov 기반 Mobile Web Friendly 개발E-Gov 기반 Mobile Web Friendly 개발
E-Gov 기반 Mobile Web Friendly 개발JavaCommunity.Org
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 
11장 시스템
11장 시스템11장 시스템
11장 시스템kidoki
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 

Similar to RequireJS를 이용한 모듈관리. (20)

Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
 
Java script
Java scriptJava script
Java script
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
HTML5의 web worker
HTML5의 web workerHTML5의 web worker
HTML5의 web worker
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2Daejeon IT Developer Conference Struts2
Daejeon IT Developer Conference Struts2
 
Web_07_Rails Advanced
Web_07_Rails AdvancedWeb_07_Rails Advanced
Web_07_Rails Advanced
 
E-Gov 기반 Mobile Web Friendly 개발
E-Gov 기반 Mobile Web Friendly 개발E-Gov 기반 Mobile Web Friendly 개발
E-Gov 기반 Mobile Web Friendly 개발
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
React js 1
React js   1React js   1
React js 1
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
11장 시스템
11장 시스템11장 시스템
11장 시스템
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 

RequireJS를 이용한 모듈관리.

  • 1. 전자정부 프레임워크 대시 보드 – JSON View 예제.(+RequireJS) EMS 2 Team 진형은 사원
  • 2. 1. RequireJS 간단한 구조. 2. RequireJS를 활용한 Select 예제. 3. 구현한 Select기능을 모듈화.
  • 3. 1. RequireJS (1) • RequireJS를 사용하는 이유.. : 대시보드의 경우, 화면을 담당하는 html과 순수 JS위주로 되어있다고 합니다. 즉, JS파일 내에서 다른 JS를 사용해야할 경우가 있습니다. (ex jQuery사용, Ajax 호출, 암호화, 등등..) 이처럼 다양한 JS 모듈을 활용해야 할 경우, 의존성관리가 되지 않는 문제가 있었습니다. 이 때문에 Require JS를 사용하게 되었습니다. 또한, 자주 사용되는 JS(비즈니스 로직)을 모듈화하여, 추후에 재사용할 수 있도록 “사용자 모듈화”도 가능합니다. 예제는 requireJS 사용법과 “사용자모듈화” 이 두 부분을 위주로 작성하였습니다.
  • 4. 1. RequireJS (1) Main.js (requireJS setting) Jquery.js (Module) Cryptograph.js (Module) Json2.js (Module) Require.js Json2.js (Module) • 모듈 경로 지정 및 각 모듈의 의존성을 정의. • 자주 사용하는 경우, 미리 로드하여 초기화 작업을 할 수 있다. 사용자정의.js (Module)
  • 5. 1. RequireJS – main.js (2) • Requirejs 구성환경 설정. • baseUrl : 기본적인 모듈 경로 지정 • Paths : 사용할 모듈 경로 지정. • Shim : 모듈별 의존성 지정. • Requirejs 최초 가져올 모듈을 정의, 초기화 함수 지정 가능.
  • 6. 1. RequireJS 간단한 구조. 2. RequireJS를 활용한 Select 예제. 3. 구현한 Select기능을 모듈화.
  • 8. • Require([“사용하고자하는 모듈”], • Sample.js 안에서 사용할 모듈(ex jquery, 암호화..)들을 미리 load하며, 초기화 기능을 정의합니다. • 기능 구현의 경우, 추후에 html에서 접근 가능형태로 제공 해야하기 때문에, 객체 형식으로 작성합니다. (자세한 내용은 3번에서 자세히 설명.) 2. Sample.js (1)
  • 9. 2. Sample.js (2) 1) 조회할 Select Query를 가져옵니다. 2) 암호화 모듈을 통해 쿼리를 암호화. 3) 암호화된 쿼리를 parameter형식으로 변환 * “_”문제 등으로 변환처리. *$.param사용시 JSON형태로 인자값을 넣어줘 4) Jquery의 Ajax를 사용해 요청. 5) 요청이 정상적으로 성공할 경우, 결과값을 JSON 파싱하여 View(대시보드) 구현. 1 2 3 4 5
  • 10. 2. Sample.js (3) • 작성된 class를, new연산자를 통해 생성합니다. • 브라우저에서 최상위(Global)개념인 Window 객체에 생성한 객체를 넣고, 이후 html에서 Window.정의한객체.정의한메소드 를 통해 접근가능합니다.
  • 12. 1. RequireJS 간단한 구조. 2. RequireJS를 활용한 Select 예제. 3. 구현한 Select기능을 모듈화.
  • 13. 3. sampleModule.js (1) • 첫번째 예제와 달리, 모듈을 만드는 경우 Require가 아니라 define을 통해서 정의합니다. • 의존성 형식은 동일합니다 [“사용할모듈”],function(로드될 모듈변수)
  • 14. 3. sampleModule.js (2) 1 2 3 4 5 • 세부기능은 위에서 설명과 동일하므로 • 생략하겠습니다.
  • 15. 3. sampleModule.js (3) • sampleModule에서 정의한 객체를 반환합니다. sampleModule.js sampleModuleLoader.js • sampleModuleLoader에서는 require를 이용하여 사용자 정의 모듈을 로드한 후 마찬가지로 html접근을 위해 Window객체에 추가합니다. *재밋는건, 하위모듈(sampleModule)에서 상위모듈이 로드한 모듈(jQuery..) 역시 사용 가능합니다.