2014.12.29

MIT, 통합 웹 프로그래밍 언어 'Ur/Web' 개발

Joab Jackson | PCWorld
간단한 웹 페이지 하나 만드는데도 HTML부터 자바 스크립트까지 알아야 할 것들이 산더미다. 그런데 최근 MIT에서 이들 기술을 하나의 언어로 통합했다고 밝혀 눈길을 끈다. 개발 과정을 매끄럽게 하고 웹사이트 보안도 강화했다는 설명이다.



설명에따르면 Ur/Web이라는 이 언어를 통해 여러 언어를 사용할 필요 없이 웹 페이지를 만들 수 있다. 오늘날 가장 널리 쓰이는 몇 가지 웹 기술들을 통합해 각기 다른 작업에 각기 다른 언어를 사용해야 하는 번거로움을 줄인 것이다.

MIT 컴퓨터과학과 조교수이자 Ur/Web의 제작자 애덤 클리팔라는 "응용 가능성이 매우 다양하다. 이 언어 덕분에 여러 가지 상황에서의 웹 개발 비용이 절감될 것이다. Ur/Web은 또한 즉흥적인 방식으로 처리되던 앱에 소프트웨어 엔지니어링 장점을 접목시킬 수 있을 것"이라고 말했다.

클리팔라 교수는 다음 달 컴퓨팅 기기 협회에서 주최하는 프로그래밍 언어 원칙에 대한 심포지엄(Association for Computing Machinery's Symposium on Principles of Programming Language)에서 자신의 개발 성과를 발표할 예정이다.

지금까지 웹 페이지를 만들려면 다양한 언어에 대한 이해도가 필수일 뿐 아니라 각 언어가 상호작용하는 방식에 대해서도 잘 알아야 했다.

HTML(Hypertext Markup Language)로 웹 페이지의 기본 틀을 만들지만, 그 밖에도 웹 페이지 제작에 사용되는 다양한 툴이 있다. CSS(Cascading Style Sheets)는 웹 페이의 디자인을 수정하는 데 쓰이고, XML(Extensible Markup Language)은 부가적인 프로세싱 및 분류를 위해 데이터를 구조화한다.

자바 스크립트는 유저 상호작용을 위한 비즈니스 로직을 만드는 기반이다. 또 만일 데이터베이스에 데이터를 저장할 경우 개발자는 SQL(Structured Query Language)도 알아야 한다.

Ur/Web는 이런 웹 개발의 다양한 요소들을 하나의 언어로 통합한 것이다. 이 언어는 기기 실행가능 코드(excutable code)로 컴파일 된다.

클리팔라는 Ur/Web 코드가 컴파일 되기 때문에 보통 사용하는 웹 개발 언어보다 더 효율적으로 이용할 수 있다고 설명했다.

클리팔라는 "Ur/Web 언어 사용시 모든 것은 일련의 막힘 없는 과정처럼 진행된다. 한 건의 클라이언트 요청을 처리할 시 하나의 끊김 없는 기능처럼 처리된다. Ur/Web 언어는 최적화 기능으로 다양한 요청을 실제 서버에서 동시에 처리할 수 있다. 프로그래머는 이처럼 모든 과정이 일련의 트랜잭션(transaction) 과정처럼 진행되는 동안 좀 더 단순한 동시성 모델을 생각해볼 수도 있다”고 말했다.

한편 Ur/Web의 하향식 접근(top-down approach)은 개발자의 인지적 부담을 줄여주는 것 외에도, 웹 사이트를 보다 안전하게 만들 수 있는 보안 메커니즘도 제공한다.

설명에 따르면 Ur/Web은 서로 다른 페이지 요소 사이에 일어나는 의도하지 않은 상호 작용을 금지한다. 일례로 광고를 지원하는 임베디드 코드가 같은 페이지에 있는 캘린더 위젯 등을 방해하지 못한다.

또한, 기존의 C나 자바와 같은 프로그래밍 언어와 마찬가지로(혹은 자바스크립트 같은 웹 언어와는 다르게) Ur/Web에서는 모든 변수와 함수가 프리셋 데이터(preset data)에 부합해야 한다. 다시 말해 해커가 웹 형식을 통해 악의적으로 변형한 데이터를 보낼 수 없게 된다. Ur/Web은 변수 범위를 지정할 수 있으며, 해당 변수를 호출할 수 있는 프로그램 내 위치를 지정할 수도 있다.

그러나 Ur/Web에도 단점이 없는 건 아니다. 클리팔라는 평범한 웹 개발자들이 Ur/Web을 익히는 게 쉽지 않음을 인정했다. Ur/Web은 함수형 프로그래밍 언어인데, 이는 프로그램을 함수의 연속으로 취급하는 프로그래밍 방식이다. 컴퓨팅은 효율적일지 모르나 현재 널리 사용되는 절차 본위 언어나 객체 지향 언어에 비하면 배우기 어려운 편이다.

클리팔라는 Ur/Web을 함수다형 프로그래밍 언어 하스켈(Haskell)에 비교했다. 하스켈은 개발자들이 난해한 언어라 인정하면서도 훌륭한 컴퓨팅 기능 덕분에 개발자들 사이에선 여전히 인기가 높다.

클리팔라는 최신 소프트웨어 프로그래밍 언어를 개발하는 수많은 MIT 연구원 가운데 한 명이다. 또 다른 MIT 연구원들 중에는 작성중인 프로그램 코드의 섹션을 자동으로 완성할 수 있는 스케치(Sketch)라는 언어를 개발중인 이도 있다. MIT에서 개발한 또다른 언어 스택(Stack)은 컴파일러가 무시하고 지나치지만 유용할 수도 있는 코드 일부를 식별할 수 있도록 제작됐다. ciokr@idg.co.kr 



2014.12.29

MIT, 통합 웹 프로그래밍 언어 'Ur/Web' 개발

Joab Jackson | PCWorld
간단한 웹 페이지 하나 만드는데도 HTML부터 자바 스크립트까지 알아야 할 것들이 산더미다. 그런데 최근 MIT에서 이들 기술을 하나의 언어로 통합했다고 밝혀 눈길을 끈다. 개발 과정을 매끄럽게 하고 웹사이트 보안도 강화했다는 설명이다.



설명에따르면 Ur/Web이라는 이 언어를 통해 여러 언어를 사용할 필요 없이 웹 페이지를 만들 수 있다. 오늘날 가장 널리 쓰이는 몇 가지 웹 기술들을 통합해 각기 다른 작업에 각기 다른 언어를 사용해야 하는 번거로움을 줄인 것이다.

MIT 컴퓨터과학과 조교수이자 Ur/Web의 제작자 애덤 클리팔라는 "응용 가능성이 매우 다양하다. 이 언어 덕분에 여러 가지 상황에서의 웹 개발 비용이 절감될 것이다. Ur/Web은 또한 즉흥적인 방식으로 처리되던 앱에 소프트웨어 엔지니어링 장점을 접목시킬 수 있을 것"이라고 말했다.

클리팔라 교수는 다음 달 컴퓨팅 기기 협회에서 주최하는 프로그래밍 언어 원칙에 대한 심포지엄(Association for Computing Machinery's Symposium on Principles of Programming Language)에서 자신의 개발 성과를 발표할 예정이다.

지금까지 웹 페이지를 만들려면 다양한 언어에 대한 이해도가 필수일 뿐 아니라 각 언어가 상호작용하는 방식에 대해서도 잘 알아야 했다.

HTML(Hypertext Markup Language)로 웹 페이지의 기본 틀을 만들지만, 그 밖에도 웹 페이지 제작에 사용되는 다양한 툴이 있다. CSS(Cascading Style Sheets)는 웹 페이의 디자인을 수정하는 데 쓰이고, XML(Extensible Markup Language)은 부가적인 프로세싱 및 분류를 위해 데이터를 구조화한다.

자바 스크립트는 유저 상호작용을 위한 비즈니스 로직을 만드는 기반이다. 또 만일 데이터베이스에 데이터를 저장할 경우 개발자는 SQL(Structured Query Language)도 알아야 한다.

Ur/Web는 이런 웹 개발의 다양한 요소들을 하나의 언어로 통합한 것이다. 이 언어는 기기 실행가능 코드(excutable code)로 컴파일 된다.

클리팔라는 Ur/Web 코드가 컴파일 되기 때문에 보통 사용하는 웹 개발 언어보다 더 효율적으로 이용할 수 있다고 설명했다.

클리팔라는 "Ur/Web 언어 사용시 모든 것은 일련의 막힘 없는 과정처럼 진행된다. 한 건의 클라이언트 요청을 처리할 시 하나의 끊김 없는 기능처럼 처리된다. Ur/Web 언어는 최적화 기능으로 다양한 요청을 실제 서버에서 동시에 처리할 수 있다. 프로그래머는 이처럼 모든 과정이 일련의 트랜잭션(transaction) 과정처럼 진행되는 동안 좀 더 단순한 동시성 모델을 생각해볼 수도 있다”고 말했다.

한편 Ur/Web의 하향식 접근(top-down approach)은 개발자의 인지적 부담을 줄여주는 것 외에도, 웹 사이트를 보다 안전하게 만들 수 있는 보안 메커니즘도 제공한다.

설명에 따르면 Ur/Web은 서로 다른 페이지 요소 사이에 일어나는 의도하지 않은 상호 작용을 금지한다. 일례로 광고를 지원하는 임베디드 코드가 같은 페이지에 있는 캘린더 위젯 등을 방해하지 못한다.

또한, 기존의 C나 자바와 같은 프로그래밍 언어와 마찬가지로(혹은 자바스크립트 같은 웹 언어와는 다르게) Ur/Web에서는 모든 변수와 함수가 프리셋 데이터(preset data)에 부합해야 한다. 다시 말해 해커가 웹 형식을 통해 악의적으로 변형한 데이터를 보낼 수 없게 된다. Ur/Web은 변수 범위를 지정할 수 있으며, 해당 변수를 호출할 수 있는 프로그램 내 위치를 지정할 수도 있다.

그러나 Ur/Web에도 단점이 없는 건 아니다. 클리팔라는 평범한 웹 개발자들이 Ur/Web을 익히는 게 쉽지 않음을 인정했다. Ur/Web은 함수형 프로그래밍 언어인데, 이는 프로그램을 함수의 연속으로 취급하는 프로그래밍 방식이다. 컴퓨팅은 효율적일지 모르나 현재 널리 사용되는 절차 본위 언어나 객체 지향 언어에 비하면 배우기 어려운 편이다.

클리팔라는 Ur/Web을 함수다형 프로그래밍 언어 하스켈(Haskell)에 비교했다. 하스켈은 개발자들이 난해한 언어라 인정하면서도 훌륭한 컴퓨팅 기능 덕분에 개발자들 사이에선 여전히 인기가 높다.

클리팔라는 최신 소프트웨어 프로그래밍 언어를 개발하는 수많은 MIT 연구원 가운데 한 명이다. 또 다른 MIT 연구원들 중에는 작성중인 프로그램 코드의 섹션을 자동으로 완성할 수 있는 스케치(Sketch)라는 언어를 개발중인 이도 있다. MIT에서 개발한 또다른 언어 스택(Stack)은 컴파일러가 무시하고 지나치지만 유용할 수도 있는 코드 일부를 식별할 수 있도록 제작됐다. ciokr@idg.co.kr 

X