제공 :
한빛 네트워크
저자 : Simon St. Laurent
역자 : 한순보
원문 :
What Kind of JavaScript Developer Are You?
"자바스크립트 개발자"란 엄청난 다양성을 숨긴 표현입니다. 모든 언어가 사용자 기술 수준의 다양성을 지니기는 하지만, 자바스크립트는 놀랄 정도로 분열된 커뮤니티를 가지고 있습니다. 사람들은 다른 곳에서 저마다의 이유로 자바스크립트를 접하게 되는데, 이것이 의사소통을 어렵게 할 수 있습니다. 때때로 이것은 모든 사람이 다른 모두를 좋아하는 것은 아니라는 것 이상으로 심각합니다.
"자바스크립트 개발자"는 "웹 개발자", 특히 많은 시간을 브라우저에서 작업하는 개발자를 의미했습니다. 심지어 자바스크립트가 그 자체로 하나의 전문 분야가 됨에 따라, 대부분 자바스크립트 개발자는 우선 더 넓은 범위의 웹 실무를 거쳐 왔고, DOM과 씨름하기 전에 HTML과 CSS를 배웠습니다. 이것이 내가 따른 방향이었고, 여전히 일반적인 길입니다. 자바스크립트를 예제로 배우기가 상당히 쉬웠으며, 더 어려운 부분을 만나기 전에는 객체 조작 언어로 사용했습니다.
하지만 많은 개발자는 서버 사이드에서 시작했으며, 템플릿을 채우는 코드를 개발했습니다. 예를 들면, 넷스케이프 엔터프라이즈 서버에 서버 사이드 자바스크립트가 존재하긴 했지만, 펄, 자바, 파이썬, 루비, 그리고 ASP 언어가 지배하는 세계의 작은 부분이었습니다. 서버에서 돌아가는 코드를 작성하는데 대부분 시간을 보낸 개발자는 다른 도구 세트와 기대를 하고 일을 했으며, 자바스크립트가 웹 애플리케이션의 더 중요한 요소가 되어 감에 따라 수단을 바꾸어야 했습니다. (결국, JSON은 자바스크립트인데, 이러한 개발자 일부는 많은 자바스크립트를 생성하지만, 여기에서의 자바스크립트 역할을 우연으로 생각하는 것을 좋아합니다.)
다른 그룹의 개발자는 데스크톱 애플리케이션 쪽에서 왔으며, 인터페이스에 대한 더 직접적인 제어를 기대했습니다. 이러한 많은 개발자는 스스로 원해서가 아니라 브라우저가 강요하기 때문에 이제 자바스크립트를 이해합니다.
자기도 모르게 하는 자바스크립트는 그 언어를 둘러싼 엄청난 긴장감을 불러일으킵니다. 보통은 어떤 프로그래밍 언어를 싫어하는 사람은 바로 다른 언어로 작업할 수 있습니다. 브라우저에서 자바스크립트의 우세함은 그것을 어렵게 합니다.
하지만 다른 개발자는 훨씬 더 행복하고 자바스크립트에 훨씬 빠져 있습니다. 2005년 Ajax의 등장으로 가시화된 자바스크립트의 부활은 그 언어에 더 커다란 신뢰성을 가져다주었습니다. 더글라스 크록포드의 저서 "
더글라스 크락포드의 자바스크립트 핵심 가이드"는 많은 사람이 사소하다고 생각한 도구 세트에 숨어 있던 강력한 언어를 보여주었습니다.
지난 십 년 간, 자바스크립트에 대한 관심의 초점이 우수 사례와 프레임워크를 만들어 낸 핵심 개발자 그룹 덕분에 자바스크립트의 능력과 범위가 커졌으며, 이것은 브라우저 회사들이 구현을 향상하도록 하였습니다.
Node.js는 이런 노력에서 출현하였고, 자바스크립트 언어를 충분히 반영하는 고유의 서버 사이드 프레임워크를 자바스크립트에 제공해 주었습니다.
더욱 최근에는 DevOps가 등장하여 깊이 있는 자바스크립트 개발자와 회원으로 구성된 별개의 그룹을 만들었으며, 비즈니스 요구에 대응하여 변화할 수 있는 빠르지만, 탄력 있는 시스템을 만들려는 끈질긴 노력을 병행했습니다. 자바스크립트는 이러한 광범위한 대화 속에서는 하나의 구성 요소이지만, 그 대화는 "자기도 모르게 하는 자바스크립트"의 다른 종류와는 상당히 다른 어조를 갖는 경향이 있습니다.
동시에 "자바스크립트로 컴파일"은 자바스크립트가 어느 곳에나 존재한다는 장점은 이용하고 싶지만, 자바스크립트로 작업하고 싶지는 않은 개발자들을 위하여 끊임없이 증가하는 완충재 역할을 하는 것(buffer)을 제공했습니다.
GWT는 많은 이러한 부분을 자바 개발자를 위해 만들었으며,
CoffeeScript,
Dart,
asm.js와 심지어 새 버전 자바스크립트에서 구 버전으로의
트랜스파일러는 자바스크립트가 개발자에게 제공한 완충재 역할을 하는 것입니다. 새로운 "자바스크립트스러운" 커뮤니티가 나타나고 있습니다.
이러한 모든 그룹은 종종 단일팀으로, 때때로는 개인으로 만나게 됩니다. 저는 자바스크립트와의 애증 관계에 대해서 사람들과 많은 대화를 나눴는데, 코드만이 아닌 프로젝트의 문맥에 자주 의존합니다. 이러한 다양한 배경 지식을 가진 사회적인 상호 작용은 대화를 복잡하게 만들고 우선순위 선정을 어렵게 할 수 있습니다.
편집자로서 저는 멀리서는 단일한 독자로 보이는 것이 몹시 분열되어 있다는 점을 고생하면서 배웠습니다. 한 유형에 속하는 자바스크립트 독자를 위해 쓴 책을 다른 부류에 속하는 독자가 너무 심각하게 받아들입니다. 이는 수준이 맞지 않는 도서에 대한 인내력이 부족한 보통의 초보자나 더 고급 독자보다 심합니다.
하지만 컨퍼런스의 다양함은 거의 모든 사람이 무언가에 대해 대화를 이끌어 내는 것을 훨씬 쉽게 합니다.
Fluent가 모든 부분을 다룰 수 없습니다만, 절대적으로 긍정적으로 자바스크립트에 대해 생각하지 않는다면 그것을 생각하는 것을 정말로 좋아하지 않는 개발자라는 가능한 예외를 고려하면서, 이러한 모든 그룹에 이르기 위하여 충분히 프로그램에서 다루었다고 생각합니다.
그렇지만 커뮤니티의 분열은 큰 프로그램으로 완전하게 해결할 수는 없는 몇몇 어려움을 가져오기도 합니다.
ECMAScript 표준화 과정은 모든 그룹이 공유할 수 있는 하나의 스펙을 만들려고 계속 노력합니다. 표준화 과정에서 어떠한 기능을, 얼마나 많이 추가할지를 둘러싼 긴장은 커뮤니티에서의 단절과 종종 유사합니다. 예를 들면, 객체의 계층을 클래스로 정의하는 것을 기대하는 프로그래머의 기대에 부응하기 위해 언어가 어느 정도까지 지원해야 할까요?
저는 자바스크립트가 밝은 미래를 가질 것이라고 기대합니다만, 이런 커뮤니티가 언제든 서로 깔끔하게 어울리게 될지는 확신하지 못합니다.