Web Client/JavaScript2012. 10. 30. 23:19

Javascript로 객체지향을 표현하는게 한계가 있기는 하지만 캡슐화가 가지는 득이 상당하므로 가능한 클래스를 만들어 사용함도 나쁘지 않을듯 합니다. 첨부한 예제에는 private, public, static 을 어떻게 표현해야할지 잘 나와 있습니다.


[ js/MyClass.class.js ]


/**

 * 나만의 클래스 구조를 만들어본다

 * 

 * [참고]내부 변수는 앞에 _ 를 붙여주는 것이 좋다

 */

var MyClass = (function() {

// 생성자

var Class = function(initValue) {

// #################### 생성자 ####################

(function initialize() {

increaseCount();

})();

// #################### 변수 선언 ####################


// public 변수

this.id = null;

// private 변수

var _name = null;

var _initValue = initValue;

// #################### 메쏘드 선언 ####################

// private 메쏘드

var myPrivate = function() {

// private business code here

};

// public 메쏘드

this.getId = function() {

return this.id;

};

this.getName = function() {

return _name;

};

this.setName = function(name) {

_name = name;

};

this.getInitValue = function() {

return _initValue;

};

};

// #################### static 변수 및 메쏘드 ####################

// private static 변수

var totalCount = 0;

// public static 변수

Class.MAX_COUNT = 10;

// private static 메쏘드

var increaseCount = function() {

totalCount++;

};

// public static 메쏘드

Class.getTotalCount = function() {

return totalCount;

};

// #################### 참고사항 ####################

// [참고] prototype을 사용한 public 메쏘드 선언(객체간 공유하는 메쏘드)

Class.prototype = {

getMessage : function() {

return ("My id is " + this.getId() + "!!");

}

};


return Class;

})();



[ MyClassTest.html ]


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>

<head>

<title>MyClass.class.js 테스트</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script type="text/javascript" src="js/MyClass.class.js"></script>


<script type="text/javascript">

function test() {

var obj1 = new MyClass();

obj1.id = "user1";

obj1.setName("사용자1");

alert("obj1 : " + 

"id=" + obj1.getId() + "\n" + 

"name=" + obj1.getName() + "\n" + 

"count=" + MyClass.getTotalCount() + "\n" +

"message=" + obj1.getMessage() + "\n" +

"");

var obj2 = new MyClass('initValue');

obj2.id = "user2";

obj2.setName("사용자2");

alert("obj2 : " + 

"obj2.getId()=" + obj2.getId() + "\n" + 

"obj2.id=" + obj2.id + "\n" +

"obj2.getName()=" + obj2.getName() + "\n" + 

"obj2.name=" + obj2.name + "\n" +

"MyClass.getTotalCount()=" + MyClass.getTotalCount() + "\n" +

"MyClass.totalCount=" + MyClass.totalCount + "\n" +

"obj2.totalCount=" + obj2.totalCount + "\n" +

"MyClass.MAX_COUNT=" + MyClass.MAX_COUNT + "\n" +

"obj2.MAX_COUNT=" + obj2.MAX_COUNT + "\n" +

"obj2.getMessage()=" + obj2.getMessage() + "\n" +

"obj2.getInitValue()=" + obj2.getInitValue() + "\n" +

"");

}

</script>

</head>

<body>

<input type="button" value="test" onclick="test()"/>

</body>

</html>



자자.. 위와 같은 방법으로 자신만의 라이브러리를 구축한다면 관리하기도 편하고 충돌도 피할 수 있겠죠?

저도 시간 될때마다 유용한 클래스를 하나씩 만들어봐야겠습니다.


'Web Client > JavaScript' 카테고리의 다른 글

javascript 로 만든 Map - JMap  (0) 2011.12.28
Posted by 꼰스
Web Client/jQuery2012. 4. 9. 18:08

ServerSide 에서 JSON 으로 응답이 내려오면 제일 편하겠지만 기존의 솔루션이 XML 로 되어있으니 클라이언트에서 편하게 사용하기 위해 XML 을 객체화하려고 합니다만.. jQuery 로 XML 을 파싱해본적이 없는 저라 대략 난감하네요.

이쯤에서 문서 찾아가며 파싱 한번 제대로 해보렵니다.

 

http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery

 

죽 읽어가면서 후딱 해치워야겠습니다.. 그려~~

Posted by 꼰스
Web Client/jQuery2012. 1. 30. 01:34
jQuery 쿠키 플러그인을 소개한다.

1. 다운로드

https://github.com/carhartl/jquery-cookie 에서 플러그인을 다운받는다.

2. 페이지 상단에 플러그인 추가

<script language="javascript" SRC="jquery.cookie.js" type="text/javascript"></script>

3. 예제

-----------------------------------------------------------------

// 쿠기 셋팅 (맨 마지만 인자인 옵션은 선택적임)
$.cookie("cookieName", "cookieValue", {
    expires : 10, // 10일 동안 유효
    path : "/",
    domain : "ggons.com",
    srcure : true // or false
});

// 쿠키값 얻기
var cookieValue = $.cookie("cookieName");

