시작하기 전
이 내용을 준비하는 제가 아무래로 asp.net & c# 사용자이니만큼 다른 제품 사용자에게는 다소 이질적인 면이 존재할 것이라고 생각합니다.
그런 면은 넓은 이해와 아량으로 지적질~~ 부탁드립니다.
본론을 시작하기 전에 jQuery plugin 작성은 jQuery에 관한 완전 초보분들께는 조금은 무거운 내용이리라고 생각합니다.
약간 익숙하시면 이용해주시는 것이 정신 건강에 좋을 것 같습니다.
추가로 jQuery org와 기타 다른 분들의 정보를 모으고 섞여 제 머리 속에서 칵테일된 내용일 수 있는 관계로 어디선가 마셔 본듯한 느낌을 주더라도 작성자의 뱃속부터 타고나지 못한 지식을 너무 탓하지 말아주셨으면 합니다.
그리고 제가 이 내용을 작성하면서도 공부해나갈 가능성이 높을 것 같아서 읽어주시는 분들께도 감사드립니다.
왜 jQuery Plugin인가?
- 개인으로써의 장점
매우 작업 효율적입니다.
매번 프로젝트를 할 때마다 비슷 비슷한 코딩을 한 기억이 다들 제법이나 있을 거라고 생각합니다.
조금 신경써서 자~~알.. 하나 만들어 놓고 내지는 아니면 잘 만들어진 plugin을 평소에 잘 익혀두었다가 높은 생산성을 보이는 거죠.
그렇게 줄여진 시간에 커피 한잔이랑 잡담을 즐기면서도, 일 잘하는 모습을 보여주자는 거죠. (아주 희망스럽기도 한 상황이지만 ㅡㅡ")
코드를 물리적 라인 수를 줄일 수 있습니다.
주저리 주저리 적어나가야 하는 날 코딩(??)을 미리 만들어 놓은 plugin인을 사용하면 중복하여 계속해서 코딩 할 필요가 없으니 당연히 코딩 라인 수가 줄어 들것 입니다.
- 프로젝트나 회사로써의 장점
역시나 비용면에서나 리스크 관리 차원에서 효율적입니다.
이 분께서 고민한 것을 저 분께서 또 고민해주시고, 이 분께서 실수 하신 거 또 저 분께서도 실수해주시고 쉽게 나타나는 현상이죠.
이런 문제를 조금 더 확대하면 이 프로젝트, 저 프로젝트가 되는 것이고, 더더욱 확대하면 이 팀, 저 팀이 되는 거겠죠.
추상화를 체계적인 정리와 프로그래밍 측면의 접근성
개체에 관한 설계만 잘 한다면 namespace와 개체의 상하 관계를 통해서 해당 업무 내용을 완벽하게 알지 못하더라도 이름을 통해서 쉽게 필요한 함수를 찾아서 사용할 수 있도록 설계 가능합니다.
그리고 개인과으로써의 장점과 마찬가지로 이런 추상화 과정을 통해서 많은 경우 라인 수를 확 줄일 수 있습니다.
추가로 vs 2010이상 등을 사용하여 javascript intellisense(인텔리센스:발음나는대로 적은 건데, vs에서 점찍으면 팝업되어나오는 속성이나 메서드명)를 활용한다면 정말 쉽게 필요한 부분을 찾고 매개변수를 보면서 활용하여 작성할 수있습니다. (개인적인 경험으로는 환상적이었습니다.)
그외에 어떤 좋은 점을 상상할 수 있을까요?
예를 들어 "우리회사.결재.기안.싸인하기(사용자아이디)" 이런 형태로 되어져 있고
그 안에 복잡한 로직들이 포함되어 있다고 가정하죠. 그걸 통해서 어떤 장점이 있을까요?
"우리회사.인증.웹인증.인증하기(아이디, 비밀번호)" 이런 건 기능이고
"우리회사.웹표준UI.메뉴.롤오버메뉴(추가메뉴들의json형태)" 이런건 UI이구요.
이런 내용의 plugin을 실제로 구현할 거라고 생각하시면 해골 속에 지렁이 백마리가 기어다니는 느낌이 드니깐요.
그냥 만들어진 것을 파악하고 이해하여 그냥 사용만 하신다고 상상해보세요.
그럼 아마도 쉽게 이 모든 장점들이 상상이 되리라고 생각합니다. 그리고 나아가 더 많은 장점을 파악할 수 있을 것 입니다.
위의 내용은 거의 object oriented programming(덩어리 지향적인 프로그래밍)의 장점을 일부만 생각나는 대로 나열한 수준일 겁니다.
결국에는 jQuery plugin이 javascript object oriented program이고 그 framework이 jQuery가 되는 거니깐요.
그럼 하필 왜 jQuery Plugin일까?
가장 많이 사용되는 javascript framework 중에 하나로 대부분의 경우 벤치마킹을 통해서 우수한 품질과 풍부한 framework자체의 컨텐츠를 사용할 수있다는 장점이 뭐니 뭐니해도 제일 큰 장점이라 할 수 있을 것이다.
그리고 또 cross browsing, 성능, 편리성 등 골치아픈 문제에 대해서 비교적 자유로운 검증된 framework이니깐 사용하는 거라고 생각합니다.
( jQuery를 쓴다고 해서 위의 문제에서 완전히 벗어났다고 생각하면 완벽한 오해입니다.
좋은 도구를 준다고 훌륭한 장인이되는 법은 아니죠.
저처럼 좋은 망치를 가지고 자기 손을 한번씩 내려치고 못은 매번 잘 박히지 않고 벽만 상하는 경우가 많으니깐요. )
그리고 위의 이유를 포함하여 다른 장점들로 인하여 많은 사용자를 확보하고 있기 때문에 jquery.org나 기타 웹 검색을 통해 수많은 jQuery Plugin를 접할 수있고 활용할 수 있습니다.
왠만큼 골치 아프다고 생각하는 건 대부분 사용자들에 의해서 이미 plugin형태나 예제의 형태로 개발되어지고 공개되어져있다고 감히 생각해봅니다.
단지 현재의 내가 주어진 환경에 맞지 않거나 너무 작은 경우의 수만을 고려하여 만들어서 버그를 많이 안고 있는 코드가 간혹있긴 하지만 말입니다. - 제가 만들어서 개인적으로 사용하는 것들 만큼이나요.
덧붙인 여담)
어디 jQuery plugin 광고 내용을 작성한 것 같아 좀 찜찜한 기분이 드는 이유가 뭘까요?
준비되는대로 본론으로 들어가 겠습니다.
Comment 7
-
한머리
2011.10.08 11:42
왠지 손이 오그라드는 표현들이 많아서 그렇게 느껴진 것 같습니다.
저 개인적으로 괜찮다는 칭찬으로 글로 표현하고 나서 느낌 왠지 모를 칭피합에서 기인하는 듯합니다.
연락주시면 저는 영광으로 알겠습니다.
감사합니다.
-
slzzuk
2011.10.09 22:52
혹시 예전에 한머리라는 홈페이지 운영자분 아니십니까? 이글을 쓰려고 가입을 ㄷㄷ jquery 를 배운지 얼마안되었지만 아무래도 크로싱 브라우저에 동일한 기능을 제공한다는게 최대 강점 같아요
-
한머리
2011.10.10 09:15
네 아마도 제가 그 사람이 맞는 것 같습니다. ^__^;
-
반갑습니다. 예전에 댓글을 비회원도 가능하게 해 두었으나, 스팸이 너무 많아서 어쩔 수 없이... 흑...
앞으로 종종 뵈면 좋겠습니다. 행복한 하루 되세요~
-
컴포지트
2011.10.10 13:01
앞으로도 좋은 강좌 기대하겠습니다.
-
slzzuk
2011.10.11 00:12
반갑습니다 asp 시절,,이 새록새록 기억이 나네요 저도 글은 아직이지만 덧글로 많은 도움을 드리도록 하겠습니다 감사합니다.


안녕하세요. 코난 김대우 입니다. 소견입니다만, jQuery에 대해서 광고라고 생각하시는 분 안계실겁니다.
식사라도 같이 하면 좋겠습니다. 감사합니다.