"함수 언어 프로그래밍에 시각적 개발 구현"··· '루나'(Luna)의 약속
OSS
게시글 작성 시각 2017-07-10 09:29:51
2017년 7월 7일 (금)
ⓒ CIO Korea, Paul Krill | InfoWorld
개발자들은 일반적으로 코딩 전에 콤포넌트와 디펜던시를 스케치하기 시작한다. 루나(Luna)의 제작사가 텍스트만으로 로직을 구현하는 것이 그리 타당하지 않다고 주장하는 배경이다.
제작사에 따르면, 루나 함수 언어(functional language)는 개발자가 화이트보드에 시각적 요소를 클릭하고 드래그하여 애플리케이션 어셈블리를 구현할 수 있게 해준다.
베타 단계에서 오픈소스로 배포될 것으로 관측되는 루나는 또 리눅스, 맥OS, 윈도우, 자바스크립트에 대해 개발자의 선택에 따라 컴파일러가 네이티브 코드를 생성하게 된다. 루나 개발팀은 현재 프라이빗 알파 릴리즈를 위한 후보자를 물색하고 있다.
루나 제작진의 주장에 따르면 개발자들은 일반적으로 코딩에 앞서 화이트보드에 컴포넌트와 디펜던시를 스케치하곤 한다. 따라서 텍스트로만 구성된 로직은 그리 타당하지 않다. 소프트웨어는 수백, 수천 개의 파일에 분산된 수천 수만 줄의 코드를 가지고 있으며, 이는 시각적 데이터 플로우와 애플리케이션 아키텍처에 실수를 일으킬 수 있는 요인이 된다. 루나 제작진은 UML 아키텍처 다이어그램과 같은 도구의 경우 문제의 원인이 아닌 증상만 다룬다고 강변하고 있다.
반면 루나는 시각적 표현과 텍스터 표현을 갖추고 있으며, 이에 따라 개발자는 자신의 코딩 습관을 유지하면서도 화이트보드와 같은 그래픽 인터페이스를 보유할 수 있다고 개발진은 전했다.
루나의 시각적 표현은 구조, 행동, 데이터 플로우를 드러내준다. 또 프로토타이핑과 비주얼 프로파일을 허용해 성능 병목을 이해할 수 있게 해준다. 연산 시간, CPU/GPU 메모리 할당, 네트워크 전송, 쓰레딩 모델과 같은 통계 수치를 수집하기 때문이다.
루나가 약속하는 다른 기능으로는 다음과 같은 것들이 있다.
- 패러럴리즘(parallelism)
- 고차 함수(higher order functions)
- 논-스트릭트 시맨틱(non-strict semantics)
- 사용자 정의 대수 유형(user-defined algebraic types)
- 유형 검사기와 영향 요인을 내장한 모나딕(Monadic) I/O 시스템. 어떤 펑션이 I/O 행동이거나 퓨어(pure)인지 이해하게 해줄 수 있음.
- 데이터 플로우 오류 처리
- 강력한 디펜던트 타입 시스템
이 밖에 루나는 개발자가 외부(foreign) 노드를 생성하고 파이썬이나 하드켈 코드를 붙여넣을 수 있는 언어 호환성을 지원할 예정이며 자바스크립 및 C++와의 상호 운용성도 계획돼 있다. 그러나 루나 제작진은 다른 언어의 경우 시각적 표현을 염두에 두고 개발되지 않았으며, 이에 따라 이들의 소스 코드가 루나와 달리 그래픽으로 표현될 수 없는 점에 유의해야 한다고 경고하고 있다.
제작사에 따르면, 루나 함수 언어(functional language)는 개발자가 화이트보드에 시각적 요소를 클릭하고 드래그하여 애플리케이션 어셈블리를 구현할 수 있게 해준다.
베타 단계에서 오픈소스로 배포될 것으로 관측되는 루나는 또 리눅스, 맥OS, 윈도우, 자바스크립트에 대해 개발자의 선택에 따라 컴파일러가 네이티브 코드를 생성하게 된다. 루나 개발팀은 현재 프라이빗 알파 릴리즈를 위한 후보자를 물색하고 있다.
루나 제작진의 주장에 따르면 개발자들은 일반적으로 코딩에 앞서 화이트보드에 컴포넌트와 디펜던시를 스케치하곤 한다. 따라서 텍스트로만 구성된 로직은 그리 타당하지 않다. 소프트웨어는 수백, 수천 개의 파일에 분산된 수천 수만 줄의 코드를 가지고 있으며, 이는 시각적 데이터 플로우와 애플리케이션 아키텍처에 실수를 일으킬 수 있는 요인이 된다. 루나 제작진은 UML 아키텍처 다이어그램과 같은 도구의 경우 문제의 원인이 아닌 증상만 다룬다고 강변하고 있다.
반면 루나는 시각적 표현과 텍스터 표현을 갖추고 있으며, 이에 따라 개발자는 자신의 코딩 습관을 유지하면서도 화이트보드와 같은 그래픽 인터페이스를 보유할 수 있다고 개발진은 전했다.
루나의 시각적 표현은 구조, 행동, 데이터 플로우를 드러내준다. 또 프로토타이핑과 비주얼 프로파일을 허용해 성능 병목을 이해할 수 있게 해준다. 연산 시간, CPU/GPU 메모리 할당, 네트워크 전송, 쓰레딩 모델과 같은 통계 수치를 수집하기 때문이다.
루나가 약속하는 다른 기능으로는 다음과 같은 것들이 있다.
- 패러럴리즘(parallelism)
- 고차 함수(higher order functions)
- 논-스트릭트 시맨틱(non-strict semantics)
- 사용자 정의 대수 유형(user-defined algebraic types)
- 유형 검사기와 영향 요인을 내장한 모나딕(Monadic) I/O 시스템. 어떤 펑션이 I/O 행동이거나 퓨어(pure)인지 이해하게 해줄 수 있음.
- 데이터 플로우 오류 처리
- 강력한 디펜던트 타입 시스템
이 밖에 루나는 개발자가 외부(foreign) 노드를 생성하고 파이썬이나 하드켈 코드를 붙여넣을 수 있는 언어 호환성을 지원할 예정이며 자바스크립 및 C++와의 상호 운용성도 계획돼 있다. 그러나 루나 제작진은 다른 언어의 경우 시각적 표현을 염두에 두고 개발되지 않았으며, 이에 따라 이들의 소스 코드가 루나와 달리 그래픽으로 표현될 수 없는 점에 유의해야 한다고 경고하고 있다.
※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지
[원문출처 : http://www.ciokorea.com/news/34790]
번호 | 제목 | 조회수 | 작성 |
---|---|---|---|
공지 | [Open UP 활용가이드] 공개SW 활용 및 개발, 창업, 교육 "Open UP을 활용하세요" | 364505 | 2020-10-27 |
공지 | [Open UP 소개] 공개SW 개발·공유·활용 원스톱 지원 Open UP이 함께합니다 | 354297 | 2020-10-27 |
7000 | 다우기술, 9년만에 오픈소스 DBMS 총판사업서 철수 | 5033 | 2017-07-10 |
6999 | 한국MS, 신규 총판 5개 선정...클라우드, 오픈소스 강화 | 5670 | 2017-07-10 |
6998 | "함수 언어 프로그래밍에 시각적 개발 구현"··· '루나'(Luna)의 약속 | 4775 | 2017-07-10 |
6997 | '애자일과 데브옵스, 이렇게 했다' CIO 4인의 조언 | 4696 | 2017-07-10 |
6996 | 도미노피자·월마트 등 10개 기업의 '각양각색' 디지털 변혁 | 5687 | 2017-07-10 |
6995 | 바이두, 자율주행 프로젝트 참여사 50개로 확대 | 4897 | 2017-07-10 |
6994 | 클라우드 기업으로 거듭나다, 100년 전통 IT 기업 IBM의 변신 | 5179 | 2017-07-10 |
6993 | 더루프, 정부 유망 공개SW 기술개발 지원사업자 선정 | 5185 | 2017-07-10 |
6992 | [주간 OSS 동향 리포트] 인터넷나야나 피해사고의 정부 중간결과 발표, 'APT+랜섬웨어 결합공격' | 4853 | 2017-07-05 |
6991 | 혜윰학술컨설팅 매월 빅데이터 분석도구 R전문가 양성과정 ‘R강좌’ 개설 | 5155 | 2017-07-04 |
0개 댓글