// 쿠키 삭제 (생성시 path 옵션을 지정했다면 삭제시도 동일하게 지정해줘야함)
$.cookie("cookieName", null);

-----------------------------------------------------------------

쉬운것도 적어놓자.. 이제 주메모리가 딸리는 40대다... ㅠ.ㅠ
Posted by 꼰스
Web Client/jQuery2012. 1. 30. 00:18
jQuery의 힘은 역시 다양한 Plug-In 이 아닐까한다. 필요하다 싶은 기능을 찾으면 거의 있다는 것이 놀라울 따름이다.

Javascript 객체를 JSON 으로 변환하기 위해서는 jQuery 플러그인이 필요하다.
http://code.google.com/p/jquery-json 에 방문하여 jquery.json-2.3.min.js 를 다운받고 페이지 상단에 추가한다

<script language="javascript" src="jquery.json-2.3.min.js" type="text/javascript"></script>

사용법은 매우 간단하다..

----------------------------------------------------------------------
// Create test user Object
var user = new Object();
user.name = "gildong";
user.age = 18;

// Object to JSON
var userJSON = $.toJSON(user);
alert("userJSON = " + userJSON); // { name : "gildong", age : 18 }

// JSON to Object
var userObj = $.evalJSON(userJSON);
alert("userObj.name = " + userObj.name); // gildong
alert("userObj.age = " + userObj.age); // 18
----------------------------------------------------------------------

포스팅 하기엔 너무 간단한 내용인가보다.. ^.^

'Web Client > jQuery' 카테고리의 다른 글

jQuery 로 XML 파싱하기  (0) 2012.04.09
jQuery에서 Cookie 사용하기  (0) 2012.01.30
jQuery에서 폼 검증하기 (Form Validation)  (0) 2012.01.20
JQuery 링크모음  (0) 2012.01.04
Posted by 꼰스
Web Client/jQuery2012. 1. 20. 01:13

내가 jQuery 를 이용하는 단 한가지의 이유는... 날 믿지 못하기 때문이다. ^^
나보다 훨씬 잘난 사람들이 공들여 만들고 우리 팀원보다 훨씬 많은 사람들이 QA를 진행해준 라이브러가 지천에 널린 세상이다. 내가 만든것이 남이 만든것보다 우월하단 자신감도 필요하겠지만 업무의 효율성을 위해 범용적인 기능구현을 하고자 할때 자체 개발에 앞서 적절한 오픈소스 라이브러리가 있는가를 먼저 찾아보는 지혜가 필요하겠다. 줏대없어 보일지 모르겠으나 경험상 이 판단은 대부분의 경우 옳은 판단이 될것이라 믿는다.

서설만 길고 본문내용은 별것 없을것 같다. 폭주하는 업무에 지금 난 매우 피곤하니까~~
할일이 쌓여있고 배울것도 많지만 시간이 부족한 요즘 좋은 것을 찾아 잘 활용하는 것도 능력이라 자위하며
정보가 어디에 있는지 알고만 있자는 취지하에 링크만 죽 걸어놓을란다.. 바로 내일 써야하니깐~~~

jQuery Form Validator 플러그인에 대한 정보는 아래와 같다.

- jQuery Form Validation Plugin 폼 검증 플러그인 간단 사용법 By 녹풍
- http://docs.jquery.com/Plugins/Validation

다운로드는 jQuery plugin: Validation 홈페이지에서 받을 수 있겠다.

녹풍님 홈페에 나온 예제를 파일로 정리해봤다..

즐거운 검증 되시길~~~


'Web Client > jQuery' 카테고리의 다른 글

jQuery 로 XML 파싱하기  (0) 2012.04.09
jQuery에서 Cookie 사용하기  (0) 2012.01.30
jQuery에서 JSON 사용하기 (JSON to Object, Object to JSON)  (2) 2012.01.30
JQuery 링크모음  (0) 2012.01.04
Posted by 꼰스
Web Client/jQuery2012. 1. 4. 23:59
친구가 좋다길래 시간날때마다 한번 읽어보려고 모아본다..

[jQuery Main Page]

- http://jquery.com/

[jQuery Tip and Tech]

- http://devx.tistory.com/category/◈%20Framework/★%20jQuery

[jQuery 강좌]

