SlideShare a Scribd company logo
자바스크립트 양식입력
자동검사
엑스룰(XRule) Form Input Validator
2016. 06
엑스룰(XRule) 기본 사용법
필수입력이며 이메일형식
유효성 검사를 하고 싶은 INPUT 에 data-xr 속성만
정의하면 된다. 별도 자바스크립트 코드는 필요없음.
웹 어플리케이션 입력값 검증
어떤 웹 개발 프로젝트에서 입력양식(Form)이
100개가 있고 각 Form은 평균 10개의 Input을
가진다면 Front End 개발자는 1,000개의 Input에
대한 유효성 검증 코드를 작성해야 한다.
그러나 그 1,000개의 Input 중에는 중복된 검사
로직을 가지고 있는 Input들도 많이 있다.
그러한 불필요한 코드를 획기적으로 줄일 수
있는 방법이 있다. 바로 엑스룰(XRule) 이다.
HTML5 기본 제공 검사 엑스룰(XRule)
• HTML5 신규기능 이므로
HTML4 에서 동작하지 않음.
• 새로운 규칙 추가 어려움.
• 메시지 변경이 어려움.
• 브라우저마다 표현 UI가
다름.
• HTML4 이상 지원.
• 사용자 정의 규칙 지원.
• 다국어 메시지 지원.
• 사용자 정의 UI 지원.
• 원하는 시점에 유효성 검사.
• 상세한 디버깅 정보 제공.
HTML5 기본 vs 엑스룰(XRule)
엑스룰(XRule) 내장규칙
엑스룰(XRule) 사용자 정의 규칙
xr.put(규칙명, 메세지, 검사로직) 함수를 이용하면 새로운 규칙을 추가할 수 있음.
data-xr 속성에 새로 정의한 규칙을 사용.
위 예제는 ‘aaa’, ‘bbb’ 그리고 ‘ccc’ 만 허용하고 나머지는 오류 메세지 발생.
엑스룰(XRule) 다국어 지원
• 엑스룰(XRule)의 내장규칙의 메시지는 모두 영어
• xr.put() 함수를 이용하여 기존 메시지를 변경할 수 있음.
엑스룰(XRule) 사용자 정의 UI(1)
xr(target, callback); //함수의 프로토타입
일반적으로 callback을 생략하고 사용.
XRule은 기본적으로 오류 메세지를 alert() 을 이용하여
보여줌.
사용자의 입장에서 불편할 수 있고 디자인 미관상 투박할 수
있음.
callback을 이용하여 해결할 수 있음.
예제코드는 다음 슬라이드에...
엑스룰(XRule) 사용자 정의 UI(2)
예제코드의 실행결과는 다음 슬라이드에...
엑스룰(XRule) 사용자 정의 UI(3)
이것은 하나의 예제일 뿐,
xr(target, callback); //함수의 프로토타입
을 이용하면 다양하고 효율적인 방법으로 사용자로 하여금
입력값을 수정할 수 있도록 유도할 수 있다.
엑스룰(XRule) 홈페이지
http://xrule.net
보통 INPUT 필드 하나의 입력값 검증을 위하여 5~10줄 혹은 그 이상의
JAVASCRIPT 코드가 필요하다. if, else… 다양한 경우를 비교하여 적절한 메세지를
뿌려야 하기 때문이다.
그 작업은 개발속도를 느리게 하고 유지보수 비용을 높인다. 코드를
복사/붙여넣기 하다 보면 버그가 생기기도 하고 사용자 요구가 변경되면 여러
파일을 수정해야 하기 때문이다.
이제 그런 의미없는 단순반복 막노동과 이별할 시간이다. ^^

More Related Content

What's hot

Exception&log
Exception&logException&log
Exception&log
Nam Hyeonuk
 
javascript01
javascript01javascript01
javascript01
ChangHyeon Bae
 
자바 8
자바 8자바 8
자바 8
신 한
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1현찬 양
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터
Dong Chan Shin
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2현찬 양
 
ES6-01
ES6-01ES6-01
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1현찬 양
 
자바스크립트.
자바스크립트.자바스크립트.
자바스크립트.
Deoc Jin
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2현찬 양
 
Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약
Nam Hyeonuk
 
Hacosa js study 2주차
Hacosa js study 2주차Hacosa js study 2주차
Hacosa js study 2주차
Seong Bong Ji
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
Dong Chan Shin
 
Effective c++ 정리 1~2
Effective c++ 정리 1~2Effective c++ 정리 1~2
Effective c++ 정리 1~2
Injae Lee
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
Injae Lee
 
호이스팅, 클로저, IIFE
호이스팅, 클로저, IIFE호이스팅, 클로저, IIFE
호이스팅, 클로저, IIFE
ChangHyeon Bae
 

What's hot (18)

Exception&log
Exception&logException&log
Exception&log
 
javascript01
javascript01javascript01
javascript01
 
자바 8
자바 8자바 8
자바 8
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
 
ES6-01
ES6-01ES6-01
ES6-01
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
자바스크립트.
자바스크립트.자바스크립트.
자바스크립트.
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
 
Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약
 
Hacosa js study 2주차
Hacosa js study 2주차Hacosa js study 2주차
Hacosa js study 2주차
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
 
