스크래치(교육 플랫폼)

덤프버전 :


스크래치 관련 둘러보기 틀
[ 펼치기 · 접기 ]


스크래치
SCRATCH
파일:스크래치(교육 플랫폼) 로고.svg
사이트 종류
소프트웨어 교육 플랫폼
개발
Lifelong Kindergarten Group
(MIT 미디어랩)
운영
버전
3.29.1
영리
여부
비영리
사이트
파일:홈페이지 아이콘.svg | 파일:페이스북 아이콘.svg |
파일:X Corp 아이콘(블랙).svg
| 파일:유튜브 아이콘.svg | 파일:GitHub 아이콘.svg[[파일:GitHub 아이콘 화이트.svg


1. 개요
2. 버전
2.1. 1.4
2.2. 2.0
2.3. 3.0
3. 모딩 프로그램
3.1. Scratch Explorer
3.2. ScratchX(지원종료)
3.3. 코드노리
3.4. TurboWarp
4. 스크래치 관련 사이트
6. 여러 간단한 기술들
7. 장점
8. 문제점
8.1. 스크래치 자체의 문제점
8.2. 유저들의 문제점
8.3. 스크래치 팀의 운영방식 문제점
9. 여담
10. 확장 프로그램
11. 관련 문서



1. 개요[편집]



스크래치 공식 홍보 영상
MIT 미디어 연구소의 Lifelong Kindergarten Group에서 2005년 공식 발표한 교육용 프로그래밍 언어이다. 기존의 텍스트 코딩과 달리 스크립트를 블록 맞추듯이 연결하여 코딩을 하는 방식으로 게임이나 애니메이션 등을 만들 수 있고, 어린 나이에도 독학을 할 수 있다. 목적 프로그램을 만들지 않고(즉 컴파일 과정을 거치지 않고) 한 줄 씩 번역하기 때문에 인터프리터 언어에 속한다. [1]

누구나 무료로 이용할 수 있으며 주로 8~16세를 대상으로 만들어졌지만 프로그래밍 언어에 익숙하지 않은 아이들을 포함한 모든 연령층이 이용하고 있다. 실제로 중학교 정보 교과서에 실려있고[2] 초등학교의 컴퓨터 시간이나 방과후에 스크래치를 가르치기도 하며, 그 외에도 프로그래밍 언어를 접해보지 못한 대학생들의 기초 강좌로 스크래치를 이용하기도 한다.

홈페이지를 통해 자신이 만든 결과물을 공유할 수 있으며, 다른 유저들과 교류할 수도 있다.


2. 버전[편집]


파일:scratch14hw.png
파일:스크래치2헬로우월드.png
파일:스크래치3헬로우월드!.png
스크래치 1.4
스크래치 2.0
스크래치 3.0
Hello, world!를 스크래치로 출력하는 방법[3]
스크래치 에디터 버전별 실행 화면
[1] 다만, TurboWarp는 스크래치 코드를 자바스크립트로 컴파일한다.[2] 2015년 이후부터 스크래치에서 엔트리로 바뀌었으며 초등학교 고학년부터 배우기도 한다.[3] 스크래치에는 기본적인 출력 명령어가 없어서 간단하게 hello world를 나타내기 위해서는 이렇게 출력하는 것이 일반적이다. 하지만 텍스트 엔진을 직접 만드는 것도 가능하다.






















  • forkphorus : 스크래치 프로젝트를 고효율로 실행할 수 있게 한다.
  • turbowarp : 스크래치 프로젝트를 고효율로 실행하는 것은 물론, 속도도 빨라진다.
  • ScratchStat : 스크래치에 가입되어 있는 사용자들의 통계를 조회한다.




  • <<마우스 포인터에 닿았는가> 그리고 <마우스를 클릭했는가?>>를 이용해 스프라이트 클릭을 감지할 수 있다.[5]
    • 여기서 그 다음 부분에 [<<마우스를 클릭했는가?>가 아니다>까지 기다리기] 블록을 이용해 마우스를 떼었을 때를 감지할 수 있다.[4]
  • 리스트 여러개를 만들고,(여기선 a와 b라고 하자) a와 b의 n번째 항목에 같은 것을 넣어서 x, y좌표같은 것을 구현할 수 있다.
  • 프로그램을 실행 중에는 타이머 초기화를 무한 반복 하여, 정지 버튼을 누르면 타이머가 흐르게 만들 수 있는 점을 이용하여 정지 버튼을 누르면 시작되는 프로그램을 만들거나, 꺼지지 않는 프로그램을 만들 수 있다.
  • 스프라이트의 코스튬이 너무 커서 크기를 더 이상 못 키울 때 스프라이트의 코스튬을 작은 모양 (혹은 공백)으로 바꾸고 크기를 키운 후 원래 코스튬으로 바꾸면 무한으로 키울 수 있다.
  • 벡터로 작업할 때 그림 위에 투명블록을 씌우면, 그림이 깨지는 현상을 방지할 수 있다.
  • [위쪽 화살표 키를 눌렀을때] 밑에 {만약 <<위쪽 화살표 키를 눌렀는가?>가 아니다>(이)라면}을 넣고 이사이에 스크립트를 넣으면 위쪽으로 스크롤을 했을때를 감지할 수 있다.









  • 섬세한 프로그래밍이 어렵다. 원래 교육용으로 만들어진 언어이다 보니 실제 작업 환경에서 생산성을 위한 목적으로는 부적합하다.[6][7]

  • 다차원 리스트를 지원하지 않는다.[8]
  • FFI 미지원. 여느 프로그래밍 언어는 특정 기능을 구현하는 방법으로써 다른 프로그래밍 언어를 끌어와서 쓰는 방법이 있기 마련인데 스크래치는 그런 것이 없다.

  • 프로그래밍 속도가 비교적 느리다. 또한 프로그래밍 구조와 사이트 구조 및 사이트 규정상 협업이 어렵다.

  • -몇몇 스크립트에서 버그가 자주 일어난다. 그래픽 블록 중 몇 가지는 작동하면 벡터 이미지가 비트맵으로 바뀌고 그래픽이 깨진다.- [9][10]

  • 에디터와 사이트에 버그가 있다. 스크립트가 아무 이유 없이 혼자서 겹겹이 쌓여서 좌측 상단이나 중앙에 정렬된다거나 받은 메시지를 확인하러 링크를 클릭하면 댓글로 예를 들자면 아직 댓글이 달리지 않은 취급[11]을 받거나 달려있는 시간이 '2초 후'라고 적혀있는 경우가 있다.

  • 포럼 이외의 사이트에 게임을 올리기 힘들다. EXE형식이 아닌 sb3이라는 파일이라 게임배포를 다른 블로그나 카페같은 사이트에 올리면 스크래치가 없는이상 URL로 올리는 수밖에 없다.[12]

  • 게임 세이브를 구현하기가 번거롭다. 클라우드 변수에 세이브 코드를 저장해 만들수 있지만 인원수 제한이 매우 적다[13] 다만 클라우드 변수를 서버에 정보를 보내는 수단으로만 사용하고, 실질적인 저장은 제작자 컴퓨터의 리스트에 하는 방식(서버와 비슷) 20만명 정도의 인원[14]이 저장 가능하다.클라우드 변수는 로그인이 필요해 오프라인이나 툴로 다른 형식으로 바꾸면 RPG등의 게임장르를 플레이하기 난감하다.[15][16]

  • 교사 계정이란게 있고 그걸 만들기 위해서는 스크래치 팀이 신청서를 직접 확인하는 절차[17]가 필요한데, 배워야 할 연령대나 스크래치 사용에 미숙한 사람이 신청해도 계정 생성을 허용할 정도로 확인 절차가 허술하다.

  • 엔트리에는 텍스트 툴이 있어 텍스트를 실시간으로 출력할 수 있는데 스크래치에는 텍스트 툴이 없어서 텍스트가 출력되는 걸 구현하려면 텍스트가 삽입된 사진을 스프라이트 방식으로 업로드해야하는 복잡하면서도 귀찮은 방법을 사용해야 한다.[18][19] 댓글같은 변수가 무지하게 많은 기능은 구현이 거의 불가능하다. [20][21]












  • .sb2 형식(스크래치 2.0 버전)은 SWF(플래시 파일)로 변환할 수 있는데, 이걸 이용해서 정신나간 가격의 어도비 플래시 대용으로 쓰는 사람도 있었다. 이 밖에도 자바스크립트나 exe 같은 파일로 바꿔주는 프로그램도 있다. 또한 swf를 apk로 바꿔 모바일로 쓸 수도 있다.

  • 최신 버전인 sb3 형식도 exe(튜토리얼) 형식으로도 변경이 가능하며, 여기서 html 형식으로 변환할 수 있다. html 형식은 apk로 변환할 수도 있다. sb3를 sb2로 바꿔주는 프로그램도 있는데, 이를 이용해서도 apk로 변환이 가능하다.

  • 스크래치 사설 에디터도 있는데, sb3 to html 변환기를 만든 인물과 동일 인물이다. 기본적인 기능은 거의 같지만 무려 비율이 16:9이다! 또한 여기서 만든 프로그램도 html로 변환할 수 있다. 이쯤되면 아예 앱도 만들 수 있겠다.

  • 비트브릭, 아두이노 같은 여러 제품들과도 호환된다. 아두이노의 경우 버그가 좀 있다.

  • MLG 관련 합성물과 퍼리 밈[22]이 자주 목격되며, 코딩보다는 그림을 그리는 데에 집중하는 유저들이 꽤 많다.

  • 공식적으로 스크래치로 제작된 저작물에는 CC-BY-SA 2.0 license가 적용된다. 그러한 즉, 저작물의 소스에 대한 적절한 크레딧 및 스크래치로 제작된 프로그램임을 밝히고(BY - 저작자 표시) 똑같이 CC-BY-SA 2.0 라이센스를 적용(SA - 동일 조건 변경 허락)하기만 한다면 다른 사람이 자신이 스크래치로 제작한 프로그램을 영리적으로 이용해도 약관상으로 문제가 없는 것이다. 이는 홈페이지 FAQ에도 명시되어 있다. 그러나 위 약관은 '스크래치 사이트'에 프로젝트를 공유할 때부터 적용되는 것이기에, 스크래치로 만든 프로젝트를 '스크래치 사이트 상'에 공유하지 않는다면 자유롭게 라이센스를 적용하고, 프로젝트를 판매하여 이익을 얻는 것이 가능하다. 그러니 되도록 연습작을 제외하면 공유를 자제하자.

  • 2017년 7월 초에 소규모 패치로 토론하기가 내비게이션 바에서 사라지고 페이지 가장 아래로 내려와 기존에 토론방을 자주 이용하던 사람들이 불편을 겪고 있다. 그로 인해 일부 유저들은 토론하기 버튼을 다시 돌려놓자는 해시태그 운동을 하기도 했었다. 2021년 기준, 토론방을 사용하는 한국 유저들은 신규 스크래처들 외에는 없다. 추가적인 문제점은 신규 스크래처가 기존의 스크래처들은 만나지도 못하고 그 반대의 행위도 못한다.

  • 2018년 컴퓨팅 사고 능력을 배양한다는 명목 아래에 일부 대학에서 교양 필수 과목으로 지정되었다. 실질적으로 유용하게 사용할 수도 없는 프로그램을 강제적으로 가르치고 있다. 그러나, 실질적으로 교양 프로그래밍 수준에서 가르치는 내용에는 한계가 있기 때문에 교양 필수로 파이썬이나 C언어 등을 배운다고 유용하게 사용할 수 있다고 하기에는 어렵다. 애초에 프로그래밍을 가르치려는게 아니기 때문에 이는 잘못된 비판이다. 코딩 참고. 오히려 자바나 C를 교양으로 가르치는 편이 더 문제일 수도 있다.


  • 3.0 업데이트 이후로 수많은 버그들이 발견되면서 오히려 2.0 버전이 더 좋다는 의견이 많았으며, 이전 버전에서 만들었던 프로젝트들 중 절반이 먹통이 되었다. 그래서 스크래치 고양이와 타노스의 얼굴을 합성한 이미지를 프로필 사진으로 이용하는 사람들이 나타났다. [23] 타노스크래치

  • 무한 반복하기 블록과 복제하기 블록으로 인한 과도한 랙으로 인해 보안프로그램의 작동이 멈추기도 한다.

  • 스크래치 내에서 만들기 간단해 보이는 프로젝트가 학교 측에서는 배운지 얼마 지나지 않은 학생들과 이전부터 스크래치를 알고 해왔던 학생의 경력차이 때문에 도, 군 등에서 주최한 코딩 대회 상위권에 들어가는 일도 발생한다.

  • 스크래치 이용자로써 알고 있어야하는 내용들과 몇몇 페이지는 번역이 안 되어있다. 물론 스크래치 에디터와 사이트의 프런트 페이지는 번역이 잘 되어있어 작업을 하는 데에 큰 불이익이 없다.[24] 그리고 한국어로 번역된 약관이 나왔다.


  • 2.0버전에는 Meow라는 언어가 있는데, 영어이지만 일부 동사가 Meow(야옹거리다)로 바뀌어 있다(...).


  • 2021년 4월 1일 스크래치 위키 만우절 이벤트로 모든 글이 다 병맛으로 변경된 적이 있다.[25]

  • 한 팀이 실제로 작동하는 리눅스를 구현했다. 모든 기능이 작동하며, 리눅스 커널을 RISC-V 에뮬레이터에 올리는 방식으로 구현했다. 자바스크립트 엔진인 duktape가 내장되어 있다. TurboWarp

  • isOnline - 사용자들끼리 서로 온라인인지 아닌지 알 수 있는 확장 프로그램이다. 비공식 확장프로그램이고, 스크래치 팀에게 허가를 받은 확장프로그램이지만 현재는 확장 프로그램과 관련된 규정으로 이용할 수 없다. isOnline의 제작자가 밴을 당한 이유도 이 때문.

  • Scratch Messaging Extension - 스크래치 상에 있는 메시지를 바로 확인할 수 있는 비공식 확장 프로그램이다.

  • Scratch Addons - 잡다한 기능들이 있는 확장프로그램이다. 다크모드는 덤.




[4] 스크래치의 마우스를 클릭했는가 블록은 마우스를 눌렀을 때를 감지한다.[5] 원래 숨겨진 스프라이트는
[이 스프라이트를 클릭했을 때]
이벤트문으로 작동시킬 수 없지만 이 방법을 쓰면 숨겨진 상태에서도 클릭할 수 있다. 이벤트문이라서 이벤트의 시작에서만 쓸 수 있는 전자와 달리 조건문이라서 이벤트 중간에 쓸 수 있다는 것도 장점. 다만 감지 및 제어문이기 때문에 해당 스크립트가 반복 중이어야하며, 따로 브레이크를 걸어주지 않으면 말그대로 마우스가 닿았고+마우스를 클릭 중이면 계속 작동되므로 한 번 이벤트가 실행되면 더 이상 클릭해도 반응하지 않도록 브레이크를 걸어주는 게 좋다.
[6] 일반적으로 생각하는 프로그래밍에 쓰이는 언어와는 확연히 다르지만, "이걸로 이런 걸 만드네?"라는 반응은 충분히 나올 수 있을 정도로 블록 코딩으로 별별것 다 보여주는 사람들이 있다. #1 #2.[7] 예시는 실시간 Among Us, paper minecraft, Five Nights at Freddy's이다.[8] 리스트 3개를 이용해 대충은 구현하려고 할 수 있다. 그러나, 매우 어렵고 보기도 불편하다. 그냥 필요한 리스트가 적으면 리스트를 여러개 만들어 쓰자. 굳이 구현은 가능하지만 값을 편집할 때 차원이 높아질수록 용량이 늘어난다...[9] 이 오류들은 3.0 업데이트 이후 고쳐졌다.[10] 유저들간에 오가는 스크립트 버그에 관련된 이야기는 본인의 실수인 경우가 대부분이다. 블록이 많아지면 시인성이 상당히 떨어지기 때문에 잘못된 부분을 찾는 것도 일이므로 가능하면 용도별로 메모를 적어놓자.[11] 서버 딜레이로 추정...되지만, 길게는 3분 넘게 받은 메시지로만 확인 가능하고 직접 페이지로 가서 보려면 없는 경우가 있다.[12] 단, 외부 툴을 이용하여 html 또는 exe로 변환 가능하다. 아래 참고[13] 클라우드 변수에는 숫자만 저장된다. 고로 저장하는 스크립트는 본인 능력의 몫.+ 클라우드 변수 길이 제한 256 때문에 클라우드 변수에 모든 정보를 저장한다면 세이브 만들긴 정말 1인 수준밖에 불가하다.[14] 사실 리스트 하나의 제한이 20만개라 제한이 20만명이지만 리스트를 여러개 사용하는 등의 방법을 사용하면 더 늘릴 수 있다.[15] 다만, 전부 일반 변수로 만들어놓고, 프로젝트를 다운받아서 게임을 플레이 한 다음에 저장을 눌러서 진행상황을 저장 할 수 있다. 다운로드 받은 다음에 다시 공유하면 무단복제이므로 게임을 즐기기만 하자.[16] 하지만 최근들어 세이브 코드로 진행상황을 저장하는 유저들이 늘고 있다.물론 이 세이브 코드를 악용하는 유저들도 있기 마련이다.[17] 각종 물음에 답하고 교사 계정의 사용처를 적어서 신청하는데, 검토에는 1일 소요[18] 펜을 사용한 렌더링으로 직접 텍스트 엔진을 만드는 경우도 있다.[19] 파일:Screenshot 2022-03-28 8.51.18 PM.png파일:Screenshot 2022-03-28 8.33.13 PM.png이렇게 블록으로만 텍스트를 입력하는 짓도 가능하다.[20] 물론 콘솔을 이용해서 어떻게든 해볼 순 있겠지만 만만치 않은 작업이다.[21] 다만 변수를 만들고 우클릭을 한 후 '크게 보이기'를 누르면 변수 이름은 안 보이고 값만 보여 글상자 비슷한 느낌을 줄 수는 있다.[22] 유튜브에 업로드 되기도 한다.[23] 실제로 2.0으로 만든게 3.0에서도 작동된다는 점을 이용하여 2.0 오프라인 에디터로 작업을 하는 사람들도 있다.[24] 커뮤니티 활동을 한다면, 구글 번역기를 이용해서라도 읽어보자.[25] 지금도 스크래치 위키 상단에 있는 아이콘을 누르면 만우절 페이지로 접속할 수 있다.