• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

컬럼

플랫폼으로서의 언어, REBOL

본문


when a language becomes a platform
REBOL IOS Express
by Kurt Cagle
April 2002
분산 데스크탑은 한 번 들으면 파악할 수 있을 정도로 직관적이지만 이론상으로는 꽤 복잡하다. 데스크탑은 파일 창고 이상의 존재로서, 윈도우와 각종 API를 지원하는 것에서부터 문서를 보호하는 데에 이르는 여러 가지 역할을 한다. 데스크탑은 접근성을 위해 가벼워야하며, 강력한 애플리케이션을 구축할 정도로 견고하면서 융통성이 있어야하지만 이러한 애플리케이션을 만드는 데에 해박한 프로그래밍 지식이 필요 없을 정도로 단순하지는 않다.

리볼(REBOL:Relative Expression Based Object Language) 테크놀로지의 인터넷 오퍼레이팅 시스템(IOS) 제품은 시스템과 접근을 하는 시도로서, 향상의 여지는 아직 많지만 차세대 웹 데스크탑을 만드는 데 매우 깊은 인상을 준다.

리볼은 10여넌도 전에 아미가 오퍼레이팅 시스템을 디자인했던 시스템 설계자, 카를 자센라트(Carl Sassenrath)의 발명품이기도 하다. 아미가 시스템은 소비자 수준에서 맨 처음으로 나온 다중 사용자 시스템 중에 하나이다. 심지어, 제품 개발을 그만둔 지 꽤 오랜 시간 후인 지금도 아미가 팬들이 많을 정도이다.

자센라트는 리볼을 가벼운 오퍼레이팅 시스템으로 어디에도 적용시킬 수 있도록 하였다. 현재 리볼은 AIX, 아미가, BSD, HP/UX, 리눅스, 매킨토시, 솔라리스, 윈도우즈를 포함한 40여 개 이상의 플랫폼에서 돌아간다. 결과적으로 리볼은 잠재적으로 대부분의 사업에 일반화되어가고 있는 다양한 다중-시스템 네트워크에 적용할 유용한 수단이 될 수 있다.

자센라트의 리볼이 지향하는 바는 인터넷 오퍼레이팅 시스템, 분산 컴퓨팅의 성배나 마찬가지이다. 리볼 IOS 라인은 복잡한 기기들을 복합 컴퓨팅용으로 쉽게 만들 수 있는 일반 아키텍쳐를 충분히 만들어낸다. 따라서, IOS는 현재 독립된 제품으로만 존재하는 서로다른 애플리케이션들을 목표로 하고 있다.

이를테면, 리볼 IOS는 쉽게 어울릴 수 있는 개별 스크립트 컴퍼넌트(Reblet이라 부른다)를 이용하여, 컨퍼런싱 애플리케이션을 비교적 단순하게 구축할 수 있다. 리볼 사는 몇 가지 리블릿을 사이트에 올려 놓았다. 또한 핵심 컴퍼넌트는 주소록이나, 실시간 여론조사, 숫자 표나 챠트, 그래픽이 보여주는 매출 정보, 공유 클립보드 자원 등을 만드는 데 똑같이 쓰일 수 있다.

그렇다고 리볼 IOS가 브라우져를 완전히 대체하는 것은 아니다. (리볼 애플리케이션을 웹 페이지에 임베딩시킬 수는 있다.) 오히려 리볼은 브라우저 컴퍼넌트와 함께 상호 작동하면서 사용하기 쉬운 복합 환경을 만드는 수단을 지향하고 있다. 더해서, 리볼 IOS는 다른 애플리케이션이 사용하는 융통성도 어느 정도까지 지원한다. 여기에는 윈도우즈 DLL과 유닉스/리눅스의 공유 라이브러리를 포함한다. 리볼은 분산 환경이기 때문에 다른 목표를 둘 수도 있다. 이를테면 외부 객체를 한 시스템으로 모아서 다른 시스템으로 접근시키는 리볼 스크립트를 만드는 것도 가능하다. 리볼은 또한 유닉스의 bash 셸이나 DOS와 같은 셸 환경과도 잘 어울릴 수 있다.

리볼 IOS는 voice over IP와 MP3, 비디오 등의 스트리밍도 지원하며, 회사는 새로운 미디어 타입을 더하기 위해 라이브러리를 라이센스하고 모든 플랫폼에 이를 지원한다. 따라서, BSD 사용자이건, 리눅스 사용자이건 똑같은 애플리케이션을 윈도우즈에서처럼 돌릴 수 있다.

