ALGORITHM GENERATION METHOD AND DEVICE
본 발명은 알고리즘 생성 방법 및 그 장치에 관한 것으로, 보다 구체적으로 동작 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하여 사용자는 본인이 작성한 알고리즘의 소스 코드를 확인할 수 있으며, 동작 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 작성하여 사용자는 다양한 종류의 프로그래밍 언어를 교육받을 수 있는 알고리즘 생성 방법 및 그 장치에 관한 것이다. 컴퓨터나 스마트폰에 사용되는 응용 프로그램 개발을 위해서 C언어 등의 프로그래밍 언어에 대한 교육이 필요한데, 프로그래밍 언어를 사용하여 응용 프로그램을 어떠한 토대와 규칙으로 코딩해야 하는지를 논리적으로 만들어 줄 수 있는 알고리즘에 대한 교육도 필요하다. 알고리즘에 대한 교육은 일종의 논리적 언어를 배우는 과정이며, 어떤 것을 픽업해서 연결시킬 것인지를 아는 과정이다. 그러므로, 이런 논리적 언어가 가지고 있는 기초적인 개념(예를 들어, 루프가 어떻게 동작하고, 판단을 어떻게 하며, 계산을 어떻게 하는지, 어떻게 컴퓨터가 우리에게 주는 정보를 획득하고, 컴퓨터에게 일을 시키는지 등)을 알게 하고, 창조적인 경험과 사용자가 만들어낸 것에 대한 성취감을 느끼도록 하는 것이 중요하다. 이러한 알고리즘 교육을 통해 자연스럽게 어린이의 논리적 사고를 향상시킬 수 있으며, 창의적인 사고가 가능하도록 도와준다. 그러나 응용 프로그램 언어는 대부분 외국어로 되어 있기 때문에 어린이에게 교육하기 다소 어려우며, 콜론 또는 세미콜론 등의 혼용 또는 누락과 같이 프로그램의 작성 과정에서 발생할 수 있는 단순한 실수로 인하여 반복 활성화되는 에러 메시지는 어린이들의 알고리즘 교육에 대한 관심을 희석시키며 알고리즘 교육을 포기하는 원인이 되고 있다. 종래 소트트웨어 교육은 소트프웨어를 활용하는데 중점을 둔 것으로, 이러한 소프트웨어 교육은 어린이가 스스로 자신이 필요한 소트프웨어의 알고리즘을 작성하는데 도움을 주지 못한다는 문제점을 가진다. 따라서 어린이가 스스로 필요한 알고리즘을 작성할 수 있는 쉽고 흥미로운 교육 방안에 대한 요구가 절실하다. 이러한 요구를 반영하여 다양한 알고리즘 생성 장치가 개발되어 사용되고 있다. 알고리즘 생성 장치는 알고리즘을 생성할 뿐만 아니라 장난감과 연결되어 생성한 알고리즘으로 장난감을 구동함으로써, 어린이들로 하여금 보다 큰 재미와 흥미를 느끼게 해준다. 그러나 종래 알고리즘 생성 장치의 경우 단순히 블록을 삽입하여 알고리즘을 생성하기 때문에 어린이는 블록의 종류와 삽입 위치만을 확인할 수 있으며, 구체적으로 본인이 작성한 알고리즘이 프로그래밍 언어로 어떻게 작성되는지 직접 확인할 수 없어 소프트웨어 교육에 한계를 가진다. 본 발명은 위에서 언급한 종래 알고리즘 생성 장치가 가지는 문제점을 해결하기 위한 것으로, 본 발명이 이루고자 하는 목적은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하고 사용자에 출력하여 소프트웨어 교육을 도와줄 수 있는 알고리즘 생성 방법을 제공하는 것이다. 본 발명이 이루고자 하는 다른 목적은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 생성하여 사용자에 출력할 수 있는 알고리즘 생성 방법을 제공하는 것이다. 본 발명이 이루고자 하는 또 다른 목적은 명령 블록에 해당하는 동일한 프로그래밍 언어로 작성된 다수의 명령문 중 랜덤하게 선택된 명령문으로 소스 코드를 생성하는 알고리즘 생성 방법을 제공하는 것이다. 본 발명의 목적을 달성하기 위하여, 본 발명에 따른 알고리즘 생성 방법 동작 본체에 삽입 장착된 명령 블록의 식별자를 제공받는 단계와, 명령 블록 식별자에 해당하는 명령문의 조합으로 소스 코드를 생성하고 소스 코드를 사용자에 제공하는 단계를 포함하는 것을 특징으로 한다. 여기서 명령 블록은 동작 본체의 이벤트 영역에 삽입된 이벤트 블록과 동작 본체의 실행 영역에 삽입된 실행 블록인 것을 특징으로 한다. 바람직하게, 본 발명에 따른 소스 코드를 생성하는 단계는 동작 본체의 이벤트 영역에 삽입된 이벤트 블록과 이벤트 블록에 할당된, 동작 본체의 실행 영역에 삽입된 실행 블록을 구분하여 인식하는 단계와, 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자를 저장부에 등록된 명령 식별자와 비교하여 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는 명령문을 선택하는 단계와, 이벤트 블록에 할당된, 동작 본체의 실행 영역에 삽입된 실행 블록의 순차적 삽입 위치 또는 삽입 순서에 기초하여 이벤트 블록의 명령문과 실행 블록의 명령문의 조합으로부터 소스 코드를 생성하는 단계를 포함하는 것을 특징으로 한다. 바람직하게, 본 발명에 따른 알고리즘 생성 방법은 프로그래밍 언어를 선택하기 위한 사용자 명령을 수신하는 단계를 더 포함하며, 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어 중 사용자 명령에 의해 선택한 프로그래밍 언어에 해당하는 명령문의 조합으로 소스 코드를 생성하는 것을 특징으로 한다. 본 발명에 따른 알고리즘 생성 방법은 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는, 동일한 프로그래밍 언어로 표현된 다수의 명령문 중 랜덤하게 선택된 명령문의 조합으로 소스 코드를 생성하는 것을 특징으로 한다. 여기서 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는 명령문을 서버로부터 수신하며, 이벤트 블록에 할당된, 동작 본체의 실행 영역에 삽입된 실행 블록의 순차적 삽입 위치 또는 삽입 순서에 기초하여 수신한 이벤트 블록의 명령문과 실행 블록의 명령문의 조합으로부터 소스 코드를 생성하는 것을 특징으로 한다. 한편, 본 발명의 일 실시예에 따른 알고리즘 생성 장치 명령 식별자를 구비하는 명령 블록과, 명령 블록이 삽입되는 삽입홈이 형성되어 있으며 삽입홈에 삽입된 명령 블록의 조합으로 소스 코드를 생성하여 소스 코드를 사용자 단말기로 제공하는 본체를 포함하는 것을 특징으로 한다. 바람직하게, 본 발명에 따른 본체는 명령 블록이 삽입되는 삽입홈이 형성되는 하우징과, 명령 블록의 명령 식별자와 명령 식별자에 해당하는 명령문을 저장하고 있는 저장부와, 삽입홈에 삽입된 명령 블록의 명령 식별자를 획득하는 식별자 획득부와, 획득한 명령 식별자에 해당하는 명령문을 저장부에서 검색하는 검색부와, 명령 블록이 삽입된 삽입홈의 위치 또는 삽입홈의 순서에 기초하여 삽입홈에 삽입된 명령 블록에 해당하는 각 명령문으로부터 삽입된 명령 블록의 조합에 해당하는 소스 코드를 생성하는 소스 코드 생성부를 포함하는 것을 특징으로 한다. 여기서 명령 블록은 조건문 명령을 입력하는 이벤트 블록과 실행문 명령을 입력하는 실행 블록을 구비하며, 하우징에는 이벤트 블록이 삽입되는 이벤트 삽입홈이 형성되어 있는 이벤트 영역과 실행 블록이 삽입되는 실행 삽입홈이 형성되어 있는 실행 영역을 구비하는 것을 특징으로 한다. 바람직하게, 본 발명에 따른 본체는 사용자 명령을 입력하기 위한 사용자 인터페이스부를 더 포함하며, 저장부에는 동일한 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어로 표현된 명령문이 저장되어 있는데, 검색부는 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어 중 사용자 인터페이스부를 통해 입력된 언어 선택 명령에 따라 선택한 프로그래밍 언어에 해당하는 명령문을 검색하는 것을 특징으로 한다. 본 발명에 따른 소스 코드 생성부는 이벤트 삽입홈에 삽입된 이벤트 블록과 이벤트 삽입홈에 할당된 실행 삽입홈을 구분하여 인식하며, 이벤트 삽입홈에 삽입된 이벤트 블록에 해당하는 명령문과 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록에 해당하는 명령문의 조합으로부터 소스 코드를 생성하는 것을 특징으로 한다. 본 발명에 따른 소스 코드 생성부는 이벤트 삽입홈에 삽입된 이벤트 블록과 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록의 순차적인 삽입 순서에 기초하여 이벤트 블록에 해당하는 명령문과 실행 블록에 해당하는 명령문을 실행 블록의 순차적인 삽입 순서로 나열하여 소스 코드를 생성하는 것을 특징으로 한다. 본 발명에 따른 저장부에는 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 저장되어 있으며, 검색부에서 검색한 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는, 저장부에 저장된 동일한 프로그래밍 언어로 표현된 다수의 명령문 중 랜덤하게 1개의 명령문을 선택하는 랜덤 선택부를 더 포함하며, 랜덤 선택부는 선택한 명령문을 소스 코드 생성부로 제공하는 것을 특징으로 하는 한다. 본 발명에 따른 알고리즘 생성 방법 및 장치는 다음과 같은 효과를 가진다. 첫째, 본 발명에 따른 알고리즘 생성 방법은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하고 사용자에 출력함으로써, 사용자는 본인이 작성한 알고리즘을 프로그래밍 언어의 소스 코드로 확인하여 소프트웨어 교육에 도움을 줄 수 있다. 둘째, 본 발명에 따른 알고리즘 생성 방법은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 작성하여 사용자에 출력함으로써, 다양한 종류의 프로그래밍 언어를 사용자에 교육시킬 수 있다. 셋째, 본 발명에 따른 알고리즘 생성 방법은 명령 블록에 해당하는 동일한 프로그래밍 언어로 작성된 다수의 명령문 중 랜덤하게 선택된 명령문으로 소스 코드를 생성함으로써, 동일한 프로그래밍 언어에 해당하는 다양한 표현 방식의 명령문으로 사용자에 프로그래밍 언어를 교육시킬 수 있다. 도 1은 본 발명에 따른 알고리즘 생성 시스템을 설명하기 위한 도면이다. 도 2는 본 발명에 따른 동작 본체를 설명하기 위한 사시도이다. 도 3은 본 발명에 따른 장난감과 해당 장난감에 사용되는 명령 블록의 일 예를 설명하기 위한 도면이다. 도 4는 동작 본체에서 소스 코드를 생성하는 본 발명의 일 예 실시예에 따른 동작 본체의 기능을 설명하기 위한 기능 블록도이다. 도 5는 도 4에서 설명한 본 발명에 따른 소스 코드 생성부의 일 예를 설명하기 위한 기능 블록도이다. 도 6은 서버에서 소스 코드를 생성하는 본 발명의 다른 일 실시예에 따른 서버를 설명하기 위한 기능 블록도이다. 도 7은 도 6에서 설명한 소스 코드 생성부의 일 예를 설명하기 위한 기능 블록도이다. 도 8은 본 발명의 다른 실시예에 따른 서버를 설명하기 위한 기능 블록도이다. 도 9는 서버로부터 수신한 명령문에 기초하여 소스 코드를 생성하는 사용자 단말기를 설명하기 위한 기능 블록도이다. 도 10은 본 발명의 일 실시예에 따른 소스 코드의 생성 단계를 설명하기 위한 도면이다. 도 11은 본 발명의 다른 실시예에 따른 소스 코드의 생성 단계를 설명하기 위한 도면이다. 도 12는 본 발명에 따라 프로그래밍 언어를 선택하여 소스 코드를 생성하는 방법을 설명하기 위한 흐름도이다. 도 13은 명령 블록 식별자에 동일한 프로그래밍 언어로 상이하게 표현한 명령문의 일 예를 도시하고 있다. 도 14는 C와 C++로 서로 상이한 프로그래밍 언어로 표현된 소스 코드의 일 예를 도시하고 있다. 본 발명에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서, "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다. 이하 첨부한 도면을 참고로 본 발명에 따른 알고리즘 생성 방법을 보다 구체적으로 살펴본다. 도 1은 본 발명에 따른 알고리즘 생성 시스템을 설명하기 위한 도면이다. 도 1을 참고로 보다 구체적으로 살펴보면, 알고리즘 생성 시스템은 명령 블록을 이용하여 알고리즘을 작성하는 동작 본체(10), 동작 본체(10)로부터 명령 블록 식별자와 명령 블록의 삽입 위치 또는 삽입 순서에 대한 정보를 수신하는 사용자 단말기(30) 및 명령 블록에 해당하는 프로그래밍 언어의 명령문을 저장하고 있는 서버(70)를 구비하고 있다. 여기서 사용자 단말기(30)와 서버(70)는 서로 데이터를 송수신할 수 있는 유선 또는 무선 네트워크(50)로 접속되어 있으며, 동작 본체(10)와 사용자 단말기(30)는 데이터를 송수신할 수 있는 근거리 무선 통신 또는 유선 통신을 통해 접속되어 있다. 동작 본체(10)는 명령 블록, 예를 들어 이벤트 블록, 실행 블록 등을 동작 본체(10)에 형성되어 있는 삽입홈에 삽입하여 명령 블록의 조합으로 알고리즘을 작성하는데 이용된다. 바람직하게, 동작 본체(10)에는 명령 블록 중 이벤트 블록이 삽입되는 이벤트 삽입홈이 형성되어 있는 이벤트 영역과 명령 블록 중 실행 블록이 삽입되는 실행 삽입홈이 형성되어 있는 실행 영역으로 구분되어 있는데, 여기서 이벤트 블록과 실행 블록은 서로 조합을 이루어 알고리즘을 작성하는데 사용된다. 더욱 바람직하게, 다수의 실행 삽입홈은 1개의 이벤트 삽입홈에 할당되어 있어 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록들은 이벤트 삽입홈에 삽입된 이벤트 블록과 조합을 이루어 알고리즘을 작성하는데 사용된다. 예를 들어, 이벤트 영역의 첫번째 이벤트 삽입홈에는 첫번째 열의 실행 영역이 종속되어 할당되며 이벤트 영역의 두번째 이벤트 삽입홈에는 두번째 열의 실행 영역이 종속되어 할당된다. 바람직하게, 이벤트 삽입홈과 실행 삽입홈은 서로 다른 형상을 가지며 이벤트 삽입홈에 삽입되는 이벤트 블록과 실행 삽입홈에 삽입되는 실행 블록은 이벤트 삽입홈의 형상 또는 실행 삽입홈의 형상에 상응하도록 제작되어 어린이도 이벤트 블록과 실행 블록을 용이하게 구분하여 알고리즘을 작성하도록 도와준다. 본 발명의 일 예에서 동작 본체(10)에 삽입된 이벤트 블록 또는 실행 블록의 명령 블록으로부터 작성한 알고리즘의 소스 코드는 동작 본체에서 생성되어 사용자 단말기(30)로 제공할 수 있다. 본 발명의 일 예에서 동작 본체의 이벤트 영역에 삽입된 이벤트 블록과 이벤트 블록에 할당된, 동작 본체의 실행 영역에 삽입된 실행 블록을 구분하여 인식하고, 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자를 본체 저장부에 등록된 명령 식별자와 비교하여 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는 명령문을 검색하며, 이벤트 블록에 할당된, 동작 본체의 실행 영역에 삽입된 실행 블록의 순차적 삽입 위치 또는 삽입 순서에 기초하여 이벤트 블록의 명령문과 실행 블록의 명령문의 조합으로부터 소스 코드를 생성한다. 본 발명의 다른 예에서 동작 본체(10)에 삽입된 이벤트 블록 또는 실행 블록의 명령 블록으로부터 작성한 알고리즘의 소스 코드는 서버(70)에서 명령 블록 식별자를 수신하여 생성하며 생성한 소스 코드를 사용자 단말기(30)로 제공할 수 있다. 이 경우 동작 본체(10)에 삽입된 이벤트 블록 또는 실행 블록의 식별자, 이벤트 블록 또는 실행 블록이 삽입된 삽입홈의 식별자는 동작 본체(10)에서 서버(70)로 송신되거나 사용자 단말기(30)를 통해 서버(70)로 송신될 수 있다. 본 발명의 다른 예에서 서버(70)는 이벤트 블록 식별자 또는 실행 블록 식별자를 등록된 명령 블록 식별자와 비교하여 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문을 서버(70)의 저장부에서 검색하며, 검색한 명령문을 이용하여 사용자가 선택한 프로그래밍 언어로 소스 코드를 직접 생성하여 사용자 단말기로 송신하거나 검색한 명령문을 사용자 단말기(50)로 송신한다. 즉, 서버(70)는 검색한 명령문을 이용하여 소스 코드를 생성하여 사용자 단말기(50)로 생성한 소스 코드를 송신하거나, 검색한 명령문만을 사용자 단말기(50)로 송신하여 사용자 단말기(50)에서 소스 코드를 생성하도록 한다. 도 2는 본 발명에 따른 동작 본체를 설명하기 위한 사시도이다. 도 2를 참고로 보다 구체적으로 살펴보면, 동작 본체의 하우징(101) 상단에는 변수 영역(V)이 형성되어 있으며, 변수 영역(V)의 하단에는 이벤트 블록 장착부(103)를 구비하는 이벤트 영역(E)이 형성되어 있으며, 이벤트 영역(E)의 하단에는 실행 블록 장착부(105)를 구비하는 실행 영역(A)이 형성되어 있다. 여기서 변수 영역(V)은 조건을 표시하도록 온/오프 활성화되는 다수의 LED로 구성되어 있다. 한편, 실행 영역(A)의 하단에는 사용자 명령을 입력하기 위한 다양한 버튼으로 이루어진 사용자 인터페이스(UI)가 배치되어 있다. 이벤트 영역(E)은 다수의 이벤트 블록 장착부(103)를 구비하며 각 이벤트 블록 장착부(103)에는 이벤트 블록(210)을 삽입 장착할 수 있는 이벤트 삽입홈이 형성되어 있다. 또한, 실행 영역(A)은 다수의 실행 블록 장착부(105)를 구비하며 각 실행 블록 장착부(105)에는 실행 블록(230)을 삽입 장착할 수 있는 실행 삽입홈이 형성되어 있다. 1개의 이벤트 블록에는 다수의 실행 블록이 종속되어 1개의 이벤트 블록과 적어도 1개 이상의 실행 블록의 조합으로 알고리즘을 생성한다. 따라서 다수의 실행 삽입홈은 1개의 이벤트 삽입홈에 할당되어 있어 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록들은 이벤트 삽입홈에 삽입된 이벤트 블록과 조합을 이루어 알고리즘을 작성하는데 사용된다. 예를 들어, 이벤트 영역(E)의 첫번째 이벤트 블록 장착부에는 첫번째 열의 실행 영역(A)이 종속되어 할당되며 이벤트 영역의 두번째 이벤트 블록 장착부에는 두번째 열의 실행 영역(E)이 종속되어 할당된다. 따라서 바람직하게, 이벤트 삽입홈과 실행 삽입홈은 서로 다른 형상을 가지며 이벤트 삽입홈에 삽입되는 이벤트 블록과 실행 삽입홈에 삽입되는 실행 블록은 이벤트 삽입홈의 형상 또는 실행 삽입홈의 형상에 상응하도록 제작되어 어린이도 이벤트 블록과 실행 블록을 용이하게 구분하여 알고리즘을 작성하도록 도와준다. 사용자는 이벤트 블록(210)을 이벤트 블록 장착부(103)에 장착하거나 실행 블록(230)을 실행 블록 장착부(105)에 장착하거나, 변수 영역의 LED로 조건을 입력하여 알고리즘을 작성한다. 도 3은 본 발명에 따른 장난감과 해당 장난감에 사용되는 명령 블록의 일 예를 설명하기 위한 도면이다. 도 3을 참고로 살펴보면, 장난감(20)에 해당하는 명령 블록은 이벤트 블록(211, 212, 213, 214, 215...)과 실행 블록(231, 232, 233, 234, 235,...)으로 구분되어 있다. 장난감은 서로 상이한 동작과 기능을 수행하기 위한 이벤트 블록과 실행 블록을 구비할 수 있는데, 사용자는 장난감과 함께 또는 별개로 이벤트 블록 또는 실행 블록을 구매할 수 있다. 여기서 이벤트 블록은 장난감을 구동하기 위한 조건 명령을 입력하기 위해 사용되며, 실행 블록은 해당 이벤트 블록에 매핑되어 해당 조건 명령을 만족하는 경우 장난감을 구동하기 위한 실행 명령을 입력하기 위해 사용될 수 있다. 예를 들어, 자동차 장난감에는 "소리가 있으면", "빛이 감지되면" 등의 조건 명령을 입력하기 위한 이벤트 블록과 "앞으로 이동하라", "뒤로 이동하라", "좌회전해라", "우회전해라"의 실행 명령을 입력하기 위한 실행 블록이 사용된다. 사용자는 자동차 장난감에 사용되는 다양한 액세서리와 해당 액세서리를 구동하기 위한 실행 블록을 추가 구매할 수 있는데, 예를 들어 자동차 장난감에 자석으로 부착되는 헤드라이트를 추가 구매하는 경우 헤드라이트를 구동하기 위한 실행 블록이 추가된다. 도 4는 동작 본체에서 소스 코드를 생성하는 본 발명의 일 예 실시예에 따른 동작 본체의 기능을 설명하기 위한 기능 블록도이다. 도 4를 참고로 보다 구체적으로 살펴보면, 획득부(110)는 명령 블록 삽입홈에 삽입 장착된 이벤트 블록 또는 실행 블록의 식별자를 획득한다. 획득부(110)의 일 예는 이벤트 삽입홈 또는 실행 삽입홈에 형성되어 있는 접속핀을 구비하며 접속핀에 전기적으로 접속되는 이벤트 블록의 접속단자를 통해 이벤트 블록으로부터 이벤트 블록 식별자를 획득하거나 접속핀에 전기적으로 접속되는 실행 블록의 접속단자를 통해 실행 블록으로부터 실행 블록 식별자를 획득할 수 있다. 획득부(110)의 다른 예는 명령 블록 삽입홈에 NFC 리더가 배치되어 있으며 NFC 리더를 통해 이벤트 블록에 구비되어 있는 NFC칩으로부터 이벤트 블록의 이벤트 블록 식별자를 획득하거나 실행 블록에 구비되어 있는 NFC칩으로부터 실행 블록의 실행 블록 식별자를 획득할 수 있다. 획득부(110)는 이벤트 삽입홈에 삽입된 이벤트 블록의 식별자와 이벤트 블록이 삽입된 이벤트 삽입홈의 식별자에 대한 정보를 검색부(130)로 제공하거나 실행 삽입홈에 삽입된 실행 블록의 식별자와 실행 블록이 삽입된 실행 삽입홈의 식별자에 대한 정보를 검색부(130)로 제공한다. 검색부(130)는 이벤트 블록 식별자 또는 실행 블록 식별자를 저장부(140)에 저장된 명령 블록 식별자와 비교하여 이벤트 블록 식별자와 일치하는 명령 블록 식별자에 매핑되어 저장된 조건 명령문을 검색하거나, 실행 블록 식별자와 일치하는 명령 블록 식별자에 매핑되어 저장된 실행 명령문을 검색한다. 검색부(130)는 검색한 조건 명령문 또는 실행 명령문을 소스 코드 생성부(190)로 제공한다. 그러나 검색부(130)에서 이벤트 블록 식별자와 일치하는 명령 블록 식별자가 존재하지 않거나 실행 블록 식별자와 일치하는 명령 블록 식별자가 존재하지 않는 경우, 검색부(130)는 검색되지 않은 명령 블록 식별자를 갱신부(150)로 제공한다. 갱신부(150)는 통신부(160)를 통해 서버와 접속하여 서버로부터 검색되지 않은 명령 블록 식별자에 해당하는 명령문을 수신받아 검색부(130)로 제공한다. 검색부(130)는 수신받은 명령 블록 식별자에 해당하는 명령문을 소스 코드 생성부(190)로 제공하며, 수신받은 명령 블록 식별자와 해당하는 명령문을 저장부(140)에 갱신 등록한다. 바람직하게, 저장부(140)에는 명령 블록 식별자에 매핑되어 있는, 서로 상이한 프로그래밍 언어로 작성된 다수의 명령문이 저장되어 있을 수 있는데, 검색부(130)는 사용자 인터페이스부(180)로부터 입력되는 프로그래밍 언어 선택 명령에 따라 이벤트 블록 식별자에 해당하는 명령문 중 선택된 프로그래밍 언어로 작성된 명령문을 검색하거나 실행 블록 식별자에 해당하는 명령문 중 선택된 프로그래밍 언어로 작성된 명령문을 검색하고 검색한 명령문을 소스 코드 생성부(190)로 제공할 수 있다. 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문은 다양한 종류의 프로그래밍 언어, 예를 들어 C, C++, 베이직, 포트란 등으로 작성되어 서버 저장부에 저장되어 있는데 사용자는 이벤트 블록 및 실행 블록의 조합으로부터 생성되는 소스 코드의 프로그래밍 언어를 선택하고 선택한 프로그래밍 언어로 생성되는 소스 코드를 확인할 수 있다. 더욱 바람직하게, 저장부(140)에는 동일한 명령 블록 식별자에 매핑되어 있는, 서로 동일한 프로그래밍 언어로 상이한 방식으로 표현된 다수의 명령문이 저장되어 있을 수 있는데, 랜덤 선택부(170)는 검색부(140)에서 명령 블록 식별자에 매핑되어 있는, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 검색되는 경우 다수의 명령문 중 1개의 명령문을 랜덤하게 선택하고 선택한 명령문을 소스 코드 생성부(190)로 제공할 수 있다. 여기서 랜덤 선택부(170)는 선택 이력에 기초하여 다수의 명령문 중 이전에 선택되지 않은 명령문들 중에서 1개의 명령문을 랜덤하게 선택할 수 있다. 이와 같이, 동일한 프로그래밍 언어를 사용하더라도 조건 명령문 또는 실행 명령문은 프로그램 작성자의 성향과 실력에 따라 상이하게 작성될 수 있는데, 이벤트 블록 또는 실행 블록에 해당하는 명령문을 동일한 프로그래밍 언어로 표현한 다수의 명령문으로 사용자에 제공함으로써, 사용자는 다양한 표현 방식으로 소스 코드를 교육받을 수 있다. 소스 코드 생성부(190)는 이벤트 블록의 조건 명령문과 해당 이벤트 블록에 할당된 실행 블록들에 해당하는 실행 명령문의 조합으로부터 이벤트 블록과 실행 블록의 조합으로 작성된 알고리즘에 대한 프로그래밍 언어의 소스 코드를 생성한다. 도 5는 도 4에서 설명한 본 발명에 따른 소스 코드 생성부의 일 예를 설명하기 위한 기능 블록도이다. 도 5를 참고로 보다 구체적으로 살펴보면, 조합 인식부(191)는 동작 본체에 삽입된 이벤트 블록의 이벤트 삽입홈 식별자 또는 동작 본체에 삽입된 실행 블록의 실행 삽입홈 식별자에 기초하여 이벤트 삽입홈에 삽입된 이벤트 블록에 할당된 실행 블록의 조합을 인식한다. 순서 판단부(193)는 이벤트 블록과 해당 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 삽입홈 식별자와 실행 블록 식별자에 기초하여 삽입홈에 순차적으로 삽입된 실행 블록의 삽입 위치 또는 삽입 순서를 판단한다. 코드 생성부(195)는 이벤트 블록과 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 블록의 순차적 삽입 순서로 이벤트 블록에 해당하는 명령문과 실행 블록의 명령문을 순차적으로 나열하여 소스 코드를 생성한다. 즉, 소스 코드는 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문의 조합으로 생성되는데, 이벤트 블록에 할당된 실행 블록의 삽입 위치 또는 삽입 순서를 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 판단하고 판단한 실행 블록의 삽입 위치 또는 삽입 순서로 순차적으로 조건 명령문과 실행 명령문을 나열하여 소스 코드를 생성한다. 여기서 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문은 기작성되어 저장부에 저장되어 있으며, 이벤트 블록과 실행 블록의 조합을 판단하고 실행 블록의 삽입 순서에 따라서 기작성된 조건 명령문과 실행 명령문을 순차적으로 나열하여 소스 코드를 생성한다. 도 6은 서버에서 소스 코드를 생성하는 본 발명의 다른 일 실시예에 따른 서버를 설명하기 위한 기능 블록도이다. 도 6에서 설명하는 본 발명의 일 실시예에 따른 서버는 소스 코드를 생성하고 생성한 소스 코드를 사용자 단말기로 제공하는데, 도 6을 참고로 보다 구체적으로 살펴본다. 서버 통신부(310)는 사용자 단말기로부터 이벤트 블록 식별자, 실행 블록 식별자, 이벤트 삽입홈 식별자, 실행 삽입홈 식별자 등을 수신한다. 이와 함께 서버 통신부(310)는 사용자 단말기로부터 서버의 접속 권한을 인증하기 위한 인증 정보를 수신한다. 접속 인증부(320)는 수신한 인증 정보와 데이터베이스(340)에 등록 저장된 인증 정보를 비교하여 사용자 또는 동작 본체가 서버에 접속할 권한이 있는지 여부를 판단한다. 접속 인증부(320)는 서버의 접속 권한을 인증 완료한 경우, 인증 완료 정보를 검색부(330)로 제공한다. 검색부(330)는 인증이 완료된 경우, 이벤트 블록 식별자 또는 실행 블록 식별자를 저장부(350)에 등록된 명령 블록 식별자와 비교하여 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령어를 저장부(350)에서 검색한다. 바람직하게, 검색부(330)는 사용자 단말기로부터 언어 선택 명령을 수신하는 경우, 저장부(350)에 저장된, 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 다양한 프로그래밍 언어로 작성된 명령문 중에서 언어 선택 명령에 해당하는 프로그래밍 언어로 작성된 명령문을 검색할 수 있다. 바람직하게, 저장부(350)에는 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 동일한 프로그래밍 언어로 다양한 표현 방식으로 작성된 다수의 명령문이 검색될 수 있는데, 랜덤 선택부(370)는 검색된 다수의 명령문 중 1개의 명령문을 랜덤하게 선택하거나 이전 선택 이력에 기초하여 이전에 선택되지 않은 명령문을 선택하고 선택한 명령문을 소스 코드 생성부(390)로 제공할 수 있다. 소스 코드 생성부(390)는 검색한 명령어와 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 검색한 명령어 조합으로 이루어진 소스 코드를 생성하고, 생성한 소스 코드를 서버 통신부(310)를 통해 사용자 단말기로 송신한다. 도 7은 도 6에서 설명한 소스 코드 생성부의 일 예를 설명하기 위한 기능 블록도이다. 도 7을 참고로 보다 구체적으로 살펴보면, 조합 인식부(391)는 사용자 단말기로부터 수신한 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 이벤트 삽입홈에 삽입된 이벤트 블록에 할당된 실행 블록의 조합을 인식한다. 순서 판단부(393)는 이벤트 블록과 해당 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 삽입홈 식별자와 실행 블록 식별자에 기초하여 삽입홈에 순차적으로 삽입된 실행 블록의 삽입 위치 또는 삽입 순서를 판단한다. 코드 생성부(395)는 이벤트 블록과 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 블록의 순차적 삽입 순서로 이벤트 블록에 해당하는 명령문과 실행 블록의 명령문을 순차적으로 나열하여 소스 코드를 생성한다. 도 8은 본 발명의 다른 실시예에 따른 서버를 설명하기 위한 기능 블록도이다. 도 8에서 설명하는 본 발명의 다른 실시예에 따른 서버는 명령 블록 식별자에 해당하는 명령문을 검색하고 검색한 명령문을 사용자 단말기로 제공하는데, 도 8을 참고로 보다 구체적으로 살펴본다. 서버 통신부(410)는 사용자 단말기로부터 이벤트 블록 식별자, 실행 블록 식별자를 수신한다. 이와 함께 서버 통신부(410)는 사용자 단말기로부터 서버의 접속 권한을 인증하기 위한 인증 정보를 수신한다. 접속 인증부(430)는 수신한 인증 정보와 데이터베이스(440)에 등록 저장된 인증 정보를 비교하여 사용자 또는 동작 본체가 서버에 접속할 권한이 있는지 여부를 판단한다. 접속 인증부(430)는 서버의 접속 권한을 인증 완료한 경우, 인증 완료 정보를 검색부(450)로 제공한다. 검색부(450)는 인증이 완료된 경우, 이벤트 블록 식별자 또는 실행 블록 식별자를 저장부(470)에 등록된 명령 블록 식별자와 비교하여 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령어를 저장부(470)에서 검색하고 검색한 명령어를 서버 통신부(410)를 통해 사용자 단말기로 송신한다. 바람직하게, 검색부(450)는 사용자 단말기로부터 언어 선택 명령을 수신하는 경우, 저장부(470)에 저장된, 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 다양한 프로그래밍 언어로 작성된 명령문 중 언어 선택 명령에 해당하는 프로그래밍 언어로 작성된 명령문을 검색할 수 있다. 바람직하게, 저장부(470)에는 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 동일한 프로그래밍 언어로 다양한 표현 방식으로 작성된 다수의 명령문이 검색될 수 있는데, 랜덤 선택부(490)는 검색된 다수의 명령문 중에서 1개의 명령을 랜던하게 선택하거나 이전 선택 이력에 기초하여 이전에 선택되지 않은 명령문을 선택하고 선택한 명령문을 서버 통신부(410)을 통해 사용자 단말기로 송신할 수 있다. 도 9는 서버로부터 수신한 명령문에 기초하여 소스 코드를 생성하는 사용자 단말기를 설명하기 위한 기능 블록도이다. 도 9를 참고로 보다 구체적으로 살펴보면, 단말기 통신부(510)는 동작 본체로부터 이벤트 블록 식별자, 실행 블록 식별자, 이벤트 삽입홈 식별자, 실행 삽입홈 식별자 등의 정보를 수신한다. 사용자 인터페이스부(550)를 통해 프로그래밍 언어를 선택하기 위한 사용자 명령, 서버 접속 권한을 인증하기 위한 사용자 명령 등이 입력되는데, 생성 제어부(530)는 접속 권한 인증 정보를 단말기 통신부(510)를 통해 서버로 송신하여 접속 권한을 인증받거나 이벤트 블록 식별자 또는 실행 블록 식별자를 언어 선택 정보와 함께 서버로 송신한다. 생성 제어부(530)는 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문을 수신하는 경우, 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자로부터 판단된 이벤트 블록과 이벤트 블록에 할당된 다수의 실행 블록의 조합 정보와 실행 블록의 삽입 순서 정보를 명령문과 함께 소스 코드 생성부(570)로 제공한다. 소스 코드 생성부(570)는 이벤트 블록과 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 블록의 순차적 삽입 순서로 이벤트 블록에 해당하는 명령문과 실행 블록의 명령문을 순차적으로 나열하여 소스 코드를 생성하며, 생성한 소스 코드를 출력부(590)로 제공한다. 출력부(590)는 소스 코드를 출력할 수 있는 수단으로 예를 들어 디스플레이부가 사용될 수 있다. 사용자는 출력부(590)를 통해 동작 본체와 명령 블록을 이용하여 작성한 알고리즘에 해당하는 프로그래밍 언어를 확인할 수 있다. 도 10은 본 발명의 일 실시예에 따른 소스 코드의 생성 단계를 설명하기 위한 도면이다. 도 10을 참고로 보다 구체적으로 살펴보면, 본체에 삽입된 이벤트 블록 식별자 또는 실행 블록 식별자와 함께 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자를 수신하는 경우, 이벤트 삽입홈 식별자와 실행 삽입홈 식별자에 기초하여 이벤트 블록에 할당 종속된 적어도 1개 이상의 실행 블록을 인식한다(S151). 이벤트 블록 식별자 또는 실행 블록 식별자에 일치하는 명령문을 저장부에서 검색하고(S152), 이벤트 블록과 실행 블록의 조합에 해당하는 명령문의 조합으로부터 프로그래밍 언어의 소스 코드를 생성한다(S153). 여기서 소스 코드는 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문의 조합으로 생성되는데, 이벤트 블록에 할당된 실행 블록의 삽입 위치 또는 삽입 순서를 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 판단하고 판단한 실행 블록의 삽입 위치 또는 삽입 순서로 순차적으로 조건 명령문과 실행 명령문을 나열하여 소스 코드를 생성한다. 여기서 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문은 기작성되어 저장부에 저장되어 있으며, 이벤트 블록과 실행 블록의 조합을 판단하고 실행 블록의 삽입 순서에 따라서 기작성된 조건 명령문과 실행 명령문을 순차적으로 나열하여 소스 코드를 생성한다. 생성한 소스 코드를 사용자에 출력하는데(S154), 사용자로 하여금 사용자가 작성한 알고리즘에 해당하는 프로그래밍 언어의 소스 코드를 확인할 수 있도록 디스플레이부에 출력한다. 도11은 본 발명의 다른 실시예에 따른 소스 코드의 생성 단계를 설명하기 위한 도면이다. 도 11은 서버에서 제공된 명령문에 기초하여 사용자 단말기에서 소스 코드를 생성하는 다른 실시예를 설명하기 위한 것으로 도 11을 참고로 보다 구체적으로 살펴보면, 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문을 서버로부터 수신하는 경우(S155), 동작 본체로부터 이벤트 블록 식별자 또는 실행 블록 식별자와 함께 수신한 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 이벤트 블록에 할당 종속된 적어도 1개 이상의 실행 블록을 인식한다(S156). 이벤트 블록과 실행 블록의 조합에 해당하는 명령문의 조합으로부터 프로그래밍 언어의 소스 코드를 생성한다(S157). 여기서 소스 코드는 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문의 조합으로 생성되는데, 이벤트 블록에 할당된 실행 블록의 삽입 위치 또는 삽입 순서를 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 판단하고 판단한 실행 블록의 삽입 위치 또는 삽입 순서로 순차적으로 조건 명령문과 실행 명령문을 나열하여 소스 코드를 생성한다. 생성한 소스 코드를 디스플레이부에 출력하여 사용자로 하여금 사용자가 작성한 알고리즘에 해당하는 프로그래밍 언어의 소스 코드를 확인할 수 있도록 한다(S158). 도 12는 본 발명에 따라 프로그래밍 언어를 선택하여 소스 코드를 생성하는 방법을 설명하기 위한 흐름도이다. 도 12를 참고로 보다 구체적으로 살펴보면, 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문은 다양한 종류의 프로그래밍 언어, 예를 들어 C, C++, 베이직, 포트란 등으로 작성되어 본체 또는 서버의 저장부에 저장되어 있는데 사용자는 이벤트 블록 및 실행 블록의 조합으로부터 생성되는 소스 코드의 프로그래밍 언어를 선택하고 선택한 프로그래밍 언어로 생성되는 소스 코드를 확인할 수 있다. 따라서 본 발명에 따른 소스 코드의 생성 방법은 다양한 종류의 프로그래밍 언어를 사용자에 교육시킬 수 있는데, 먼저 본체 또는 사용자 단말기를 통해 프로그래밍 언어를 선택하기 위한 사용자 명령이 입력되었는지 판단한다(S210). 이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문 중 입력된 사용자 명령에 해당하는 프로그래밍 언어로 작성된 명령문을 검색한다(S230). 한편, 저장부에는 1개의 이벤트 블록 또는 1개의 실행 블록에 동일한 프로그래밍 언어를 이용하여 다양하게 표현된 다수의 명령문이 매핑 등록되어 있을 수 있는데, 이벤트 블록 식별자 또는 실행 블록 식별자에 동일한 프로그래밍 언어로 표현된 다수의 명령문이 존재하는지 판단하여(S250), 다수의 명령문이 존재하는 경우 다수의 명령문 중 1개의 명령문을 선택하고 선택한 명령문을 이용하여 소스 코드를 생성한다(S270). 바람직하게, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 존재하는 경우, 랜덤하게 1개의 명령문을 선택하거나 선택 이력에 기초하여 이전에 선택되지 않은 명령문을 선택할 수 있다. 이와 같이, 동일한 프로그래밍 언어를 사용하더라도 조건 명령문 또는 실행 명령문은 프로그램 작성자의 성향과 실력에 따라 상이하게 작성될 수 있는데, 이벤트 블록 또는 실행 블록에 해당하는 명령문을 동일한 프로그래밍 언어로 표현한 다수의 명령문으로 사용자에 제공함으로써, 사용자는 다양한 표현 방식으로 소스 코드를 작성하도록 교육받을 수 있다. 도 13은 명령 블록 식별자에 동일한 프로그래밍 언어로 상이하게 표현한 명령문의 일 예를 도시하고 있으며, 도 14는 C와 C++로 서로 상이한 프로그래밍 언어로 표현된 소스 코드의 일 예를 도시하고 있다. 한편, 상술한 본 발명의 실시 예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는 마그네틱 저장 매체(예를 들어, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장 매체를 포함한다. 본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다. The present invention relates to an algorithm generation method and a device therefor and, more specifically, to an algorithm generation method and a device therefor, the method: generating, as a source code in a programming language, an algorithm created by a command block inserted into an operation body such that a user can check a source code of an algorithm created by the user; and creating a source code in a programming language, selected by the user, among various programming languages for the algorithm created by the command block inserted into the operation body, such that the user can be learn various kinds of programming languages. 알고리즘 생성 방법에 있어서, 동작 본체에 삽입 장착된 명령 블록의 식별자를 제공받는 단계; 및 상기 명령 블록 식별자에 해당하는 명령문의 조합으로 소스 코드를 생성하고 상기 소스 코드를 사용자에 제공하는 단계를 포함하는 것을 특징으로 하는 알고리즘 생성 방법. 제 1 항에 있어서, 상기 명령 블록은 상기 동작 본체의 이벤트 영역에 삽입된 이벤트 블록과 상기 동작 본체의 실행 영역에 삽입된 실행 블록인 것을 특징으로 하는 알고리즘 생성 방법. 제 2 항에 있어서, 상기 소스 코드를 생성하는 단계는 상기 동작 본체의 이벤트 영역에 삽입된 이벤트 블록과 상기 이벤트 블록에 할당된, 상기 동작 본체의 실행 영역에 삽입된 실행 블록을 구분하여 인식하는 단계; 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자를 저장부에 등록된 명령 식별자와 비교하여 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는 명령문을 선택하는 단계; 및 상기 이벤트 블록에 할당된, 상기 동작 본체의 실행 영역에 삽입된 실행 블록의 순차적 삽입 위치 또는 삽입 순서에 기초하여 상기 이벤트 블록의 명령문과 상기 실행 블록의 명령문의 조합으로부터 소스 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 알고리즘 생성 방법. 제 3 항에 있어서, 상기 알고리즘 생성 방법은 프로그래밍 언어를 선택하기 위한 사용자 명령을 수신하는 단계를 더 포함하며, 상기 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어 중 상기 사용자 명령에 의해 선택한 프로그래밍 언어에 해당하는 명령문의 조합으로 소스 코드를 생성하는 것을 특징으로 하는 알고리즘 생성 방법. 제 3 항에 있어서, 상기 알고리즘 생성 방법은 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는, 동일한 프로그래밍 언어로 표현된 다수의 명령문 중 랜덤하게 선택된 명령문의 조합으로 소스 코드를 생성하는 것을 특징으로 하는 알고리즘 생성 방법. 제 4 항 또는 제 5 항에 있어서, 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는 명령문을 서버로부터 수신하며, 상기 이벤트 블록에 할당된, 상기 동작 본체의 실행 영역에 삽입된 실행 블록의 순차적 삽입 위치 또는 삽입 순서에 기초하여 수신한 상기 이벤트 블록의 명령문과 상기 실행 블록의 명령문의 조합으로부터 소스 코드를 생성하는 것을 특징으로 하는 알고리즘 생성 방법. 알고리즘 생성 장치에 있어서, 명령 식별자를 구비하는 명령 블록; 및 상기 명령 블록이 삽입되는 삽입홈이 형성되어 있으며, 상기 삽입홈에 삽입된 명령 블록의 조합으로 소스 코드를 생성하여 상기 소스 코드를 사용자 단말기로 제공하는 본체를 포함하는 것을 특징으로 하는 알고리즘 생성 장치. 제 7 항에 있어서, 상기 본체는 상기 명령 블록이 삽입되는 삽입홈이 형성되는 하우징; 상기 명령 블록의 명령 식별자와 상기 명령 식별자에 해당하는 명령문을 저장하고 있는 저장부; 상기 삽입홈에 삽입된 명령 블록의 명령 식별자를 획득하는 식별자 획득부; 획득한 상기 명령 식별자에 해당하는 명령문을 상기 저장부에서 검색하는 검색부; 및 상기 명령 블록이 삽입된 삽입홈의 위치 또는 삽입홈의 순서에 기초하여 상기 삽입홈에 삽입된 명령 블록에 해당하는 각 명령문으로부터 삽입된 명령 블록의 조합에 해당하는 소스 코드를 생성하는 소스 코드 생성부를 포함하는 것을 특징으로 하는 알고리즘 생성 장치. 제 8 항에 있어서, 상기 명령 블록은 조건문 명령을 입력하는 이벤트 블록과 실행문 명령을 입력하는 실행 블록을 구비하며, 상기 하우징에는 상기 이벤트 블록이 삽입되는 이벤트 삽입홈이 형성되어 있는 이벤트 영역과 상기 실행 블록이 삽입되는 실행 삽입홈이 형성되어 있는 실행 영역을 구비하는 것을 특징으로 하는 알고리즘 생성 장치. 제 9 항에 있어서, 상기 본체는 사용자 명령을 입력하기 위한 사용자 인터페이스부를 더 포함하며, 상기 저장부에는 동일한 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어로 표현된 명령문이 저장되어 있는데, 상기 검색부는 상기 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어 중 상기 사용자 인터페이스부를 통해 입력된 언어 선택 명령에 따라 선택한 프로그래밍 언어에 해당하는 명령문을 검색하는 것을 특징으로 하는 알고리즘 생성 장치. 제 9 항에 있어서, 상기 소스 코드 생성부는 상기 이벤트 삽입홈에 삽입된 이벤트 블록과 상기 이벤트 삽입홈에 할당된 실행 삽입홈을 구분하여 인식하며, 상기 이벤트 삽입홈에 삽입된 이벤트 블록에 해당하는 명령문과 상기 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록에 해당하는 명령문의 조합으로부터 소스 코드를 생성하는 것을 특징으로 하는 알고리즘 생성 장치. 제 11 항에 있어서, 상기 소스 코드 생성부는 상기 이벤트 삽입홈에 삽입된 이벤트 블록과 상기 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록의 순차적인 삽입 순서에 기초하여 상기 이벤트 블록에 해당하는 명령문과 실행 블록에 해당하는 명령문을 상기 실행 블록의 순차적인 삽입 순서로 나열하여 소스 코드를 생성하는 것을 특징으로 하는 알고리즘 생성 장치. 제 9 항에 있어서, 상기 저장부에는 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 저장되어 있으며, 상기 검색부에서 검색한 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는, 상기 저장부에 저장된 동일한 프로그래밍 언어로 표현된 다수의 명령문 중 랜덤하게 1개의 명령문을 선택하는 랜덤 선택부를 더 포함하며, 상기 랜덤 선택부는 선택한 명령문을 상기 소스 코드 생성부로 제공하는 것을 특징으로 하는 알고리즘 생성 장치.