728x90















 
jQuery 에 대한 기본적인 문법적 이해가 있다는 가정하에 문서를 작성합니다.

약 1년간 jQuery를 사용하면서 jQuery가 제공하는 자바스크립트 사용의 편의성에도 매우 감탄했지만, 정말 매력적이었던 부분은 플러그인에 대한 지원이었다.

한동안 남들이 만들어놓은 플러그인 들을 고맙게 가져다 썼지만, 어느 시점에서 부터 요구사항에 맞는 플러그인을 찾기가 쉽지 않았다. (이는 우리 사이트에서 jQuery를 필요로 하는 부분이 그만큼 많아졌다는 것에 대한 반증이기도 하다.) 

요구사항에 맞춰서 UI를 만들다 보니 기존에 사용하던 플러그인을 대충 수정하면서 사용했지만, 점점 더 높아지는 요구사항에 아예 플러그인을 새로 만드는게 더 나아보였다.

겸사겸사 간단하게 플러그인을 만드는 방법을 작성해볼까 한다.

기본적으로 jQuery를 사용함에 있어서 사용하는 플러그인의 타입은 크게 아래 두 종류 이다.
  1. $('div').plugin_name();
  2. $.plugin_name();
1번은 셀렉터를 이용하여 메소드체인을 생성할 수 있고, 2번은 그냥 function 이다.


1. $('div').plugin_name(); 를 만들어보자.
jquery.test-plugin.js
$.fn.Alert = function() {
	return alert(this[0].id);
}





div tag를 셀렉터로 하여 정보를 출력하는 간단한 플러그인이다.
위와 같이 작성하면 간단하게 끝난다.

위 메소드에서 두가지를 살펴볼 수 있는데, 하나는 this 이고, 나머지 하나는 그 this를 리턴하는 것이다.
this는 예상하는대로 div 엘리먼트에 대한 참조이고, this를 리턴하는 이유는 메소드체인을 사용하기 위함이다.


this 에 대한 프로퍼티를 확인해보면, 할당된 Method 들이 있고, 이 div 엘리먼트에 대한 프로퍼티를 담고있는 배열( [0] )이 있다. 
div 엘리먼트가 하나라고 가정할 수 없으니, 배열로 엘리먼트를 구분하는 것이다. (현재는 html 상의 div가 한개 뿐이므로, 배열도 한개만 나온다. div 엘리먼트가 여러개라면 배열 또한 그에 상응하게 나타난다.)

jquery의 강점중 하나는 메소드 체인을 사용할 수 있다는 것인데, 예를 들어서 $("div").Alert().fadeOut(); 과 같은 코드를 사용할 수 있다는 것이다.

메소드 체인이 끊어지지 않게 하기 위해서는 jquery 객체 (여기서는 this) 가 리턴되어 유지되는 것이 중요하다.

$.fn.Alert = function() {
	return this.each(function(i,k) {
		alert(k.id);
	});
}
그리고 div 와 같은 엘리먼트들은 배열(오브젝트) 이기 때문에 each 와 같은 순환문을 통하여 "사용하고 리턴될 수" 있어야 한다.


2. $.plugin_name(); 를 만들어보자.
jquery.test-plugin2.js
$.Alert = function() {
	alert("plugin-test");
}

1번과 비교해서 fn 부분이 제거되고, return 되는 부분도 없다. 그냥 일반적인 함수 작성하듯 만들면 된다.(함수니까!) 하나의 기능만을 담당하는 것이라면 문제는 없다.

이는 아래와 같이 사용된다.



Posted by onionmen
728x90
솔직히 과장님이나, 팀장님이 그렇게 이야기 하고 지키라고 했으면 군소리 없이 했을 것이다. 하지만 입사한지 얼마 되지 않은 사람이 이렇게 해달라 저렇게 해달라 요구하면 쉽게 들어줄 수 있을까는 좀 다른 문제이다. 그것이 업무방식에 영향을 미칠 때 말이다.

과장, 팀장이라서 따르고, 신규입사자라서 안따르고 하는 것은 아니다.(물론 어느정도는 있겠지만) 회사의 분위기와 문화를 이해하고, 변경을 시도하면 충분히 공감하면서 변화를 수긍할 수 있다. 하지만 제대로된 말 도 없이 이런 변화를 받아들이라고 강요하면 반감부터 생기는 것이 사람이다.

