$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

HTML5 기반의 실시간 서버 및 데이터베이스 언어
HTML5-based 실시간 Server and Database Language 원문보기

한국정보처리학회 2013년도 제40회 추계학술발표대회, 2013 Nov. 08, 2013년, pp.1022 - 1025  

유환수 (서울시립대학교 컴퓨터과학부) ,  김성환 (서울시립대학교 컴퓨터과학부)

초록
AI-Helper 아이콘AI-Helper

소프트웨어 개발자는 예전과 같이 PC 나 서버에서만 동작하는 소프트웨어만 만들어야 하는 것이 아니고, 스마트폰, 스마트패드, 스마트 TV, 스마트워치 등 개발해야 하는 플랫폼의 종류가 기하급수적으로 늘고 있다. 그러나 비용문제, 과열된 스타트업 시장으로 인한 채용문제로, 개발 초기 시 클라이언트, 네트워크, 데이터베이스에 숙련된 개발자를 충분히 보유하고 시작하는 경우는 드물다. 본 논문은 HTML 서비스, 실시간 네트워킹, 데이터베이스 CRUD를 지원하는 초보자도 사용하기 쉬운 새로운 언어를 소개한다. 우리는 언어 요구사항, 언어 산출물의 정의를 통하여 언어의 설계 및 구현을 한다. 실제로 실시간 네트워크 서버를 우리의 언어로 제작한 사례 연구를 통하여 우리의 언어가 우수하고 개발자의 노력대비 결과가 좋음을 보인다. 추후 이 언어를 활용하여 게임, 채팅 어플리케이션, 실시간 모니터링 등 특정 도메인에 맞는 어플리케이션을 개발자가 쉽게 작성할 수 있을 것이다.

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

제안 방법

  • 효율적으로 좋은 소프트웨어를 개발하기 위하여 사용자의 요구사항이나 업무를 만족하는 일련의 공통된 작업, 즉 유사한 서비스를 제공하는 시스템을 함께 고려하여 개발하는 방법이 제안되었다. 동일한 도메인에 속한 다양한 시스템들을 기능적, 성능적으로 분석하여 공통점과 차이점을 파악, 핵심 자산을 확보한다. 이 자산들을 조합하여 원하는 시스템을 개발하게 되면 공통적인 프로세스의 재사용을 통하여 개발기간과 비용을 단축시키면서 품질향상까지 도모할 수 있다.
  • 렉시콘을 정의하고 난 후 언어의 정의 및 구현을 위하여 언어의 문법를 작성하기 위하여 AST(abstract syntax tree)를 제작하였다.우리는 이 언어를 디자인 하는데 EBNF 표기법을 이용하였다.
  • 언어 설계를 위하여 참조 아티팩트(reference artifacts) 를 만들었으며, 이를 사용하여 렉시콘(lexicon) 정의 단계에서 각 기능에 맞는 렉시콘을 정의하였다. 렉시콘 정의 규칙은 주어, 속성, 동사, 접속사, 목적어의 자연언어에서의 품사의 형태를 가지게 하였으며, 최적화 및 최소화된 렉시콘을 정의하였다.
  • 이 언어는 HTML5 의 실시간 네트워킹 특성을 활용하고 스마트폰, 스마트패드 및 PC 클라이언트의 접속을 받을 수 있게 하기 위하여 HTML5 의 WebSocket[1][2]를 지원하며,다중사용자 지원,사용자의 회원가입,로그인 및 우리의 언어로 만들어진 어플리케이션의 데이터를 저장하고 조회하기 위하여 데이터베이스의 CRUD 동작을 지원한다. 우리는 언어 제작 프로세스에 맞춰 언어 요구사항, 언어 아티팩트를 만들며 설계 및 구현을 한다. 실제 데이터베이스를 사용하는 실시간 네트워크 서버를 우리의 언어로 제작한 사례연구를 통하여 우리의 언어가 우수하고 사용자의 노력대비 결과가 좋음을 보인다.
  • 그래서 프로젝트 리더는 빠른 개발을 위하여 가용한 개발자의 자원 배분 및 시간 안배에 항상 고민스러워한다. 우리는 이러한 문제를 해결하기 위하여 HTML5 기반의 실시간 네트워킹 및 데이터베이스조작을 지원하는 언어를 제안한다.이 언어는 HTML5 의 실시간 네트워킹 특성을 활용하고 스마트폰, 스마트패드 및 PC 클라이언트의 접속을 받을 수 있게 하기 위하여 HTML5 의 WebSocket[1][2]를 지원하며,다중사용자 지원,사용자의 회원가입,로그인 및 우리의 언어로 만들어진 어플리케이션의 데이터를 저장하고 조회하기 위하여 데이터베이스의 CRUD 동작을 지원한다.
  • 파서에서 파싱된 문장들이 AST 로 정의되어 나오면, 각 토큰들의 위치와 문장의 문맥를 프로그램이 해석할 수 있다.이 결과를 토대로 마지막으로 컴파일러를 만들었다. AST 생성된 언어를 컴파일러가 다시 분석하여 목적(target) 언어로 변환하게 된다.
  • 좋은 소프트웨어를 개발하기 위해서는 성능, 안정성, 재사용성 등을 고려해야 하고 이를 위해서는 더 많은 비용과 시간이 투입되어야 한다. 효율적으로 좋은 소프트웨어를 개발하기 위하여 사용자의 요구사항이나 업무를 만족하는 일련의 공통된 작업, 즉 유사한 서비스를 제공하는 시스템을 함께 고려하여 개발하는 방법이 제안되었다. 동일한 도메인에 속한 다양한 시스템들을 기능적, 성능적으로 분석하여 공통점과 차이점을 파악, 핵심 자산을 확보한다.