Effective c++ 정리 1~2
Effective c++ 정리 1~2Effective c++ 정리 1~2
Effective c++ 정리 1~2
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
 
호이스팅, 클로저, IIFE
호이스팅, 클로저, IIFE호이스팅, 클로저, IIFE
호이스팅, 클로저, IIFE
 
What’s new in c++11
What’s new in c++11What’s new in c++11
What’s new in c++11
 

Similar to 엑스룰(XRule) 자바스크립트 양식 입력 자동검사

About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
흥배 최
 
Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트
Jin wook
 
C Language For Arduino
C Language For ArduinoC Language For Arduino
C Language For Arduino
영욱 김
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
codercay
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
NAVER D2
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
Jongin Lee
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
Park Jonggun
 
[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP
AnselmKim
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
JinKyoungHeo
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
영석 조
 
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeJavascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Young-Beom Rhee
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여
Jin wook
 
Java script
Java scriptJava script
Java script
영남 허
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
Park Jonggun
 
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
SangHoon Han
 
Linq
LinqLinq
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
Yong Joon Moon
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XpressEngine
 

Similar to 엑스룰(XRule) 자바스크립트 양식 입력 자동검사 (20)

C++ api design 품질
C++ api design 품질C++ api design 품질
C++ api design 품질
 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
 
Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트
 
C Language For Arduino
C Language For ArduinoC Language For Arduino
C Language For Arduino
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
7 8 1
7 8 17 8 1
7 8 1
 
[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
 
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeJavascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여
 
Java script
Java scriptJava script
Java script
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
 
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
 
Linq
LinqLinq
Linq
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 

엑스룰(XRule) 자바스크립트 양식 입력 자동검사

  • 2. 엑스룰(XRule) 기본 사용법 필수입력이며 이메일형식 유효성 검사를 하고 싶은 INPUT 에 data-xr 속성만 정의하면 된다. 별도 자바스크립트 코드는 필요없음.
  • 3. 웹 어플리케이션 입력값 검증 어떤 웹 개발 프로젝트에서 입력양식(Form)이 100개가 있고 각 Form은 평균 10개의 Input을 가진다면 Front End 개발자는 1,000개의 Input에 대한 유효성 검증 코드를 작성해야 한다. 그러나 그 1,000개의 Input 중에는 중복된 검사 로직을 가지고 있는 Input들도 많이 있다. 그러한 불필요한 코드를 획기적으로 줄일 수 있는 방법이 있다. 바로 엑스룰(XRule) 이다.
  • 4. HTML5 기본 제공 검사 엑스룰(XRule) • HTML5 신규기능 이므로 HTML4 에서 동작하지 않음. • 새로운 규칙 추가 어려움. • 메시지 변경이 어려움. • 브라우저마다 표현 UI가 다름. • HTML4 이상 지원. • 사용자 정의 규칙 지원. • 다국어 메시지 지원. • 사용자 정의 UI 지원. • 원하는 시점에 유효성 검사. • 상세한 디버깅 정보 제공. HTML5 기본 vs 엑스룰(XRule)
  • 6. 엑스룰(XRule) 사용자 정의 규칙 xr.put(규칙명, 메세지, 검사로직) 함수를 이용하면 새로운 규칙을 추가할 수 있음. data-xr 속성에 새로 정의한 규칙을 사용. 위 예제는 ‘aaa’, ‘bbb’ 그리고 ‘ccc’ 만 허용하고 나머지는 오류 메세지 발생.
  • 7. 엑스룰(XRule) 다국어 지원 • 엑스룰(XRule)의 내장규칙의 메시지는 모두 영어 • xr.put() 함수를 이용하여 기존 메시지를 변경할 수 있음.
  • 8. 엑스룰(XRule) 사용자 정의 UI(1) xr(target, callback); //함수의 프로토타입 일반적으로 callback을 생략하고 사용. XRule은 기본적으로 오류 메세지를 alert() 을 이용하여 보여줌. 사용자의 입장에서 불편할 수 있고 디자인 미관상 투박할 수 있음. callback을 이용하여 해결할 수 있음. 예제코드는 다음 슬라이드에...
  • 9. 엑스룰(XRule) 사용자 정의 UI(2) 예제코드의 실행결과는 다음 슬라이드에...
  • 10. 엑스룰(XRule) 사용자 정의 UI(3) 이것은 하나의 예제일 뿐, xr(target, callback); //함수의 프로토타입 을 이용하면 다양하고 효율적인 방법으로 사용자로 하여금 입력값을 수정할 수 있도록 유도할 수 있다.
  • 11. 엑스룰(XRule) 홈페이지 http://xrule.net 보통 INPUT 필드 하나의 입력값 검증을 위하여 5~10줄 혹은 그 이상의 JAVASCRIPT 코드가 필요하다. if, else… 다양한 경우를 비교하여 적절한 메세지를 뿌려야 하기 때문이다. 그 작업은 개발속도를 느리게 하고 유지보수 비용을 높인다. 코드를 복사/붙여넣기 하다 보면 버그가 생기기도 하고 사용자 요구가 변경되면 여러 파일을 수정해야 하기 때문이다. 이제 그런 의미없는 단순반복 막노동과 이별할 시간이다. ^^