게다가 이야기 하러 갔는데, 회사를 다녀도 이런 시스템은 없었다 라는 식으로 이야기를 한다면, 좋게 이야기 하고 싶지 않아질거다.

진정하고 조금만 생각해보자. 순수하게 업무적으로 생각한다면 내가 민감하게 반응한게 맞다. 하고자하는 내용은 논리적으로 문제없고, 어떻게 볼 때 효율성을 위해서는 더 좋다. 문제는 잘 알지도 못하는 사람이 바꾸자고 하는거다. 앞으로는 이렇게 해야한다. 라고 못박고 전혀 협상의 여지도 두지 않는다. 범용적인 것은 좋은데, 다른 부서들의 상황을 전혀 고려하지 않고 밀어붙인다는거다. 

필요한 정보가 이름, 주소, 주민번호라고 하자. 그런데 내가 알 수 있는건 이름과 주소 뿐이다. 그래서 이름과 주소를 적어서 냈다.

다음 상황을 보자.

A: "이름과 주소밖에 몰라서 그것만 적어서 냈어요."
O: "주민번호도 적어서 내셔야 하는데요."
A: "이름과 주소를 알면 주민번호는 그 쪽에서 알 수 있지 않나요?"
O: "이름과 주소를 알려주시면 주민번호를 알려드릴게요. 그거 적어서 내세요."
A: "그럼 다음번에도 이름과 주소를 알려드린 뒤에 주민번호를 받아서 여기 적은 다음에 다시 내야 하나요?"
O: "이미 한번 주민번호를 알려드렸잖아요. 그걸 기억하고 계셨다가 쓰셔야죠."
A: "왜 이렇게 하나요?"
O: "좀 더 확실하고 정확하게 하기 위해서 입니다."
A: "예전엔 이렇게 안하고 그냥 이름과 주소만 적어서 냈는데요?"
O: "예전 담당자는 이제 없으니 그렇게 못합니다.ㅋ"

예전에는 그냥 이름과 주소만 적어서 냈다. 그런데 이제 주민번호를 알아내서 적으라고 한다. 주민번호 물어봐서 적은 다음에 다시 낼 수 있다. 그런데 여기서 문제는, 알려준 정보로 얻어낸 주민번호가 정확한 주민번호인지 판단할 수 없다는 거다. 그냥 그 쪽에서 이거라고 던져준 주민번호를 써 넣어서 요청을 하는데, 이게 정확하다고 판단할 수 있는건가? 어차피 그쪽에서 알려준 주민번호인데 말이다. 이럴거면 무엇하러 주민번호를 요청해서 쓰나.

회사에는 이미 주민번호를 알고 있는 부서도 있고, 주민번호를 모르는 부서도 있다. 이미 알고 있는 부서는 문제가 안되겠지만, 모르는 부서는 이게 문제가 된다. 그럼 융통성 있게 해결할 자세를 보여야 하는거 아닌가?

아 답답하다.

말도 좀 부드럽게, 융통성 있게, 상황판단 해서 적절하게 하면 안될까? 
이왕 입사한거고, 함께 일을 해야 하니 적절한 선에서 타협해야겠지만, 앞으로 힘들어 질 것 같다.
Posted by onionmen
728x90

0.

"에이 설마.. 아무리 어두워도 익숙해지면 윤곽이라도 보이기 마련인데, 진짜로 아무것도 안보이겠어?"

 

입에서 나온 저 한 줄 문장은 어둠의 아가리 속으로 내 몸통이 들어가고 얼마 지나지 않아, 도로 제 입 속을 찾아 들어갔다. 정말 '아무것도' 보이지 않는 칠흑 같은 어둠 속. 여기서 그 칠흑이 무엇을 의미하는지 이제서야 진정 그 의미를 알게 되었다.

 

1. 어둠과의 대화

어둠을 이야기 하면, 무엇이 생각나냐 라고 묻는다. 이럴 때 단연 말 할 수 있는 것은 "한치 앞이고, 인생이다." 그냥 깜깜할 뿐이다.

 

놀거리 없던 내 어린 시절. 수건 한 장과 친구들 두세 명만 있으면 언제 어디서든 할 수 있는 눈감고 찾기 라는 놀이. 그 놀이의 박수소리를 생각나게 하는 가이드 분의 박수소리. 시각을 지운 이런 전시가 내 어릴 적 동심을 기억나게 해줄 수도 있구나.

