Raspberry Pi_Kor_23.4.4 Scratch 프로그램 사용법 기초


Published Book on Amazon


All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents


23.4.4  프로그램 사용법 기초


 

23.4.4.1    Sprite의 개념

 

Sprite Sprite Area에서 정의되면, 그 위에 있는 Stage Area에 나타나서 여러 가지 동작을 하게 되는데, 마치 무대에서 공연하는 주인공이나 배우와 같다.

 

Scratch에서 Sprite는 프로그램을 수행했을 때 프로그램이 지시한 동작이나 명령을 수행하여 그 결과를 화면에 보여주는 역할을 하는데, 그림으로 만들어진 객체를 Sprite로 사용한다. Scratch에서는 통상 Sprite를 중심으로 하여 프로그램 명령이 수행되고, 수행 결과도 Sprite에 대한 변화로 표시되는 방식으로 프로그램이 작성된다.

 

23.4.4.2    프로그램의 실행과 중단

 

화면 오른쪽 위에 있는 [green flag] 버튼과 [red] 버튼을 이용하여 프로그램을 실행하거나 중단할 수 있다. [Green flag] 버튼을 누르면 Script에서 지정된 명령들이 종료될 때까지 실행되고, [red] 버튼을 누르면 실행중인 프로그램의 작동이 중단된다.


 

23.4.4.3    Palette block 

 

Scratch에서는 사용할 수 있는 명령들이 Block의 묶음인 Palette 형태로 분류되어 제공되고 있다. 모두 8가지의 Palette를 사용할 수 있는데, Palette를 누르면 실제로 사용할 수 있는 명령을 의미하는 Block들이 아래 부분에 표시된다. 아래는 가장 많이 사용되는 [Motion] Palette [Control] Palette에 대해서 세부 Block의 내용들을 보여주고 있다.


 

23.4.4.4    Block의 세부 특성 지정

 


어떤 Block들을 보면 Block 내부에 흰색으로 표시된 부분이 있는데, 통상 이들은 작성하는 사람들이 원하는 값으로 수정할 수 있다는 것을 의미한다. Block의 성격에 따라 다양한 항목에 대해서 특성값을 변경할 수 있도록 되어 있다. 아래의 [move] Block에 있는 숫자는 한번 수행할 때 얼마나 이동할 지를 지정하는 값으로, 사용자가 원하는 값으로 자유롭게 수정할 수 있다옆에 있는 [play drum] Block에서는 입력할 수 있는 특성값이 두 개가 있는 것을 알 수 있다.

 

 


 

23.4.4.5    다른 명령과의 연결

 

Scratch에서 각 Block은 다른 Block들과 서로 연관관계를 맺어야 한다. 이런 연관관계를 Block들의 연결로 표현하게 된다. 이렇게 Block들을 연결하는 작업이 결국은 프로그램을 작성하는 것이다

 

먼저 아래의 [move] Block을 자세히 살펴보면, 위에 홈이 있고 아래에 돌출된 부분이 있다. 이들은 다른 Block과 연결하는 기능을 수행한다. 위에 있는 홈은 이 Block의 앞에 어떤 다른 Block이 있어야 한다는 것을 의미하고, 아래 부분에 있는 돌출은 그 뒤에 또 다른 Block이 있어서 서로 연결되어야 한다는 것을 의미한다.  옆에 있는 그림은 [move] Block의 앞에 다른 Block이 연결된 모습을 보여 주고 있다.


 

그런데 어떤 Block을 보면 홈이나 돌출된 부분이 없는 것도 있는데, 이들은 그 지점에서 다른 Block들과 연결할 수 없다는 것이다.  예를 들어 아래에 있는 Block은 밑에는 돌출이 있는데, 위에는 홈이 없는 것을 볼 수 있다. 이것은 이 Block 앞에는 다른 Block이 올 수 없고, Block 다음에는 어떤 Block이 있어야 한다는 것을 의미한다.


 

이번에는 또 다른 Block을 보기로 하겠다. 아래의 Block을 가만히 보면 Block의 내부의 윗부분에 돌출이 있는 것을 볼 수 있다. 이것은 Block의 내부에 어떤 다른 Block이 들어가야 한다는 것을 의미한다. 옆에 있는 그림은 그 [forever] Block 내부에 다른 Block들을 넣어서 작성한 내용이다. 이렇게 어떤 Block 속에 다른 Block들이 포함되어 있는 것은 외부 Block이 실행되는 시점에는 그 내부에 포함되어 있는 모든 Block들이 실행된다는 것을 의미한다



23.4.4.6    다른 명령과의 연결 완료

 

Script Area에서 작업을 할 때 관련 Block들이 서로 완전하게 연결되어야 제대로 작성이 된 것이며, 서로 떨어져 있으면 아직 완료되지 않은 것을 의미한다.

 


Script Area
Block들이 아래의 왼쪽과 같은 상태에 있다면, 아직 작성이 완료되지 않은 상태이다. Block들이 오른쪽에 있는 상태와 같이 되어 있다면 Block들 간에 연결이 완료된 상태를 말한다

 

 

23.4.4.7    Block들간의 처리 순서

 

Script Area에 있는 Block들은 기본적으로 위에서 시작하여 아래로 명령이 실행된다. Block들이 아래/위로 서로 연결되어 있을 때, 위에 있는 Block이 먼저 실행이 되고, 그 다음에 아래에 있는 부분이 실행되는 것이다. 서로 연결되어 있는 Block의 종류는 상관하지 않는다. 서로 연결되어 있는 Block이 동일 유형이든지, 아니면 다른 유형이든지 관계없이 위에서부터 실행하게 된다. 아래는 동일한 유형의 Block들이 연결된 것과 다른 유형의 Block들이 연결된 사례를 보여주고 있다


 


 

23.4.4.8    반복 실행

 

특정 Block 명령들을 반복해서 실행하고자 할 때는 [repeat] Block이나 [forever] Block을 사용한다. 프로그램을 작성할 때는 반복하고자 하는 Block들을 그 내부에 포함하면, 내부에 있는 모든 Block들이 반복되어 실행이 될 것이다. 아래는 [green flag] 버튼를 눌렀을 때 한없이 실행되는 사례를 보여 주고 있다.


 


 

Leave a Reply