최근 전세계적으로 프로그래밍 교육에 대한 관심이 증가하고 있다. 하지만 대부분의 언어는 컴파일러와 통합 개발 환경을 컴퓨터에 설치하여야만 사용할 수 있는 문제가 있다. 이를 해결하기 위해 Eclipse Che나 JDOODLE과 같은 웹 기반 프로그래밍 환경이 다수 개발되었지만 대부분이 GUI 프로그래밍을 지원하지 않고, 특히 한글 프로그래밍 언어는 지원하지 않는다. 이 논문에서는 '봄밭'이라고 하는 웹 기반 프로그래밍 환경을 제안한다. 봄밭은 한글 프로그래밍 언어인 새싹을 지원하고, GUI 프로그래밍도 지원한다. 콘솔 기반의 입출력 또한 지원한다. 콘솔 및 GUI 인터페이스를 모두 지원하기 위해서 봄밭에는 두 개의 서브 컴파일 시스템을 설계하고 구현하였다. 우리는 봄밭의 GUI 지원의 성능을 측정하기 위해서 Java의 모든 GUI 튜토리얼 코드를 새싹으로 변환하여 봄밭에서 실행해 보았다. 그 결과, 81.42%의 코드를 정상적으로 실행할 수 있는 것을 확인하였다.
최근 전세계적으로 프로그래밍 교육에 대한 관심이 증가하고 있다. 하지만 대부분의 언어는 컴파일러와 통합 개발 환경을 컴퓨터에 설치하여야만 사용할 수 있는 문제가 있다. 이를 해결하기 위해 Eclipse Che나 JDOODLE과 같은 웹 기반 프로그래밍 환경이 다수 개발되었지만 대부분이 GUI 프로그래밍을 지원하지 않고, 특히 한글 프로그래밍 언어는 지원하지 않는다. 이 논문에서는 '봄밭'이라고 하는 웹 기반 프로그래밍 환경을 제안한다. 봄밭은 한글 프로그래밍 언어인 새싹을 지원하고, GUI 프로그래밍도 지원한다. 콘솔 기반의 입출력 또한 지원한다. 콘솔 및 GUI 인터페이스를 모두 지원하기 위해서 봄밭에는 두 개의 서브 컴파일 시스템을 설계하고 구현하였다. 우리는 봄밭의 GUI 지원의 성능을 측정하기 위해서 Java의 모든 GUI 튜토리얼 코드를 새싹으로 변환하여 봄밭에서 실행해 보았다. 그 결과, 81.42%의 코드를 정상적으로 실행할 수 있는 것을 확인하였다.
There has been a growing interest in programming education recently. However, to use most programming languages the corresponding compiler and IDE have to be installed on computers. To tackle this issue, though there developed several web-based programming environment including Eclipse Che and JDOOD...
There has been a growing interest in programming education recently. However, to use most programming languages the corresponding compiler and IDE have to be installed on computers. To tackle this issue, though there developed several web-based programming environment including Eclipse Che and JDOODLE, most of them does not support GUI nor Korean programming languages. This paper proposes a web-based programming environment called Bombart, which supports Saesark, a Korean programming language, with GUI output. It also supports a console-based input and output. To support both kinds of interfaces, two compiling subsystems are designed and implemented. To test the effectiveness of the GUI support of Bombart, all the Java tutorial codes on GUI are translated into Saesark and executed on top of Bombart. According to this test, 81.42% of codes can be successfully converted and executed.
There has been a growing interest in programming education recently. However, to use most programming languages the corresponding compiler and IDE have to be installed on computers. To tackle this issue, though there developed several web-based programming environment including Eclipse Che and JDOODLE, most of them does not support GUI nor Korean programming languages. This paper proposes a web-based programming environment called Bombart, which supports Saesark, a Korean programming language, with GUI output. It also supports a console-based input and output. To support both kinds of interfaces, two compiling subsystems are designed and implemented. To test the effectiveness of the GUI support of Bombart, all the Java tutorial codes on GUI are translated into Saesark and executed on top of Bombart. According to this test, 81.42% of codes can be successfully converted and executed.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
또한, 네트워크 자원을 많이 요구하고, 경우에 따라서는 클라우드 환경에 대한 클라이언트를 사용자 컴퓨터에 설치해야할 수도 있다. 따라서 우리는 봄밭이 웹 기반의 프로그래밍 환경을 제공하도록 하였다.
이 논문에서는 GUI 프로그램을 실행할 수 있는 웹 기반 통합 개발 환경인 봄밭을 제안한다. 봄밭은 한글 프로그래밍 언어 중의 하나인 새싹의 통합 개발 환경을 웹서비스의 형태로 제공한다.
이 논문에서는 웹 기반 프로그래밍 환경인 봄밭을 제안하고 구현하였다. 봄밭은 한글 프로그래밍 언어인 새싹을 활용하여 콘솔 프로그램과 GUI 프로그램을 사용자에게 웹 브라우저를 통해 출력한다.
제안 방법
사용자가 인터페이스에게 실행 명령을 내리면 인터페이스는 서버에게 코드를 전송한다. 그 후 패키지 변환기에서 새싹 패키지를 Java의 패키지로 알맞게 변환한 후, 봄밭 해석기를 통해 해당 결과를 서버에 저장한다. 서버는 실행 결과를 인터페이스로 전송하여 사용자에게 출력한다.
봄밭은 웹 기반 통합 개발 환경이므로 웹에서 GUI 코드가 실행된다. 따라서 웹에서 GUI를 실행하는 것을 중점으로 실험을 하였다. 실험에 사용할 예제 코드는 Java GUI와 2D 그래픽 예제를 새싹 코드로 변환한 것이다.
사용자가 변수를 입력하고 실행 명령을 내리면, 인터페이스는 서버를 통해 봄밭 해석기에게 입력 값을 전송한다. 봄밭 해석기에서 해당 입력 값을 사용한 프로그램의 결과를 실행한 후 그 결과를 사용자에게 출력한다. [그림 4]는 이를 시퀀스 다이어그램으로 나타낸 것이다.
GUI컴파일러는 새싹 언어로 작성한 GUI 프로그램 코드를 컴파일하는 역할을 수행한다. 봄밭에서 사용하는 GUI 컴파일러는 기존의 새싹 컴파일러에 GUI 패키지를 추가하여 GUI 코드를 실행할 수 있도록 하였다. 봄밭에서 지원하는 주요 GUI 패키지는 [표3]과 같다.
기존의 웹 기반 통합 개발 환경에서는 웹 사이트에서 콘솔 프로그램을 실행할 수 있으나 대부분의 프로그래밍 언어는 GUI 프로그램을 실행할 수 없는 문제점이 있었다. 봄밭은 웹에서도 실행 가능한 GUI 요소를 한글 프로그래밍 언어 새싹을 사용하여 구현하였다. 봄 밭은 새싹 언어의 콘솔 프로그램과 GUI 프로그램의 결과를 사용자에게 출력한다.
우리는 봄밭의 GUI 기능 커버리지를 측정하기 위하여 Java의 GUI 및 2D 그래픽을 구현하는 예제 코드를 새싹 코드로 변환하고 봄밭에서 동작하는지 실험하였다. 그 결과, 봄밭은 GUI 코드의 예제 코드 대부분(약 81.
따라서 JVM 기반의 웹 서버에서 구현하는 언어인 JSP와 해당 언어를 사용하는 웹 서버인 Apache Tomcat을 사용한다[14]. 웹 사이트는 HTML과 JavaScript 언어를 사용하여 구현하였다. 사용한 JavaScript 라이브러리는 파일 제어 라이브러리인 FileSaver.
대상 데이터
또한, 약속[12]과 달리 오류 메시지를 한글로 보여준다. 따라서 우리는 봄밭 구현에 새싹의 컴파일러를 사용하였다.
웹 사이트는 HTML과 JavaScript 언어를 사용하여 구현하였다. 사용한 JavaScript 라이브러리는 파일 제어 라이브러리인 FileSaver.js와 텍스트 창 라이브러리인 CodeMirror이다[15][16].
[표 4]는 Java GUI 예제 코드 중 봄밭으로 실행 가능한 새싹 코드의 비율을 보여준다. 실험에 사용된 코드는 Java 튜토리얼 사이트의 GUI 코드 156개를 새싹으로 구현한 것이다[17]. [표 4]에서 확인할 수 있듯이 Java GUI의 예제 코드 중 봄밭에서 실행할 수 있는 것은 총 126개이며, 원본 코드 중 총 80.
따라서 웹에서 GUI를 실행하는 것을 중점으로 실험을 하였다. 실험에 사용할 예제 코드는 Java GUI와 2D 그래픽 예제를 새싹 코드로 변환한 것이다.
이론/모형
봄밭에서 사용한 새싹은 JVM을 기반으로 하고 있다. 따라서 JVM 기반의 웹 서버에서 구현하는 언어인 JSP와 해당 언어를 사용하는 웹 서버인 Apache Tomcat을 사용한다[14]. 웹 사이트는 HTML과 JavaScript 언어를 사용하여 구현하였다.
성능/효과
실험에 사용된 코드는 Java 튜토리얼 사이트의 GUI 코드 156개를 새싹으로 구현한 것이다[17]. [표 4]에서 확인할 수 있듯이 Java GUI의 예제 코드 중 봄밭에서 실행할 수 있는 것은 총 126개이며, 원본 코드 중 총 80.77%를 봄밭에서 구현 가능한 것을 확인하였다.
우리는 봄밭의 GUI 기능 커버리지를 측정하기 위하여 Java의 GUI 및 2D 그래픽을 구현하는 예제 코드를 새싹 코드로 변환하고 봄밭에서 동작하는지 실험하였다. 그 결과, 봄밭은 GUI 코드의 예제 코드 대부분(약 81.25%)과 2D 그래픽의 예제 코드 대부분(약 85.18%)을 제대로 실행할 수 있었다. 즉, 실험에서 사용한 183개의 예제 코드 중 약 81.
두 실험을 진행한 결과, 총 183개의 예제 코드 중 149개의 코드(81.42%)가 봄밭에서 실행 가능한 것을 확인하였다. GUI 예제 코드의 경우에는 156개 코드 중 130개(80.
18%)을 제대로 실행할 수 있었다. 즉, 실험에서 사용한 183개의 예제 코드 중 약 81.42%에 해당하는 149개의 코드가 정상적으로 실행 가능한 것을 확인하였다.
후속연구
향후 연구로는 GUI 패키지 이외에도 실제 Java에서 사용하는 패키지를 봄밭을 통하여 구현할 방안에 대해 생각해볼 것이다. 또한, 기존의 프로그래밍 언어 중 GUI를 지원하는 프로그래밍 언어를 봄밭으로 출력하는 방안을 연구할 예정이다. 봄밭은 GUI 프로그램을 웹에서 실행할 수 있으므로, 이를 활용하면 기존의 웹 기반 통합 개발 환경에서 GUI 프로그램 코드를 실행할 수 있을 것이라 기대한다.
또한, 기존의 프로그래밍 언어 중 GUI를 지원하는 프로그래밍 언어를 봄밭으로 출력하는 방안을 연구할 예정이다. 봄밭은 GUI 프로그램을 웹에서 실행할 수 있으므로, 이를 활용하면 기존의 웹 기반 통합 개발 환경에서 GUI 프로그램 코드를 실행할 수 있을 것이라 기대한다.
향후 연구로는 GUI 패키지 이외에도 실제 Java에서 사용하는 패키지를 봄밭을 통하여 구현할 방안에 대해 생각해볼 것이다. 또한, 기존의 프로그래밍 언어 중 GUI를 지원하는 프로그래밍 언어를 봄밭으로 출력하는 방안을 연구할 예정이다.
질의응답
핵심어
질문
논문에서 추출한 답변
새싹의 통합 개발 환경은 무엇을 기반으로 하는가?
새싹은 자바 가상 머신(Java Virtual Machine, JVM) 상에서 동작하며, 객체 지향 프로그래밍과 람다 식을 지원한다. 또한, 콘솔에서 실행가능하며 Eclipse IDE를 기반으로 하는 통합 개발 환경을 제공한다.
Eclipse Che는 무엇인가?
Eclipse Che는 Eclipse 재단에서 개발한 웹 기반 통합개발 환경이다[3]. Eclipse Che는 Java 기반 통합 개발환경인 Eclipse를 웹 사이트의 형태로 구현한 것이다. Eclipse Che는 Java, C, C++, Python, Ruby 등을 지원하며 해당 언어로 개발된 프로그램을 작성하고 실행한다. 하지만 Eclipse Che는 GUI 코드를 컴파일하거나 실행할 수 없다.
Eclipse Che의 단점은 무엇인가?
Eclipse Che는 Java, C, C++, Python, Ruby 등을 지원하며 해당 언어로 개발된 프로그램을 작성하고 실행한다. 하지만 Eclipse Che는 GUI 코드를 컴파일하거나 실행할 수 없다.
참고문헌 (17)
교육부 홍보담당관, 소프트웨어 교육 활성화기본계획 발표 - 초.중등 SW교육 필수화 준비 및 학교 중심의 SW교육 추진 -, 교육부, 2016.
T. Gaikwad, P. Dhavale, K. Gaware, and N. Shivale, "Web Based IDE," IJRIT International Journal of Research in Information Technology, Vol.2, No.4, pp.616-620, 2014.
http://www.eclipse.org/che/
http://www.fixoncloud.com/Home/compiler/
https://www.jdoodle.com/
김영택, 김종상, 이석호, 조유근, 권혁철, "한글프로그래밍 언어 설계에 관한 연구," 정보과학회논문지, 제11권, 제2호, pp.81-101, 1984.
천준석, 강도훈, 김건우, 우균, "간결한 한글 프로그래밍 언어 '새싹'," 한국정보과학회논문지, 제42권, 제4호, pp.496-503, 2015.
천준석, 우균, "새싹: 초보자를 위한 한글 객체지향 프로그래밍 언어," 한국콘텐츠학회논문지, 제16권, 제3호, pp.288-295, 2016.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.