Depth-First.com에 게재된 JavaScript for Cheminformatics라는 제목의 글 번역본입니다...
----
이 블로그를 구독하는 독자들이라면 이 블로그의 반복되는 주제 중의 하나가 웹 기술과 화학 정보의 융합이라는 사실을 알고 있을 것이다. 루비와 자바를 어떻게 화학정보학에 적용할지에 대해서는 몇 개의 글이 있지만, 한 번도 등장하지 않은 언어가 있다. 바로 자바스크립트. 자바스크립트는 웹 클라이언트의 기본 언어일 뿐만 아니라 다른 곳에서 점점 중요해지고 있는 언어이다. 시리즈의 첫 글인 이 기사에서는 화학 관련 웹 어플리케이션을 만드는 도구로서의 자바스크립트에 대해 소개한다.
Surely You Jest
만약 지난 1990년대에 자바스크립트를 접해 봤다면, 많은 것이 훨씬 나아졌다는 것을 알아야 한다. 가장 중요한 것은 성능이 비약적으로 향상되어서 자바스크립트로 충분히 복잡한 소프트웨어를 개발하는 것이 가능해졌다. Prototype이나 Scriptaculous와 같은 잘 만들어진 라이브러리들은 개발자들이 좀더 높은 추상화 차원에서 가치있는 개발을 할 수 있도록 도와준다. 브라우저간 호환성이 브라우저 특정적인 기능 때문에 문제가 되고 있기는 하지만, 자바스크립트 언어 자체는 굉장히 안정적이고 브라우저나 플랫폼 간에 일관성이 있다.
자바스크립트로는 분명 자바나 C++의 성능을 낼 수 없을 것이고, 그럴 수 있다고 생각한다면 실수일 것이다. 중요한 것은 자바스크립트가 다른 언어로는 할 수 없는 어떤 일을 할 수 있는가이다. 이런 점을 염두에 두면 웹 기반의 화학 소프트웨어 개발에서 자바스크립트가 할 수 있는 일을 곰곰히 생각해 보는 것도 재미있는 일이다.
예를 들어, 사이트의 DOM에 대해 완전한 읽기-쓰기 권한을 갖는다는 면에서 자바스크립트 기반 도구들은 서버나 클라이언트에서 생성된 정적인 콘텐트를 크게 향상시킬 수 있다.
다른 예로, 자바스크립트와 보이지 않는 자바 애플릿의 조합을 생각해 보자. 자바-자바스크립트 통신은 모든 브라우저에서 LiveConnect를 이용해서 가능하며, 이것은 계산을 많이 요구하는 작업을 자바스크립트에서 애플릿으로 옮기는데 사용할 수 있다. 많은 면에서 이런 접근은 여기서 자주 다뤄졌던, Ruby Java Bridge(RJB) 혹은 JRuby를 통해 자바를 루비에서 사용하는 것과 매우 유사하다.
결국, 자바스크립트는 크로스-브라우저이자 플러그인에 의존하지 않는 클라이언트 기반 소프트웨어를 개발하는 것이 가능하게 해 준다. 이 말이 대단하게 들리지 않을 수도 있지만, 많은 개발자와 기관들에게 플래시, 자바, 그리고 다른 플러그인 기술들은 이상적인 것과는 거리가 멀다.
What’s Known?
자바스크립트를 화학에 사용하는 것에 대한 예는 여기저기 조금씩 흩어져 있으며, 이것은 이 분야가 이 아이디어를 준비하고 있는 단계이거나 아니면 전혀 작동하지 않을 것이라는 사실을 나타낼 수도 있다.
아마 화학정보학에 적용된 자바스크립트의 가장 잘 알려진 예는 WebME와 PubChem 구조 편집기일 것이다. 이 두 패키지의 놀라운 성취에도 불구하고, 두 패키지 모두 화학 구조의 처리와 분석에서 서버에 매우 의존하고 있다. 자바스크립트는 주로 로우-레발의 마우스 이벤트를 서버에 비동기적으로 전달하는데 사용되고 있으며, 이 요청을 받으면 서버는 비동기적으로 생성된 이미지를 클라이언트에 전송한다. 어느 정도까지는 뒤로가기와 앞으로가기가 이 툴들의 반응성을 낮추게 된다.
The Blue Obelisk는 화학에서 그리스몽키 스크립트에 대한 위키 페이지를 운영하고 있다. (역자 주: 관련 글을 여기서 볼 수 있습니다) 그리스몽키는 존재하는 웹사이트를 향상시키는데 아주 좋은 도구이며, 이 스크립트들은 정말 멋진 일을 한다. 그러나 크로스-브라우저, 설치가 필요없는 일반적인 목적의 툴이라고 할 수는 없다.
최근에 Robert Hanson은 on-demand Javascript를 화학 관련 웹 어플리케이션 개발을 위한 유망한 도구로 언급하였다. 이 제안이 많은 중요한 점을 담고 있기는 하지만, 내가 알기로는 코드 릴리즈로 이어지지는 않았다.
언급된 모든 사이트가 사라졌거나 다른 내용으로 바뀌기는 했지만 초기 리소스의 모음은 여기서 볼 수 있다.
웹을 돌아다니다보면, 자바스크립트로 만들어진 화학 도구들을 많이 찾을 수 있다. 예를 들어, 이 페이지는 자바스크립트 기반의 주기율표를 보여준다. 이런 도구들이 유용하기는 하지만, 더 많은 일을 위해 플랫폼을 만들기 위해 디자인된 일반적인 목적의 솔루션은 아니다.
What Would Be Most Valuable?
자바스크립트로 만들 수 있는 많은 화학정보학 도구들이 있다. 그러나, 가치를 극대화하기 위해 이 도구는 여러 가지 상황에서 유용해야 한다. 그리고 좀더 복잡한 소프트웨어를 만드는데 기반이 될 수 있어야 한다. 더 중요한 것은, 유용한 도구는 정말 깨져 있는 것을 고칠 수 있어야 한다.
아마 이렇게 물어보는 것으로 시작할 수 있을 것이다. 가장 많은 경우에, 어떤 것이 화학 정보를 가지고 일하는 것을 어렵게 만드는가?
화학과 컴퓨터의 가장 초기 시절부터 분명했던 화학 정보의 가장 독특한 특징은 화학 구조가 차지하는 중요한 역할, 그리고 이것을 컴퓨터에 나타내고 처리하는데 드는 어려움이었다.
따라서, 화학정보학을 위한 가장 유용한 자바스크립트 도구가 무엇이냐는 질문에 대한 하나의 답변은, 화학 구조를 이해하고 관련된 그래픽 작업을 할 수 있는 저수준 화학정보학 툴킷일 수 있다.
또 하나의 가능성은 NMR, IR, UV 그리고 mass spectra의 처리이다. JSpecView는 좋은 첫번째 선택이지만 JCAMP-DX를 처리하는 저수준의 툴킷이 있다면 스펙트럽을 인터랙티브하게 보고 처리할 수 있는 순수한 자바스크립트 툴을 만들 수도 있을 것이다.
그런 툴킷의 성능이나 사용자 친화성이 화학 관련 웹 어플리케이션에 사용할 수 있늘만큼 뛰어날 수 있을까? 그런 툴킷을 사용할 수 있다면 현재 어렵거나 불가능한 일을 하게 될 수 있을까?
결론
자바스크립트는 화학 관련 어플리케이션을 만드는 사람들에게 중요한 가치를 제공해 주는 웹 클라이인트의 기본 프로그래밍 언어이다. 이 목적으로 자바스크립트를 쓰는 것이 어려운 가장 큰 이유 중의 하나는 개발자 도구의 보적이다. 다음 기사에서는 이 점에 대해 다뤄보기로 하자.


댓글을 달아 주세요