'unobtrusive'에 해당되는 글 1건

  1. 2008.08.31 Unobtrusive JavaScript 에 대한 고찰 (4)
프로포타입과 스크립타큘러스 상세보기
크리스토피 포트누브 지음 | 인사이트 펴냄
이 책은 자바스크립트 개발에서 필수적인 라이브러리가 된 프로토타입(Prototype)과 스크립타큘러스(script.aculo...프로토타입(Prototype)은 동적인 웹 애플리케이션 개발을도와주는 자바스크립트 라이브러리다....

인사이트 출판사에서 Prototype and Script.aculo.us 라는 책을 출간하면서 던졌던 Unobtrusive JavaScript에 대한 질문!!

많은 분들이 고심했지만 모든 분들이 딱히 어색하지 않고 만족할 만한 번역어를 찾지 못했습니다.
굳이 번역을 해서 국어로 표현할 필요는 없지만 그 의미를 확실히 알면 더 좋지 않을까 해서 이곳 저곳의 자료를 모아서 정리해봅니다.

사용자 삽입 이미지

Unobtrusive 라는 의미를 찾을 수 있는 사진 <실: HTML> <바늘 : JavaScript>



2008-03-06  Simon Willison
+ A set of principles for writing accessible, maintainable JavaScript
+ 쓰기 쉽도록 하고 계속 유지할 수 있는 자바스크립트를 위한 일련의 원리들
+ A library that supports unobstrusive scripting (jQuery)
+ unobstrusive 스크립팅을 지원하는 라이브러리

http://www.slideshare.net/simon/unobtrusive-javascript-with-jquery

2003 Steven Champeon and Nick Finck

Progressive enhancement (점진적인 향상)
Rather than hoping for graceful degradation PE builds documents for the least capable or differently capable devices first, then moves on to enhance those documents with separate logic for presentation, in ways that don't place an undue burden on baseline devices but which allow a richer experience for those users with modern graphical browser software…

요약> 위의 slideshare.net 에 있는 자료가 unobstrusive JavaScript에 대해서 가장 잘 설명하고 있는 것 같습니다.

2007-12 matt aimonetti - SDRuby
http://railsontherun.com
+ behavior oriented JS with (graceful degradation) progressive enhancement
+ 점진적인 향상(우아한 성능 저하)을 갖는 습성 지향적인 JavaScript

Wiki
http://en.wikipedia.org/wiki/Unobtrusive_JavaScript

  "Unobtrusive JavaScript" is an emerging technique in the JavaScript programming language, as used on the World Wide Web.
  "Unobtrusive JavaScript"는 JavaScript 프로그래밍 언어에서의 기술을 말하는 것이다.

  Though the term is not formally defined, its basic principles are generally understood to include
  일반적으로 정의되지 않았지만 그것의 기본 개념은 일반적으로 이해하는 다음의 것들을 포함한다.

  + Separation of functionality (the "behavior layer") from a Web page's structure/content and presentation
  + 웹 페이지의 구조, 콘텐트 그리고 표현으로 부터 기능("습성 레이어")의 분리
 
  + Best practices to avoid the problems of traditional JavaScript programming (such as browser inconsistencies and lack of scalability)
  + 고전적인(예전의 방식) JavaScript 프로그래밍의 단점을 피하기 위한 가장 좋은 예제이다. (브라우저 호환성 불일치와 확장성의 더딤과 같은)

+ Graceful degradation in browsers where the advanced JavaScript functionality will not work as desired
+ 고급 자바스크립트 기능은 브라우저에서 우아한 성능 저하로 원하는 만큼의 동작하지 않을 것이다.
 
  Best Practices
    Though the essence of unobtrusive JavaScript is the concept of a separate behavior layer, advocates of the paradigm generally subscribe to a number of related principles, such as:
    
    Strict adherence to the W3C DOM and event model, and avoidance of browser-specific extensions.
    More generally, JavaScript best practices often parallel those in other programming languages, such as encapsulation and abstraction layers, avoidance of global variables, meaningful naming conventions, use of appropriate design patterns, and systematic testing. Such principles are essential to large-scale software development, but have not been widely observed in JavaScript programming in the past; their adoption is seen as an essential component of JavaScript's transition from a "toy" language to a tool for serious development.

사용자 삽입 이미지

Unobtrusive 라는 의미를 찾을 수 있는 사진 <자물쇠: HTML> <바늘 : JavaScript>


JavaScript의 태생은 1995년 ‘웹 페이지에 생명을 불어넣기 위한’ 일환으로 넷스케이프 웹 브라우저에 공식 채택되었다. [Pro JavaScript Techniques인용 – 인사이트 출판사]

출시 당시만 해도 단지 웹 페이지의 좀더 강한 기능과 동적인 처리만을 위해서 쓰여졌기 때문에 HTML과도 섞이고 CSS와도 섞이는 단지 HTML의 <head> ~ </head>내에 존재하는 일부분으로 여겨져 왔습니다.

또한 HTML 태그안에서 잠재적인 인라인(inline) 스크립트로 기생해 왔습니다.

이렇듯 HTML 문서 내 다양한 곳에서 HTML과 CSS와 함께 뒤섞여 동작을 해오다 최근 다양한 프레임웍(Dojo, jQuery, Prototype, mootools, etc : 이것들은 unobstrusive의 가장 적합한 예제)이 나오면서 더 이상 HTML 문서 내에서는 JavaScript 소스를 찾아볼 수 없게 되었습니다.

단지 연관되어진 <script src=””></script> 하나를 제외하고는 말이죠.
이렇듯 이런 변화를 위에서 언급한 기사들처럼 국외 개발자들에 의해서는 "Unobtrusive JavaScript" 라는 합성어로 탄생하게 되었습니다.

이는 우리나라의 사전적 의미로는
un•ob•tru•sive〔              〕 a. 주제넘지 않은; 조심성 있는, 겸손한, 삼가는[naver 사전]
와 같은 의미를 갖습니다.

하지만 “주제넘지 않은 자바스크립트”, “조심성 있는 자바스크립트”, “겸손한 자바스크립트”, “삼가는 자바스크립트”  이 모두가 조금은 연관성이 있지만 완벽에 가까울 의미 전달은 어려워 보입니다.

Prototype and Script.aculo.us 라는 책의 역자이신 박영록님께서는 고심 끝에 “나대지 않는 자바스크립트”라는 표현을 사용하셨습니다.

 “나대지 않는” 이라는 단어가 함축하고 있는 의미를 살펴보면 여러가지 의미를 내포하고 있기도 합니다.   나대지 않는 다라는 것은 겸손하다라는 의미도 있고 주제 넘지 않는 이라는 의미도 지니는 것 같습니다.  

어떤 의미에서 JavaScript가 나대지 않는 다고 표현할 수 있을까요?  바로 상호 의존할 수 밖에 없는 HTML문서와 JavaScript의 역할에 있어서 비춰보면 될 것 같네요.  이에 HTML 문서는 JavaScript가 활동할 수 있는 Field 역할을 해줍니다.  그럼에도 불구하고 JavaScript가 웹 페이지의 동작에 관여를 하고 웹 페이지 소스 내에서 무자비하게 프로그래밍 되어있다라고 한다면 “HTML 입장에서는 JavaScript가 너무 나댄다” 라고 말할 수 있겠습니다.

짧은 소견으로는 나대지 않는 이라는 표현을 잠깐 사용했지만 프로그래밍적인 해석과는 어색하게 느껴집니다.  
여기에 사전적으로 남의 것에 참견하지 않고 방해하지 않으며 JavaScript의 주요 기능만 수행을 하는, 기술적으로 Behavior layer(습성 레이어) 를 완벽하게 분리하려는 목적을 충족하는 함축할 수 있는 의미가 무엇이 있을까 생각했습니다.

일단 의미 중 “JavaScript의 주요 기능만 수행”이라는 것은 무의미 하다고 가정합니다. 어떤 언어나 자신의 주요 기능만을 수행하는 것이 당연하며 JavaScript에서 이런 의미가 출현한 것은 고전적인 스크립팅 방식에서 탈피하는 과정에 있어서 나타난 의미일 수 있다고 생각을 하며 현재에는 ECMAS4가 발표되었고 완벽한 객체 지향 언어로서의 모습을 갖췄다 라고 볼 수 있기 때문입니다.

이에 주요 기능을 수행하는 의미는 퇴색되며 웹 페이지(HTML)과 JavaScript간에 동작하면서 간섭하지 않는 다라는 의미 즉 HTML과는 습성이 틀린 JavaScript가 상호 참견하지 않고 완벽히 분리되어 동작하는 것이 가장 강하게 표현되어야 한다고 생각해봅니다.

최근 발표된 프레임웍들 또한 이런 의미와 목표를 두고 개발되어진 것이 아닌가 생각해봅니다.  나대지 않거나 겸손하다는 것은 어떤 대상에 대해서 그러한 상태를 나타내는 것이기에 프레임웍이나 자바스크립트를 이용한 Rich UI를 개발하는 개발자들에게는 Behavior Layer의 분리에 좀더 중점을 두지 않았을까 생각해 봅니다.

그래서 저는 생각끝에 “Unobtrusive”를 “비간섭 혹은 비간섭적인” 즉 비간섭 자바스크립트 라고 정리해 봅니다. (발음 : 어넙트러시브 자바스크립트)

신고
Posted by Rhio.kim