SQLER.COM
[jQuery강좌] 1. 웹 개발자를 위한 jQuery 기본이해 - http://www.sqler.com/378488
[jQuery강좌] 2. jQuery를 이용한 HTML DOM 접근 - 기본 셀렉터 (1) - http://www.sqler.com/382391
[jQuery강좌] 3. jQuery를 이용한 HTML DOM 접근 - 기본 셀렉터 (2) - http://www.sqler.com/382519
[jQuery강좌] 4. jQuery Selector - 속성(Attribute) - http://www.sqler.com/384932
[jQuery강좌] 5. jQuery Selector - DOM 계층(Hierarchy)을 이용한 요소 접근 (1) - http://www.sqler.com/386192
[jQuery강좌] 6. jQuery Selector - DOM 계층(Hierarchy)을 이용한 요소 접근 (2) - http://www.sqler.com/387425
[jQuery강좌] 7. jQuery Filter - 기본필터(Basic Filter) - http://www.sqler.com/387548
[jQuery강좌] 8. jQuery Filter - 폼 필터(Form Filter) - http://www.sqler.com/387561
[jQuery강좌] 9. jQuery Filter - 자식필터(Child Filter) - http://www.sqler.com/387584
[jQuery강좌] 10. jQuery Traverse - Filtering - http://www.sqler.com/387660
[jQuery강좌] 11. jQuery Traverse - Miscellaneous Traversing - http://www.sqler.com/387677
[jQuery강좌] 12. jQuery Traverse - Tree Traversal - http://www.sqler.com/387736
[jQuery강좌] 13. jQuery Core - http://www.sqler.com/387795
[jQuery강좌] 14. jQuery CSS - 스타일 관련 메서드에 대하여- http://www.sqler.com/387865
[jQuery강좌] 15. jQuery Attribute - 요소의 속성 관련 메서드에 대하여 - http://www.sqler.com/387878
[jQuery강좌] 16. jQuery Form API - 폼 지원 메서드에 대하여 - http://www.sqler.com/387921
[jQuery강좌] 17. jQuery Event - 이벤트 지원 메서드 - http://www.sqler.com/390796
[jQuery강좌] 18. jQuery Event - bind() 메서드 - http://www.sqler.com/390805
[jQuery강좌] 19. jQuery Event - 이벤트에 생명을~ - http://www.sqler.com/394534
[jQuery강좌] 20. jQuery Performance - http://www.sqler.com/395258

IBM
http://www.ibm.com/developerworks/kr/library/wa-jquery1/index.html
http://www.ibm.com/developerworks/kr/library/wa-jquery2/index.html

http://www.ibm.com/developerworks/kr/library/x-ajaxjquery.html
http://www.ibm.com/developerworks/kr/library/wa-aj-overhaul1/index.html
http://www.ibm.com/developerworks/kr/library/wa-aj-overhaul2/index.html

[jQuery UI]

http://www.jeasyui.com/index.php


요즘 너무 공부안하고 아는 지식만을 파먹고 살지 않았나 싶다..
시간될때 문서 좀 읽으면서 살자.. 응?
Posted by 꼰스
Web Client/HTML52011. 12. 29. 00:37
앞으로 웹의 대새가 될거라는 주장이 있는 HTML5.
죽 지켜봐야 할 일이지만 개념파악 정도 하고 있다고 해서 나쁠것 없다는 판단에 링크 한번 모아봅니다.

[문학이 님의 블로그 - HTML5 Tip & Tech]
http://blog.naver.com/seogi1004/110095812775 - (1) 기초
http://blog.naver.com/seogi1004/110096142093 - (2) Drag & Drop
http://blog.naver.com/seogi1004/110096740941 - (3) Web Database
http://blog.naver.com/seogi1004/110098886402 - (4) Server Sent Events, 채팅 구현하기
http://blog.naver.com/seogi1004/110102214238 - (5) Web Forms In Cross Browser

읽는대로 링크 업데이트 중..

Posted by 꼰스
Web Client/JavaScript2011. 12. 28. 23:18
Javascript 에서 Java의 Map 과 유사한 작업을 하려면 Object 를 쓰시죠?
하지만 유용한 메쏘드가 없어 무척 불편했던 기억이 납니다.
약간의 여유가 생겨 Java의 Map 인터페이스와 유사한 클래스를 만들어 봤습니다.


[지원하는 메쏘드]

- get(key):object - 지정된 key 에 해당하는 value 를 얻는다
- remove(key):void - 지정된 key 에 해당하는 value 를 삭제한다
- keys():array - 전체 Key 값들을 배열로 얻는다
- values():array - 맵의 전체 값들을 배열로 얻는다
- containsKey(key):boolean - key 가 포함되어 있다면 true 를 반환한다.
- isEmpty():boolean - 맵이 비어있다면 true 를 반환한다.
- clear():void - 맵을 비운다
- size():int - 맵을 크기를 얻는다
- getObject():object - MapData Object 를 얻는다

[사용예]

<script language=javascript src="JMap.js"></script>
<script language=javascript>
<!--
    var map = new JMap();
    map.put("a", "11");
    map.put("b", "22");
    map.put("c", "33");
  
    alert("map.size()=" + map.size());
    alert("map.isEmpty()=" + map.isEmpty());
    alert("map.get('a')=" + map.get('a'));
    alert("map.containsKey('a')=" + map.containsKey('a'));
    map.remove('a');
    alert("map.remove('a')");
    alert("map.containsKey('a')=" + map.containsKey('a'));
    alert("map.get('a')=" + map.get('a'));
    alert("map.keys()=" + map.keys());
    alert("map.values()=" + map.values());
    map.clear();
    alert("map.clear()");
    alert("map.size()=" + map.size());
    alert("map.getObject()=" + map.getObject());
-->
</script>

첨부파일을 다운 받으신 후 사용하시면 됩니다.

Posted by 꼰스