리볼의 디자인은 쉬운 배치가 가능하도록 짜여진다. 단순한 스크립팅 언어로 네트웍 전송을 투명하게 해서, HTML과 셸 스크립트를 둘 다 돌리는 듯한 느낌을 준다. 리볼은 바이러스나 관련 문제를 제외한, 컴퓨터간의 네트웍에 대한 개념을 좀더 효율적으로 표현하기 위해 주요 언어의 일반적인 콘텍스트 하에서, 하위언어나 다이알렉트의 설정을 허용하기도한다.

리볼의 장기적인 목적은 세 가지의 리벨(REBEL) IOS 제품의 통합이다. 리벨 IOS Express는 현재의 웹 서버에서 리볼 지원을 제공하며, 데모 버전을 리볼 사이트( http://www.rebol.com )에서 다운받을 수 있다. 리볼 IOS Lite는 자체가 서버이며, 회사 내부 사용에만 국한되어있는 반면, 리볼 IOS Host는 똑같은 서비스를 인터넷을 걸쳐 제공한다. 앞에 것을 제외한 두 가지는 계속 개발중이다.

리볼 IOS 익스프레스는 대규모 웍그룹 제품으로 두 가지 부분으로 나뉜다. 서버는 리볼 서브이며, 클라이언트는 리볼 링크이며, 가격은 몇 가지 요소에 따라 달라진다. 기본 모델은 (최소 10 seat 이상이다) 한 시트당 100달러이며, 서버를 더하면 천 달러가 넘어간다. 더해서, 리볼은 Alliance 지원 패키지를 연당 5천 달러에 제공한다. 당연히, VAR과 OEM, ISP 등의 단체구입은 혜택을 받는다.

impressive graphics

IOS 익스프레스의 그래픽은 전통적으로 내부-시스템 복합 솔루션이 그렇지 못한 것에 비하면, 매우 화려하다. 기본 제품의 데모로도 그래픽 이미지로 작업할 수 있다. 리볼은 블러와 샤픈, 그라디언트 오버레이, 다중 이미지 비트맵 등을 포함하는 여러가지 필터링 효과를 구현할 수 있다. 사실, 리볼만으로 테트리스 게임을 만들 정도로 강력하다.

리볼인 추상 레벨에서 위젯을 처리하기 때문에, 풍부한 그래픽으로 여러가지 애플리케이션의 스킨을 만들 수 있다. 예를 들어서, 필자는 매킨토시와 윈도우즈, 리눅스에서 사용할 수 있도록 스킨화할 수 있도록 입력 폼을 만들었다. 어디서 나왔는 지를 알지 못한다면, 특정 플랫폼에서만 표현할 수 있는 리소스가 있었는 지도 몰랐을 것이다. 그러한 룩앤필은 당연히 대부분의 프로그래밍 언어의 한 부분이지만, 리볼은 다른 언어보다 좀더 쉽다.

리볼 스크립트는 또한 HTML과 비슷한 플로우 모델을 이용하여 텍스트 마크업을 쉽게 조작할 수 있다. 결과적으로 다중-페이지 마법사와 같은 기능을 만드는 일은 사소한 일로 되버렸다. 리볼은 각기 하나, 혹은 그 이상의 declarative facets을 가질 수 있는 객체들로 구성되어있다. 이들 객체는 h1과 같은 헤드라인 태그와 보디 텍스트 등을 포함한다. 패싯(facet)으로 수정하기 때문에, 스크립트를 사용하여 버튼을 갖는 배너를 만들 수도 있다.

view layout [
banner "Hi, there!" white blue
button green "Enter"
]

뷰 레이아웃 명령은 대화와 다른 시스템 리소스를 위한 주요 인터페이스로서, 커맨드라인이나 리볼 스크립트에 타이핑할 수 있다. 몇 가지 기본 명령밖에 모르는 상태에서도 필자는 리볼 문서 파일을 저장하고, 로컬 폴더에서 재작업하면서 단순한 도움말 시스템을 만들 수 있었다.

features

API 기반의 웹 서비스는 잡음도 많지만, 리볼 IOS 아키텍쳐는 선언(declaration) 서비스를 통해 좀더 강력한 애플리케이션을 만들 수 있다. 리볼 링크와 애플리케이션의 힘은 클라이언트와 서버를 잇는 투명 메커니즘과 합쳐진 렌더링 엔진에서 나온다. 데이터 회수를 호출하는 원격 프로시져를 만드는 대신에, 리볼은 메시징 아키텍쳐로 핵심 객체를 만드는 데 필요한 정보를 회수한다.

이 아키텍쳐는 친숙해보일 것이다. 사실, 리볼은 HTML과 HTML 브라우저를 빼고는, 웹 자신과 마찬가지로 똑같이 움직인다. 리볼은 인터프리팅과 리볼 스크립트 언어의 표시에 자신의 엔진을 사용한다. 이러한 문서 지향의 접근은 또한 애플리케이션이 클라이언트에 잇을 필요가 없음을 의미하기도한다. 중앙화된 서버에서 접근가능한 애플리케이션을 만들 수 있으며, 리볼의 텍스트 환경 덕분에 애플리케이션은 각 사용자나 소비자들이 개별적으로 커스터마이징시킬 수도 있다.

리볼은 FTP, HTTP, NNTP, POP, SMTP, TCP, UDP 등을 포함하는 풍부한 프로토콜을 지원하기 때문에, 리볼로 이메일 서버나 클라이언트를 작성하는 것도 가능하다. 리볼로, 콘텐트를 POP 프로토콜과 HTTP를 통한 HTML 페이지로 추출해내는 뉴스그룹 리더의 제조도 가능할 것이다.

리볼은 또한 웹브라우저로 별도의 표시를 위한 호출을 만들 수 있으며, HTTP 호출로부터 콘텐트를 재전송시켜서, 적절하게 정보를 필터링할 수도 있다. 즉, 리볼은 XML 파일과 같은 데이터를 읽어들이는 중급 웹 서버처럼 행동하면서, 브라우저로 데이터를 보내기 전에 로컬화된 해석을 수행한다.

room for improvement

리볼에 결함이 없는 것은 아니지만, 그렇다고 리볼을 시험해선 안될 정도는 아니다. 이 결함은 이 제품이 아직 향상의 여지가 있음을 나타내기도 한다.

리볼과 함께 딸려오는 기본 편집기(리볼 언어 자체로 작성됐다)는 매우 기능이 부족하다. 다른 텍스트 기반의 편집기와 함께 리볼 언어를 편집하기엔 쉽지만, 필자는 이러한 열악한 편집기가 언어의 제한점을 나타내는 것인 지 우려한다. 만약 그러하다면 사용자는 복합 환경으로서 리볼의 효율성을 심각하게 폄하할 것이다. 하지만 기본 편집기를 다른 것으로 사용할 수도 있기 때문에, 편안한 것 아무 거나 사용할 수 있다.

리볼 라이브러리는 꽤 강력하지만 복잡한 확장 모델이기도 하기 때문에 사용자들은 외부 라이브러리 프로시져에 접근하기 위해서는 리블렛을 개발해야한다. 즉, 여기서 비용이 발생하지만, 확장성에 대한 대가라고 생각할 수 있겠다.

선언 모델(declarative model)에 묶여있는 다른 언어와 마찬가지로, 리볼 스크립트의 XML 버전을 만드는 데에 필터를 갖는 편이 유용할 것이다. 어려운 일이 아니다. 리볼로도 작성할 수 있다. 하지만, 내장 XSLT 리소스의 부족은 리볼의 단점으로 다가서지만, 사실 자바나 C++로 작성한 코맨드라인 XSLT 프로세서로 호출하는 외부 함수를 통해 이 기능을 구현할 수는 있다. 카를 자센라트에 따르면, 올 여름에, 좋은 XSLT 프로세서를 가진 다른 회사와 파트너를 맺을 것이라고 한다. 그는 더 자세한 사항은 말하지 않았지만, 제일 빠른 XML을 구현할 것이라고 말했다.

자센라트에 의하면, 종종 듣는 불만 중에 하나가 오픈소스화에 대한 문제이다. 스크립트는 오픈소스이지만 시스템은 아니다. 자센라트에 따르면, 언젠가는 시스템을 내놓을 것이라고 한다. 그러나 거기까지엔 시간이 더 필요하다는 것이다. "우리가 리볼을 컨트롤하는 한, 여러분이 작성한 스크립트가 모든 머신에서 돌아가리라는 것을 100% 확신시켜드릴 수 있습니다. 하지만 한 번 공개하면 그런 장점은 사라질 겁니다." 하지만 그가 말한 문제점들은 다른 공개 소스 언어에서는 발생한 적이 없다.

wrapping it up

리볼 IOS는 계속 진화중에 있다. 자신이 스스로 제한한 영역에 대해 좀더 완전한 스크립트들이 채워지고 있으며, 리볼 IOS가 선언 언어 시스템인 것도 장점이다. 하지만 그와 동시에 갖게되는 제한성은 컴파일드 언어로 해결할 수 있을 것이다. 프로시져럴 코드가 낡고, 반복성에 의존하는 반면에, 선언 모델은 사용량이 많아지면서 시간이 갈 수록 강력해지고 있다.

리볼은 흥미롭다. 리볼은 마이크로소프트의 .Net이나 썬의 자바와 같은 대규모 계층 프로그래밍 시스템보다는 애플리케이션 개발에 있어서 다른 미래를 제시하고 있다. 리볼은 HTML 브라우저 메타로로 확장하여, 애플리케이션이 여러가지 다른 시스템에서 상호 작동되도록 할 수 있으면서도 가벼움과 융통성을 유지한다. 별다른 코딩 경험을 갖지 않더라도 리볼로 프로그램을 작성할 수 있다. 리볼은 앞으로 더 풍부해질 언어이다.

장점: 가벼움. 융통성. 강력함.
단점: 오픈 소스가 아니고. 아직 받아들인 산업이 적음.
------------------------------------------------------------------------
Kurt is an author, trainer, consultant, and researcher who specializes in XML-based technologies. He's also president of Cagle Communications. You can contact him at kurt@kurtcagle.net.

Entire contents copyright 1996-2002 CMP Media LLC
Read our privacy policy at http://www.cmp.com/delivery/privacy.html

http://www.newarchitectmag.com/print/documentID=24257

위민복님의 글입니다.
http://casaubon.tv
1 0
로그인 후 추천 또는 비추천하실 수 있습니다.
회원사진
포인트 765,229
가입일 :
2002-05-23 22:53:10
서명 :
KMUG 애플에 대한 모든 것. 케이머그
자기소개 :
2000년 3월 1일 부터 시작 http://www.kmug.co.kr webmaster@kmug.co.kr

최신글이 없습니다.

최신글이 없습니다.

댓글목록 2

jk님의 댓글

  예전 글을 보니 저 또한 새롭네용~~~ ^^

soulcity님의 댓글

전체 2,464 건 - 82 페이지
2010.03
11

버너스-리, 고르디우스의 매듭을 끊다

How Sir Tim Berners-Lee cut the Gordian Knot of HTML5HTML5 isn't a standard yet, but the key question is: who is going to get their way with…

2010.03
11

NHS의 IE6의 문제

Why the NHS can't get its browser act togetherOrganisational inertia means we're saddled with an ageing, vulnerable browser across our hospi…

2010.03
11

마이크로소프트의 처참한 모바일 전략의 세 번째 등장, Courier

RoughlyDrafted MagazineDaniel Eran Dilger in San Francisco Microsoft Courier: the third weak link in a miserable mobile strategyMarch 5th…

2010.03
11

애플은 어째서 HTC를 고소했는가?

RoughlyDrafted MagazineDaniel Eran Dilger in San Francisco Why Apple is suing HTC rather than Google or AndroidMarch 3rd, 2010 HTC(안드로…

2010.03
11

구글과 저작권, 그리고 문화접근

MAGAZINEFor the Love of CultureGoogle, copyright, and our future. Lawrence LessigJanuary 26, 2010 | 12:00 am 2002년 초, 미국 최고의 다큐멘터리 제작자…

2010.03
02

아이패드는 영상의 창이다. 2편

아이패드로 인코딩 하면서 영화를 봐야되 오. No. 아이패드는 여러분이 아시다시피 아이튠즈 서비스가 막혀 있습니다. 그래서 보고 싶은 영상에 인코딩을 필수적으로 해야 하고 그것을 다시 집어넣는 수고로움을 감내해야 하지요. 하지만 다운받은 영상을 …

2010.02
28

‘구글 vs 애플’ 디지털 맞수의 패권경쟁

‘개방’과 ‘폐쇄’의 승부는 단순한 게 아니다. ‘개방’은 공유이며 다중의 참여이지만, 표준화의 어려움이 있고 혼란과 무질서라는 비용이 따른다. ‘폐쇄’는 관리와 책임의 다른 표현이며, 대부분의 성공적인 기업들이 걸어온 길이다. …

2010.02
26

아이패드의 핵심은 Ibooks.

아이패드에서 ibooks가 성공한다면 우리는 새로운 세상을 맞이할 것이다. 필자가 전자책이 필요한 이유는 꽤 많다. 이사할 때 엄청난 양의 책을 박스채로 옮기지 않아도 되며 집의 한구석을 가득 매우는 서재 자체를 없애버릴 수 있고, 필요한…

2010.02
26

아이패드는 새로운 창이다. 1편

아이패드는 새로운 창이다. 1편. 아이패드는 아이폰과 중복된 기능이 많으며 따라서 아이폰을 가지고 있는 사람들에게는 구매욕구를 불러 일으킬 수 없다. 게다가 넷북도 아니고, 완벽한 OSX도 아니기에 그 활용도는 매우 축소될 수 밖에 없다. …

2010.02
25

수영복도 음란물에 포함되는가?

Why does swimwear count as 'sexual content' on Apple's App Store 만약 Sports Illustrated 지의 앱에 들어갈 사진이라면 이 사진은 괜찮다. 하지만 수영복을 판다면 괜찮지 않을 수…