대상 데이터

  • EBNF 표기법은 문장 혹은 토큰별로 나누어 언어의 문법의 형태를 표기 하는 기법이다. AST 를 CoffeeScript[11] 작성하였으며, 컴파일러로서 Jison 을 사용하였다. Jison[12]은 JavaScript 기반의 파서 모듈로 기존의 Bison[13]이나 Flex[13]와 매우 유사하다.

이론/모형

  • 렉시콘을 정의하고 난 후 언어의 정의 및 구현을 위하여 언어의 문법를 작성하기 위하여 AST(abstract syntax tree)를 제작하였다.우리는 이 언어를 디자인 하는데 EBNF 표기법을 이용하였다. EBNF 표기법은 문장 혹은 토큰별로 나누어 언어의 문법의 형태를 표기 하는 기법이다.
  • 이 데이터의 예로는 일반 메시지, JSON[6] HTML 파일이 있다. 이것을 효율적으로 지원하기 위하여 우리의 언어는 기존 엔진으로 express[7] 를 사용한다. 이 기존 엔진은 한 번 결정되면 바꾸지 못하는 것이 아니며, 추후 기존 엔진이 바뀌면 트랜스코더에서 다른 기존 엔진의 문맥( semantics)을 가져와 최종 결과 생성할 수 있다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
MDD란 무엇인가? 모델을 그리면 모델을 통해서 스켈레톤 소스코드가 생성이 되고, 소스를 작성하면 프로그램이 완성된다.[3] MDD 는 모델 기반의 소프트웨어 개발방법론으로 MDA(Model-driven architecture)[4] 처럼 MDE 개념을 구현한 기술 표준, 도구 및 절차를 소프트웨어 개발에 적용하는 것이다
DSL이란 무엇인가? 도메인 특정 언어 (domain-specific language, DSL)은 특정 작업을 위해 설계 된 컴퓨터 언어를 의미한다. 도메인 특정 언어 또는 단순히 도메인 언어라고도 하지만 학술적으로는 도메인 특정 언어로 불리는 경우가 많다.
도메인 특정 언어의 장점은 무엇인가? 즉, 한 가지 작업을잘 수행하는 데 집중 한 것이다. DSL 의 장단점을 살펴보면, 우선 장점으로는 DSL 을 사용한 개발은 도메인의 복잡성이 높아질수록 개발 투자 대비 효용성이 높아지게 된다는 점이다. DSL 의 표현적(expressive)이라는 장점도 가지고 있다. DLS 은 작고, 특정 API 의 표면적인 내용만을 다루기 때문에 추상화 단계가 높아 특정 도메인의 문맥(semantic)을 잘 표현한다.
질의응답 정보가 도움이 되었나요?
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로