그저 고맙다.

 

이번 '대화' 를 통해서 내 근거리 지각의 능력이 어느 정도인지 너무나도 명확하게 알게 되었다. 굳이 알아듣기 쉬운 말로 고쳐 다시 평가 내리자면.

"이번 '대화' 를 통해서 형편 없는 내 근거리 지각 능력을 알게 되었다."

시각을 사용하지 않고서는 정말 아무것도 할 수 없는 모습이라니. 그저 우울했다. 나에게도 육감(six sense)이라는 것이 있어서 "I can see dead people" 을 외치며 부들부들 떨 수 있다면, 이 우울함이 좀 사라질까?

 

촉각적인 내 시각을 잠시 몸에서 잠재우고, 4감각들을 사용한 어둠과의 전쟁이 시작되었다. 내 몸에서 내 시각이 어느 정도의 권력을 갖고 있었는지 새삼 실감할 수 있는 상황이었다. "왼쪽을 만져보세요." 라는 가이드 분의 말을 듣고 뻗은 내 왼손에 만져진 것은 죄송하게도 어떤 분의 어깨였다. 몸통을 돌려 왼쪽을 만져야 하는 상황을 제대로 파악하지 못한 것은 단지 내 상황판단능력의 문제일까?

 

2. 시선의 폭력

힘을 가진 자는 그 힘을 잘 사용해야 한다. "슈퍼맨이 나쁜 마음을 먹는다면?" 아니, 굳이 상상 속의 인물로 한정할 필요도 없다. "부시가 나쁜 마음을 먹는다면?(얘는 이미 많이 나쁜 아이지만, 그냥 대놓고 나쁜 아이가 된다면 이라고 상상해보자.)으로 정정하도록 하자." 그렇게 되면 세계 여러나라가 쌀나라의 속국이 되어, "부시 만세" 를 외쳐야 할 상황에 놓이게 될지 모른다.

이만큼은 아니더라도 시선의 힘은 대단하다. 위아래로 훑어보는 행위 하나만으로도 상대방에게 굉장한 불쾌감을 줄 수 있는 것이 시선의 힘이다. 게다가 이 시선의 폭력은 법적 제재조차 받지 않는 면죄부도 갖고 있다. 약간이라도 특이한 사람을 보면 끈적한 시선이 그의 움직임에 들러붙어 떨어질 생각을 않는다.

 

보통 이렇게 이야기 한다. "눈의 소중함을 새삼 느꼈어요."

이렇게 라도 알았으면 이제 좀 잘 사용해보자.

 

3. 장애

가이드 분들을 보고 생각난 영화는 "조제, 호랑이 그리고 물고기들" 이었다.

장애를 가진 조제와 헤어지는 남자친구를 욕했다. "저런 나쁜새끼." 나는 눈물을 훔쳤다. 그 후에 우연히 듣게된 작은 설명은 내 뒤통수를 때렸다. 남자친구는 조제를 동정한 것이 아니다. 동정해서 사귄것이 아니라 그냥 평범한 여자아이와 사귄 것이다. 평범한 여자 아이와 헤어지는데 그 여자를 동정해야 할 이유가 없지 않은가. 왜 이 남자 주인공은 보통 연인의 헤어짐에서 욕을 먹어야 하는가. 그리고 난 왜 이 남자를 욕해야 했는가.
난 정말 진정한 장애에 사로잡혀 있던 것은 아니었을까.

 

4. 끝

전쟁이라는 표현을 사용 했지만, 어둠은 정복해야 할 대상도 아닐뿐더러, 절대 정복 할 수도 없는 곳이다. "위대한 불의 발견이 어둠의 정복이다." 라고 생각한다면, 그 횃불을 뒤로 돌려보라. 조금 전까지 환하던 그 자리는 횃불이 사라진 지금 어둠만 남아있을 것이다.

Posted by onionmen
이전버튼 1 이전버튼

블로그 이미지
손을 따뜻하게 만들어 주고 싶은 애인이 있습니다.
onionmen

달력

 « |  » 2010.8
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
DNS Powered by DNSEver.com

최근에 올라온 글

Yesterday
Today
Total