[번역] jQuery가 진짜 프로그래머로 만들어 줬습니다 (jQuery made me become a programmer)
이 글은 원작자 오스카 갓선(Oscar Godson)의 허락을 구하고 한국어(Korean)로 번역했으며 원문은 jQuery made me become a programmer 입니다.
This article has obtained the permission of the original author Oscar Godson translated into Korean. You can read the original article here.
저는 8학년(한국은 중학생) 때 웹 개발을 시작했습니다. 다이얼 업, 윈도우 95, 그리고 브레이브 호스트를 이용해서 끔찍한 스케이트보드 사이트인 “The Shizzit”을 만들었습니다. HTML, CSS, 그리고 작은 JavaScript를 사용했죠. 여기서 작은 JavaScript란 드롭다운 메뉴와 이미지 롤오버 코드를 말합니다. 이 코드는 단순하게 드롭다운을 만들지만 정상이 아니었습니다. 다음 코드를 보세요:
이것이 바로 저를 JS에 입문하게 만들었습니다. 처음으로 JS를 봤을 때에는 사용하고 싶지 않았습니다. 어려워 보여서 절대 이해못할 것 같았습니다. HTML과 CSS는 간단해서 좋아합니다. 그러나 여러분은 인터넷에서 마법을 부리는 것처럼 뭔가를 만들 수 있습니다. 고등학교 2학년 때 그래픽 디자인을 탐구하기 위해 MHCC 대학에 일찍 진학했습니다. 저는 사이트 디자인과 HTML과 CSS로 인터페이스를 만드는 일을 좋아했습니다. 그러나 저는 JS를 사용하는 것을 재앙이라고 여기고 피했습니다. 뿐만 아니라 순수 바이너리도 그랬죠.
MHCC 2학년 때 Workshed Interactive에서 인턴쉽을 했습니다. 첫 날 그 사람들은 제게 jQuery로 lightbox를 사이트 내 사진 갤러리에 적용하라고 했습니다. 이 날 처음으로 jQuery라는 단어를 들어봤습니다. Google에 ThickBox를 검색해서 사용법을 따라했더니 몇 시간 후 lightbox를 사이트에 적용했습니다. 사실상 제가 작성한 JS는 없었지만 처음으로 코딩하면서 마법을 부리는 것 같았습니다. 갑자기 저는 알 수 없는 확신이 밀려와 하루종일 코딩하기 시작했습니다. 맞습니다. 제가 한 “코딩”이란 것은 단지 잠시 동안 플러그인을 설정한 것뿐이었습니다. 걸음마 단계지만요.
저는 완전히 플러그인을 모든 것에 적용하는 “그런 사람”이 되어 있었습니다. 이건 별 것도 아니었습니다. 일을 하면서 플러그인이 실제로 어떻게 동작하는지 배우고 있었습니다. 플러그인의 코드는 순수 JS가 아닌 jQuery 메소드를 사용하기 때문에 읽기 쉬웠습니다. 크로스 브라우징도 없고, 핵도 없는, 마치 책처럼 여러분도 매우 정직한 이 코드를 있을 수 있습니다. 이 편리함을 느낀 이후로 저는 다른 사람이 만든 플러그인을 사용하는 대신 저만의 것을 만들기 시작했습니다.
그 후 저는 Stackoverflow에서 “어떻게 하면 [HTML API나 ECMAScript]를 jQuery로 할 수 있나요?” 라는 멍청한 질문을 하는 “그런 사람”이 되었습니다. 1년이 지나고, jQuery로 무엇을 할 수 있는지 호기심을 가지게 되었습니다. “fadeIn()은 정확히 어떻게 동작할까?”, 궁금했습니다. 또한 유명한 “JavaScript: The Difinitive Guide(번역서: 자바스크립트 완벽 가이드)” 책을 사서 읽고 따라했지만, 책이 너무 두꺼워서 첫 번째 챕터밖에 못했습니다. 대신, 구글에서 jQuery 소스 코드를 찾아 봤습니다. 다시 말하면 어린이가 자동차와 VCR/DVD 플레이어를 가지고 노는 것처럼 jQuery를 분해했습니다.
프로그래밍 환경을 벗어나서 생각해 보면 말이 됩니다. 컴퓨터를 어떻게 조립할까요? 먼저 여러분은 아마존이나 다른 곳에 가서 조립하는 데 필요한 모든 것을 사겠죠. 컴퓨터를 조립하기 시작하면 다른 사람이 와서 이렇게 말할 겁니다:
당신은 다른 사람들이 만들고 남긴 부품으로 컴퓨터를 만들 수 없어요. 처음부터 모든 부품을 만들지 않으면 절대 컴퓨터를 이해할 수 없고 당신 것은 절대 실행되지 않을 거예요! 자, 먼저 프로세서를 만드는 일부터 시작하죠…
말도 안 되는 것처럼 보입니다. 이제 다른 맥락, 예를 들면 요리, 그리기, 또는 이케아 가구에 대해 생각해 보죠. 상상할 수 있나요? 저는 상식적으로 생각할 수 없습니다.
난해하거나 간결한 프로그래밍 책을 읽는 것은 많은 사람들이 배우는 방법이지만 제겐 아닙니다. 개인적으로 이 방법은 저를 우울하게 만듭니다. 왜냐하면 제 뇌는 (난해한) 완벽 가이드나 (간결한) 핵심 가이드 같은 책에 달라붙게 만들 수 없으며, 그렇다 해도 재미있진 않을 겁니다.
jQuery는 입문자들에게, 특히 CSS를 아는 사람들에게 프로그래밍을 하는 재미를 줍니다. 여러분이 처음으로 $(‘.foo’).fadeOut()을 실행하면 엄청난 마법사가 된 것처럼 느낄 겁니다. 많은 프로그래밍 책들이 어떤 프로그램으로 시작하는지 아시나요? “수학을 하자! 여기 콘솔에 1 + 1을 입력해 봐. 2가 출력됐네! 우와! 재밌네요!?”. 아뇨, 정말 재미없습니다. 저는 jQuery 플러그인을 만드는 일을 그만두고 클로저(closures)와 상속(inheritance) 같은 콘셉트를 배웠고, 사람들에게 멍청한 질문을 하고, 설명해 주기를 요청했습니다.
사람들은 각자 다르게 배웁니다. jQuery를 사용하는 사람들도 있고, 단지 플러그인만 사용하는 사람들도 있습니다. 아무리 같은 사람이라고 하더라도 이들은 끔찍한 프로그래머가 될 수 있습니다. 왜냐하면 이들은 프로그래밍 문제를 해결하는 것을 원하지 않고, 디자인이나 고객 문제만 해결하려고 하기 때문입니다. 그러니 프로그래밍 입문자에게 더 이상 jQuery를 가지고 놀아라고 말하는 것을 멈추고, “진짜” JS를 먼저 배우라고 하세요. 이들에게 순수 JS를 배울 만한 책을 추천하거나 멍청한 질문을 하면 받아주세요. 더 나은 방법으로는 플러그인 만들기 같은 jQuery 프로젝트 아이디어, 예를 들면 수학이나 슬라이드쇼에 매달리게 만들어 주세요.
각자 자기만의 방법으로 배우도록 두세요. 조심하세요. 여러분은 이제 막 시작하는 프로그래머들의 기를 꺾게 만들 수 있습니다.
JavaScript와 jQuery 중 무엇을 배울지 검색하는 도중 발견했습니다. 지금은 둘 다 배운 상태지만 JavaScript을 주로 사용하고 있습니다. jQuery는 많이 쓰이지만 라이브러리에 불과하다고 생각하기 때문입니다. jQuery를 비롯한 라이브러리를 사용하려면 먼저 JavaScript를 활용할 수 있어야 한다고 생각해서 그렇습니다.