비주얼 프로그래밍(Visual Programming) 활용 장단점

    보안 이야기 2018.06.27 09:33

     

    개발자라면 비주얼(Visual)이란 말을 들었을 때 다암과 같은 IT 관련 용어들을 생각할 것입니다.

    비주얼 스튜디오(Visual Studio), 비주얼 베이직(Visual Basic), 비주얼 C(Visual C++)

    이 용어들은 단지 개발 환경일 뿐이며, 비주얼 프로그래밍 언어가 아닙니다.

     

    업무적으로 스크립트를 적용할 때 비주얼 프로그래밍 언어(Visual Programming Language)를 활용하면

    다른 방식에 비해 어떠한 장단점을 갖고 있는지 알아보겠습니다.

     

     

     

    ㅣ비주얼 프로그래밍 언어 의미

     

      비주얼 프로그래밍 언어(Visual Pregramming Language, 이하 VPL)

     

      시각적 표현의 유령 및 범위에 따라 아이콘 기반의 언어, 양식 기반의 언어 및 다이어그램 언어로

      분류될 수 있다.

      비주얼 프로그래밍 환경은 프로그램 구성을 위한 특정 공간 문법에 따라 대화형 방식으로 사용자가

      조작할 수 있는 그래픽 또는 아이콘 요소를 제공한다.

     

      VPL의 일반적인 목적은 초보자가 프로그래밍을 보다 쉽게 사용할 수 있게 하고,

      다음과 같은 3가지 수준에서 프로그램을 지원하는 것이다.

     

      1. VPL은 아이콘/블록, 양식 및 다이어그램을 사용하는 구문 오류의 가능성을 줄이거나 완전히 없애려는

         형식의 프로그래밍 방식을 사용하여 올바른 형식의 프로그램을 만들 수 있다.

      2. VPL은 프로그래밍 프리미티브의 의미를 공개하는 매커니즘을 제공할 수 있다.

         여기에는 프로그래밍 언어에 내장된 문서 기능을 제공하는 도움말 기능이 포함될 수 있다.

      3. VPL은 특정 사황에서 어떤 프로그램이 의미하는지에 대한 연구를 지원한다.

         이 수준의 지원을 통해 사용자는 VPL로 생성된 아티팩트를 특정 상태로 놓아 프로그램이

         그 상태에 어떻게 반응하는지 탐색할 수 있다.

     

      현재 개발은 비주얼 프로그래밍 방식을 데이터 흐름 프로그래밍 언어와 통합하여

      프로그램 상태에 즉각적으로 접속하여 온라인 디버깅 또는 자동 프로그램 생성 및 문서화를 수행한다.

     

      ※ 출처 : 위키피디아

     

    위에 정의를 좀 더 쉽게 설명하면,

    비주얼 프로그래밍 언어(Visual Programming Language)란 텍스트를 타이핑하는 것이 아니라

    그래픽적 요소들을 이용해서 프로그래밍하는 언어를 말합니다.

     

     

     

    ㅣ비주얼 프로그래밍 언어 종류

     

     

    스크래치(Scratch)

    스크래치는 MIT 미디어 연구소에서 2005년 공식 발표한 교육용 프로그래밍 언어입니다.

    스크립트를 블록 맞추듯이 연결하여 코딩을 하는 방식으로 간단한 게임이나 애니메이션 등을 만들 수 있습니다. 누구나 무료로 이용할 수 있으며, 주로 8-16세를 대상으로 만들어졌지만, 프로그래밍 언어에 익숙하지 않은 아이들은 물론이고 모든 연령층이 사용하고 있다. 이외에도 프로그래밍 언어를 접해보지 못한 대학생들의 기초 강좌로 많이 사용하기도 한다.

    공식사이트1 공식사이트2

     

    비주얼로직(Visual Logic)

    비주얼로직은 플로 차트를 이용해서 프로그래밍하는 언어입니다.

    학생들이 순서도를 사용하여 프로그램을 작성하고 실행할 수 있는 그래픽 저작 도구로서

    일반적으로 입문 프로그램밍 개념을 가르치기 위해 학문적 환경에서 사용합니다.

    공식사이트

     

    플로우코드(Flowcode)

    플로우코드는 임베디드 장치를 프로그래밍하기 위해 상업적으로 제작한 MS 윈도우 기반의

    개발 환경입니다.

    텍스트 프로그래밍 언어 대신 플로차트를 이용합니다.

    미리 만들어진 전용 구성요소 라이브러리를 사용하여 블루투스, 휴대폰 통신, USB 등과 같은

    복잡한 기능을 단수화하는 고급 프로그래밍 언어입니다. 소프트웨어 개발 시간을 단축해 주는 장점이

    있습니다.

    공식사이트

     

    구글 블록리(Google Blockly)

    블록리는 구글에서 개발한 웹 기반의 블록형 프로그래밍 언어입니다.

    오픈소스로 제공하는 블록을 사용자가 정의한 소스코드로 변환해주고, 개인 프로젝트로도 사용 가능합니다.

    스크래치와 비슷하지만 블록리로 개발한 프로그램은 자바스크립트, 파이썬, 다트 등과 같은

    일반 프로그래밍 언어로 변환할 수 있어서 일반 프로그래밍 언어에 대한 이해를 높일 수 있습니다.

    퍼즐, 미로, 그래프 그리기 등 예제를 제공하고 자바스크립트 기반으로 직접 실습을 하면서

    일반 프로그래밍 언어에 쉽게 접근할 수 있도록 도와줍니다.

    블록리 게임 사이트

     

     

     

    ㅣ비주얼 프로그래밍 언어 SW 개발에 활용하기

     

     

    소프트웨어(SW)를 개발할 때 비주얼 프로그래밍 언어를 적용한 사례를 통해

    활용하는 방법을 소개하고자 합니다.

     

    문제점 점검 툴 개발 시 비주얼 프로그래밍 언어 활용

    하나의 SW를 개발할 때 다양한 문제점들이 발생합니다.

    이러한 문제들을 점검하고 해결하기 위한 문제점 점검 툴에 비주얼 프로그래밍 언어를 적용합니다.

     

    예를 들어, A라는 제품의 특정 버전에 계속적으로 문제가 발생한다면,

    해당 A라는 제품이 있는지를 확인하고, A제품의 버전을 확인해서 문제를 체크하는 방식입니다.

     

    또는, 제품이 동작하기 위해서는 윈도우의 특정 서비스가 동작하고 있어야하는데,

    미동작 시 해당 서비스의 동작 여부를 확인해서 알려주거나 동작 시킬 때도 사용합니다.

     

    실제로 장애 60~70% 이상이 제품의 문제가 아니라 이런 환경의 문제나 충돌인 경우가 많아서

    비용을 줄이기 위해 이런 문제점들을 사전에 점검하고 해결하는 것이 매우 중요합니다.

     

    구글 블록리 적용 사례

    B SW 회사는 구글 블록리를 이용해 장애대응 시스템을 만들고,

    문제 해결 스크립트 블록을 통해 문제점들을 해결하였습니다.

     

    블록으로 만든 프로그램은 파이썬으로 변환되어서 서버에 저장되고,

    점검 프로그램에서는 해당 스크립트를 다운로드해서 문제 사랑을 점검하는 방식으로 적용하였습니다.

     

     

     

    ㅣ비주얼 프로그래밍 언어 활용 장단점

     

     

    비주얼 프로그래밍 언어를 SW 개발 시 적용할 경우 장단점에 대해 설명해 드리겠습니다.

     

    비주얼 프로그래밍 언어 적용의 장점

    1. 시간 절약

    유아용, 어린이용으로도 나올 만큼 별도로 매뉴얼을 읽지 않아도

    스크립트 사용법을 익히는데 걸리는 시간이 매우 짧습니다.

    2. 쉽고 간편한 사용

    기능이 설명된 블록을 드래그하는 식으로 작업할 수 있으며,

    복사&붙여넣기 방식만으로 간편하게 스크립트를 완성할 수 있습니다.

    3. 약용 방지

    스크립트를 악용하지 못하게 샌드박스화할 수 있으며, 블록으로 제공된 스크립트만 동작합니다.

    4. 한글 지원

    개발 언어가 대부분 영어로 되어 있는데, 블록리는 한글이 지원되어 편하게 사용할 수 있습니다.

     

    비주얼 프로그래밍 언어 적용의 단점

    1. 로직이 복잡한 경우, 텍스트 프로그래밍 보다 난이도가 더 올라갈 수 있습니다.

    2. 입력 데이터 또는 변수의 구조가 복잡한 경우, 코딩이 매우 힘들어질 수 있습니다.

    3. 개발 툴, 관리 툴을 구현하는 데 최초 투입 비용이 큽니다.

    4. 개발 숙련도가 올라갈 경우, 텍스트 프로그래밍에 비해 비효율적입니다.