스크래치(프로그래밍 언어)
Scratch (programming language)![]() 2015년 10월 16일 이후 사용된 로고 | |
![]() Scratch 3.0 편집기 | |
패러다임 | 이벤트 기반 블록 기반 프로그래밍 언어 |
---|---|
디벨로퍼 | MIT 미디어 랩 |
첫 등장 | 2003년; 2004년; 전 ( (2차 시제품) 2007년 5월 15일; 전 ( (공개 출시)[1] 2013년 5월 9일, 스크래치 2.0) 2019년 1월 2일; 전 ( (스크래치 3.0) | 전 (최초 시제품)
안정적 해제 |
|
구현언어 | 스퀴크(스크래치 0.x, 1.x) 액션스크립트 (스크래치 2.0) HTML5, CSS3 및 자바스크립트 (Scratch 3.0)[2] |
OS | Microsoft Windows, macOS, Linux(렌더러 경유), HTML5(웹 브라우저 경유), iOS, iPadOS, Android. |
면허증. | BSD 3-조항, GPLv2 및 Scratch 소스 코드 라이센스 |
파일 확장명 | .scratch(스크래치 0.x) .sb, .sprite(스크래치 1.x) .sb2, .sprite2(스크래치 2.0) .sb3, .sprite3(스크래치 3.0) .json(스크래치 2.0 이상) |
웹사이트 | scratch |
영향을 받음 | |
로고, Smalltalk, HyperCard, StarLogo, AgentSheets, AgentCube, Etoys | |
영향받은 | |
캣로뱃,[3] 스크래치 주니어,[4] 스냅!,[5] mBlock, 터틀스틱 |
Scratch는 8세에서 16세 사이의 대상자들을 대상으로 하는 교육 도구로서 주로 어린이를 대상으로 하는 높은 수준의 블록 기반 시각 프로그래밍 언어 및 웹사이트 대상자는 8세에서 16세 사이입니다.[6]Scratchers라고 불리는 그 사이트의 사용자들은 블록과 같은 인터페이스를 사용하여 웹사이트에서 프로젝트를 만들 수 있습니다.[7]외부 도구를 사용하여 프로젝트를 독립 실행형 HTML5, Android 앱, 번들(macOS) 및 EXE 파일로 내보낼 수 있습니다.Scratch는 Mitchell Resnick과 Yasmin Kafai에게 수여된 협력 National Science Foundation 보조금을 통해 구상되고 디자인되었습니다.[8]이 서비스는 MIT 미디어 랩에서 개발한 것으로 70개 이상의 언어로 번역되어 세계 대부분의 지역에서 사용되고 있습니다.[9]스크래치는 방과후 학교, 학교, 대학 등 공공 지식기관에서 교육 및 사용되고 있습니다.2023년 2월 15일 현재 언어 공식 웹사이트의 커뮤니티 통계에 따르면 1억 3백만 명 이상의 사용자가 공유하는 1억 2천 3백만 개 이상의 프로젝트, 지금까지 생성된 총 프로젝트 8억 4백만 개 이상(공유되지 않은 프로젝트 포함) 및 9천 5백만 명 이상의 월간 웹사이트 방문이 있습니다.[9]
스크래치는 디스크 자키들이 사용하는 "스크래칭(scratching)"이라는 기술에서 이름을 따왔는데, 이 기술은 레코드판을 서로 자르고 턴테이블 위에서 조작하여 다양한 음향 효과와 음악을 만들어내는 것입니다.스크래치와 마찬가지로 이 웹 사이트는 비디오 게임, 애니메이션, 음악 및 시뮬레이션과 같은 프로젝트를 만들고 '리믹스'함으로써 사용자가 그래픽, 사운드 및 기타 프로그램을 포함한 다양한 미디어를 창의적인 방법으로 서로 혼합할 수 있도록 합니다.[10][11]
스크래치 3.0
사용자 인터페이스

Scratch 인터페이스는 스테이지 영역, 블록 팔레트 및 코딩 영역의 세 가지 주요 섹션으로 구분되어 녹색 플래그를 누르거나 코드 자체를 클릭하여 실행할 수 있는 스크립트로 블록을 배치하고 배열합니다.또한 사용자는 자신만의 코드 블록을 만들 수 있으며 "내 블록"에 나타납니다.
스테이지 영역에는 결과(예: 애니메이션, 거북이 그래픽, 작은 크기 또는 보통 크기)와 모든 스프라이트의 썸네일이 하단 영역에 나열됩니다.스테이지는 x 및 y 좌표를 사용하며, 0,0이 스테이지 중심입니다.[12]
준비 영역의 하단에서 스프라이트를 선택하면 블록 팔레트에서 코딩 영역으로 끌어와 명령 블록을 적용할 수 있습니다.코스튬 탭에서는 애니메이션을 비롯한 다양한 효과를 만들기 위해 벡터 및 비트맵 편집기로 스프라이트 모양을 변경할 수 있습니다.[12]사운드 탭을 사용하면 스프라이트에 사운드와 음악을 부착할 수 있습니다.[13]
스프라이트와 배경을 만들 때 사용자가 직접 스프라이트를 수동으로 [12]그리거나 라이브러리에서 스프라이트를 선택하거나 이미지를 업로드할 수 있습니다.[13]
아래 표는 프로그래밍 블록의 범주를 보여 줍니다.
카테고리 | 메모들 | |
---|---|---|
운동 | 각도와 방향과 같은 스프라이트의 움직임. | |
표정 | 스프라이트의 비주얼을 제어합니다. | |
소리 | 오디오 파일 및 효과 재생 | |
이벤트 | 이벤트 핸들러 및 방송사. | |
통제 | 조건, 루프 및 클로닝. | |
감지 | 스프라이트는 다른 스프라이트, 마우스 포인터 및 배경과 상호 작용할 수 있습니다. | |
연산자 | 수학 연산자 및 비교 | |
변수 및 목록 | 변수에 액세스하고 변수를 설정하는 블록입니다.클라우드 변수는 실행 중인 모든 버전의 프로젝트에서 액세스할 수 있습니다. | |
마이 블럭스 | 블록으로 접근 가능한 사용자 정의 함수입니다.화면 새로 고침 없이 실행할 수 있는 옵션이 있습니다. | |
확장자 | 아래 설명 |
오프라인 편집
Scratch 3.0용 오프라인 "데스크탑 에디터"는 Microsoft Store, Apple의 macOS, ChromeOS 및 Android에서 Microsoft Windows 10 이상용으로 사용할 수 있으며,[14] 이를 통해 Scratch 프로그램을 오프라인에서 만들고 재생할 수 있습니다.오프라인 편집기는 Scratch 2.0 및 Scratch 1.4와 같은 이전 버전에서도 다운로드할 수 있습니다(이전 버전의 아카이브는 여기에서 확인 가능).
확장자
Scratch에서 확장 기능은 프로젝트에서 사용할 수 있는 추가 블록과 기능을 추가합니다.Scratch 2.0에서 확장 기능은 모두 하드웨어 기반입니다.Scratch 3.0에서는 마이크로비트와 같은 새로운 하드웨어 기반 확장과 함께 텍스트 음성 변환 음성과 같은 소프트웨어 기반 확장이 추가되었습니다.확장 기능은 아래에 나와 있습니다.

물리적.
- 레고 마인드스톰 EV3 – 모터를 제어하고 레고 마인드스톰 EV3로부터 센서 데이터를 수신합니다.
- 메이키 메이키 – 메이키 메이키를 사용하여 프로젝트 제어
- 레고 에듀케이션 WeDo 2.0 – 모터 제어 및 레고 WeDo의 센서 데이터 수신
- micro:bit – 프로젝트 제어에 micro:bit 사용
- 레고 부스트 – 로봇 창작물에 생기를 불어넣습니다.
- Go Direct Force & Acceleration – 당기기, 밀기, 모션 및 스핀 감지
디지털.
Scratch 3.0의 디지털 확장 중 많은 부분이 일반적인 블록 범주였으며, 이는 어수선함을 줄이기 위해 확장 섹션으로 이동되었습니다.여기에는 다음이 포함됩니다.
- 음악 – 디지털 악기(드럼, 트럼펫, 바이올린, 피아노 등) 재생
- 펜 – 다양한 두께와 색상으로 무대에 그림 그리기
- Video Sensing – 카메라로 움직임 감지
상업 회사와의 협력을 통해 새로운 디지털 확장 기능도 추가되었습니다.여기에는 다음이 포함됩니다.
- Text to Speech – 텍스트 내 단어를 음성 출력으로 변환합니다(다양한 음성, Amazon 제공).
- 번역 – Google Translate를 사용하여 한 언어의 텍스트를 아랍어, 중국어, 네덜란드어, 영어, 프랑스어, 그리스어, 노르웨이어, 일본어 등 다양한 다른 언어로 번역합니다.
스크래치 랩
Scratch Lab은[15] Scratch 팀의 실험 결과를 보여주며, 향후 전체 웹 사이트에 새로운 기능이 추가될 수 있는지 여부를 조사하기 위한 것입니다.현재 개발 중인 실험 기능은 다음과 같습니다.
- 얼굴 감지 – 얼굴과 상호 작용하는 애니메이션 의상과 게임을 만듭니다.
- 애니메이션 텍스트 – 색상, 글꼴 및 애니메이션으로 단어에 생동감을 불어넣습니다.
사용자는 자바스크립트를 이용하여 Scratch 3.0의 확장자를 직접 만들 수도 있습니다.[16]Scratch 3.0의 의도는 비공식적인 자바스크립트 확장을 허용하는 것이었지만, 중간 정도의 위험 때문에 포기되었습니다.따라서 Scratch Engine의 몇 가지 수정을 통해 자바스크립트 확장을 추가할 수 있습니다.
수정사항
많은 사용자들이 Scratch 웹사이트의 외부 편집기나 브라우저 확장과 같이 Scratch 웹사이트에 대한 수정사항을 작성하기 위해 Scratch 이외의 언어를 사용하기도 했습니다.
- ScratchTools와 Scratch Addons는 모두 Scratch의 브라우저 확장 기능으로, Scratch 웹 사이트에 100개 이상의 기능이 있습니다.
- TurboWarp은 Scratch의 외부 편집자이며 다른 많은 기능과 프로젝트의 컴파일러입니다.
코드베이스
Scratch 3.0은 Blockly의 라이브러리를 기반으로 하는 [17]"Scratch-GUI",[18] 코드를 해석하는 [19]"Scratch-VM", 렌더링 엔진인 [20]"Scratch-Render" 등 여러 구성 요소로 구성된 완전히 새로운 자바스크립트 기반 코드베이스입니다.[21]Scratch Block은 Blockly를 사용하여 만들어집니다.[22]
NYU가 2019년에 발표한 논문은 Scratch로 음악을 코딩하기 위해 "현재 Scratch에서 구현된 음악과 사운드 블록이 Scratch의 핵심 사용자 기반인 아이들을 위한 의미 있는 음악 제작을 제한하고 좌절시킬 수 있습니다."[23]라고 주장하고 설명합니다.
사용자 커뮤니티

스크래치는 학교, 박물관, 도서관, 주민센터, 가정 등 다양한 환경에서 사용됩니다.[24][25][10]스크래치는 주로 8-16세의 사용자들을 위해 고안되었으나, 2009년 현재 모든 연령대에서 사용되고 있으며 상당한 성인 사용자층을 가지고 있습니다.[6][26]이러한 광범위한 지원 활동으로 인해 물리적 및 디지털을 포함한 많은 주변 커뮤니티가 생겨났습니다.[9]2020년 4월, 세계 프로그래밍 언어의 티오베 순위에는 스크래치가 상위 20위 안에 들었습니다.Tiobe에 따르면 Scratch에서 작성된 프로젝트는 5천만 개이며, 매달 100만 개의 새로운 프로젝트가 추가됩니다.[27]
교육이용자
Scratch는 흥미로운 프로그램의 생성이 비교적 쉽고, 배운 기술을 파이썬, 자바 등 다른 프로그래밍 언어에 적용할 수 있기 때문에 도입 언어로 사용됩니다.
스크래치는 게임을 만들기 위한 것만이 아닙니다.프로그래머들은 제공된 비주얼을 통해 애니메이션, 텍스트, 스토리, 음악 등을 만들 수 있습니다.이미 학생들이 수학, 역사, 그리고 심지어 사진의 주제를 배우기 위해 사용할 수 있는 많은 프로그램들이 있습니다.Scratch는 선생님들이 어려운 개념을 시각화하는 데 도움을 주는 애니메이션으로 개념적이고 시각적인 수업과 과학 실험실 과제를 만들 수 있게 해줍니다.사회과학 내에서 강사들은 상호작용적인 요소로 퀴즈, 게임, 튜토리얼을 만들 수 있습니다.Scratch를 사용하면 젊은이들이 프로그래밍의 논리와 창의적으로 구축하고 협업하는 방법을 이해할 수 있습니다.[28]
Scratch는 인도와 전세계에 있는 800개 이상의 학교와 70개의 DAV 조직의 대학에 가르쳐지고 있습니다.[29][30]
고등 교육에서 Scratch는 하버드 대학교 CS50 컴퓨터 과학 입문 과정의 첫 주에 사용됩니다.[31][32]
온라인 커뮤니티


스크래치 사용자는 '스크래처'라고 불립니다.스크래처는 자신의 프로젝트를 공유하고 피드백을 받을 수 있는 능력을 가지고 있습니다.프로젝트는 개발 환경에서 Scratch 웹 사이트로 직접 업로드할 수 있으며 커뮤니티의 구성원이라면 누구나 전체 소스 코드를 다운로드하여 학습하거나 새로운 프로젝트로 리믹스할 수 있습니다.[33][34]스크래처는 또한 다른 사람들의 프로젝트 스튜디오를 만들고, 댓글을 달거나, 좋아하거나, 다른 사람들의 프로젝트를 "사랑"하고, 다른 구성원들을 따라다니며 그들의 프로젝트와 활동을 보고, 아이디어를 공유할 수 있습니다.프로젝트는 게임과 애니메이션에서부터 실용적인 도구에 이르기까지 다양합니다.또한 웹사이트는 사용자 간의 공유와 생성을 촉진하기 위해 종종 "스크래치 디자인 스튜디오" 과제를 설정합니다.[35]
MIT Scratch 팀은 이 지역사회가 모든 사람들에게 우호적이고 존중받는 환경을 유지할 수 있도록 노력합니다.[36][37]
교육자들은 하버드 교육 대학원에서 개발하고 지원하는 ScratchEd라는 자체 온라인 커뮤니티를 가지고 있습니다.이 커뮤니티에서는 Scratch 교육자들이 이야기를 나누고, 자료를 교환하고, 질문을 합니다.[38]
스크래치 위키
Scratch Wiki는 Scratch의 지원 리소스이며 Scratch 웹 사이트, 역사 및 Scratch를 둘러싼 현상에 대한 정보입니다.Scratch Team(Scratch 개발자)이 지원하지만, 주로 Scratch 사용자(Scratchers)가 작성하며 주요 Scratch 웹 사이트와는 독립적으로 호스팅됩니다.[39]Scratch Wiki 기본 도메인에서 사용할 수 있는 언어 외에 다른 위키도 있습니다.
디벨로퍼
Scratch 2.0과 Scratch 3.0의 GUI는 모두 GitHub의 오픈 소스이며 개발자들은 Scratch에 기여할 수 있습니다.[40][41]
역할
![]() | 이 섹션의 어조 또는 스타일은 위키피디아에서 사용되는 백과사전적인 어조를 반영하지 못할 수 있습니다.(2022년 11월) (이 를 및 |
Scratch 웹사이트의 계정은 사용자가 플랫폼에 대해 얼마나 많은 활동을 하는지 또는 교사가 교실 환경에 대한 계정을 설정했는지에 따라 역할/상태가 달라집니다.[42]사용자가 계정을 생성할 때 클라우드 데이터를 사용할 수 없고 포럼에 게시하거나 댓글을 달 때까지 더 오래 기다려야 하는 등의 제한이 부과된 "새로운 스크래처" 상태가 부여됩니다.New Scratcher가 사이트와 상호 작용하고 프로젝트를 공유하면 "Scratcher" 역할이 부여되어 대부분의 사용자 기반에서 사용할 수 있는 동일한 기능을 사용자에게 제공합니다.(Scratch를 사용하는 사용자라면 Scratcher라는 제목을 사용할 수 있습니다.)[43]Scratch의 공식 진행자 및 개발자는 "Scratch 팀"의 일부로 분류되며, 이 역할을 수행하는 구성원은 사용자 이름 끝에 웹 사이트 내용에 시각적으로 표시되는 별표가 있습니다.[44]이 사이트에는 학생과 교육자를 위한 특별한 유형의 계정도 있어 교실에서 Scratch를 사용할 수 있습니다.[45]
이벤트
Scratch Educator는 Scratch Educator Meetups에 직접 모일 수 있습니다.이 모임에서 Scratch 교육자들은 서로를 통해 배우고 컴퓨터 창의력을 지원하는 아이디어와 전략을 공유합니다.[46]
매년 5월에는 이전에는 "스크래치 데이(Scratch Day)"로 알려졌던 "스크래치 위크(Scratch Week)"가 선포됩니다.커뮤니티 구성원들은 크든 작든 이 날 또는 그 즈음에 Scratch를 기념하는 행사를 개최하는 것이 좋습니다.이러한 이벤트는 전 세계적으로 개최되며 Scratch Day 웹사이트에서 목록을 확인할 수 있습니다.Scratch Week은 Scratch 웹사이트에서 Scratch 활동에 초점을 맞춘 시리즈입니다.[47]
매년 만우절에 Scratch 팀은 사용자들에게 장난을 치고 부활절 달걀을 추가할 것인데, 한 예로 모든 이벤트 블록을 같은 블록의 고양이 버전으로 바꾸는 것이 있습니다.이러한 블록은 "고양이 블록"이라고 불리며 다운로드 가능한 여러 Scratch 추가 기능 중 하나로 다운로드할 수 있습니다.
역사
2000년대 초반, MIT 미디어 랩의 평생 유치원 그룹(LLK)은 아이들을 대상으로 하는 시각 프로그래밍 언어를 개발하고 있었습니다.[48]2003년, 미첼 레스닉, 야스민 카파이, 존 마에다는 아이들이 코드로 자신을 표현할 수 있는 새로운 프로그래밍 환경을 개발한 공로로 국립 과학 재단 보조금을 받았습니다.[8]미첼 레스닉(Mitchel Resnick)이 이끄는 LLK는 UCLA의 야스민 카파이(Yasmin Kafai) 팀과 협력하여 보스턴(Boston)과 로스앤젤레스(Los Angeles)에 있는 컴퓨터 클럽 하우스(Computer Clubhouse)와 긴밀히 협력하여 Scratch를 개발하고 방과 후 청소년 센터의 관행과 사회 역학에 디자인을 기반으로 했습니다.[8]기본 프로그래밍 언어로 시작되었으며, 레이블이 지정된 범주와 녹색 플래그가 없습니다.[49]AgentSheets[50] Scratch와 유사하게 나중에 블록 기반 프로그래밍으로 알려진 Tactile Programming의 개념을 사용했습니다.스크래치는 아이들에게 프로그램을 가르치려는 의도로 만들어졌습니다.[49]
Scratch의 철학은 "상상, 프로그램, 공유"라는 팀 슬로건에서 알 수 있듯이 코드의 공유, 재사용 및 조합을 장려합니다.[51]사용자는 자신의 프로젝트를 만들 수도 있고, 다른 사용자의 프로젝트를 "리믹스"하기로 선택할 수도 있습니다.Scratch와 함께 생성되고 리믹스된 프로젝트는 Creative Commons Attribution-Share Alike License에 따라 라이센스가 부여됩니다.[52]Scratch는 프로젝트 페이지의 맨 위 부분에서 원래 프로젝트와 프로그램을 만든 사용자에게 자동으로 크레딧을 부여합니다.[10]
Scratch는 Computer Clubhouse의 청소년 및 직원들과의 지속적인 교류를 바탕으로 개발되었습니다.컴퓨터 클럽하우스의 Scratch 사용은 비공식적인 학습 환경이 기술적인 유창성의 발전을 어떻게 지원할 수 있는지를 보여주는 다른 방과후 학교들의 모델이 되었습니다.[53]
Scratch 2.0은 2013년 5월 9일에 출시되었습니다.[12]업데이트는 사이트의 모양을 바꾸고 온라인 프로젝트 편집기와 오프라인 편집기를 모두 포함시켰습니다.[54]이제 프로젝트 내에서 여러 가지 개선 사항과 함께 사용자 정의 블록을 정의할 수 있게 되었습니다.[55]Scratch 2.0 오프라인 편집기는 Scratch의 웹 사이트에서 Windows, Mac 및 Linux용으로 직접 다운로드할 수 있었지만 Linux에 대한 지원은 나중에 중단되었습니다.비공식적인 모바일 버전은 Scratch 포럼에서 다운로드해야 했습니다.[56][57]

Scratch 3.0은 2016년 Scratch Team에 의해 처음 발표되었습니다.그 이후 2018년 1월까지 여러 공개 알파 버전이 출시되었으며, 이후 베타 이전 버전인 "미리보기" 버전이 출시되었습니다.[58]Scratch 3.0의 베타 버전은 2018년 8월 1일에 출시되었습니다.[59][60]
Scratch 3.0은 2019년 1월 2일에 출시되었습니다.[61]2023년 6월 28일,[62] Scratch 웹사이트의 헤더와 링크가 파란색에서 보라색으로 변경되었고, 색맹인 사람들이 사이트를 읽고 사용하기 쉽도록 새로운 고콘트라스트 블록 색상이 도입되었습니다.[63]
파일 형식
Scratch 1.4에서 *.sb 파일은 프로젝트를 저장하는 데 사용되는 파일 형식이었습니다.[64]
*.sb 파일은 다음과 같이 4개의 섹션으로 나뉩니다.
- "헤더", 이 10바이트 헤더에는 Scratch 1.2보다 높은 버전의 ASCII 문자열 'ScratchV02'와 Scratch 1.2 이하의 버전의 'ScratchV01'이 포함되어 있습니다.
- "infoSize"는 프로젝트의 infoObjects의 길이를 인코딩합니다.길이 4바이트, 32비트, 큰 엔디언 정수.
- "infoObjects", 사전 형식의 데이터 섹션.이 문서에는 다음과 같은 내용이 포함되어 있습니다: "thumbnail", 프로젝트 스테이지의 썸네일, "작성자", 프로젝트 작성자의 사용자 이름, "comment", "Project Notes", "history", 저장 및 업로드 로그, "scratch-version", 파일 저장에 사용되는 Scratch 버전,
- "contents", 스테이지를 루트로 하는 오브젝트 테이블.[65]프로그램의 모든 개체는 여기에 참조로 저장됩니다.[66]
Scratch 2.0은 *.sb2 파일 형식을 사용합니다.이 파일은 .json 파일을 포함한 zip 파일과 사운드(.wav로 저장) 및 이미지(.png로 저장)를 포함한 Scratch 프로젝트의 내용입니다.[67]project.json을 제외한 각 파일 형식은 0에서 시작하여 각 추가 파일을 카운트업하여 숫자로 저장됩니다.'0.png'라는 이미지 파일은 항상 480x360 화이트 이미지이지만 '0.wav'는 여전히 삭제되지 않은 가장 초기의 파일입니다.
ScratchX의 실험 버전인 Scratch는 .sbx 파일 형식을 사용했습니다.[68]
Scratch 3.0은 *.sb2와 매우 유사한 *.sb3 형식을 사용합니다. 한 가지 차이점은 사운드입니다.[69]
구버전
현재 주 Scratch 웹 사이트에서 현재 버전(Scratch 3.0)만 실행되지만 Scratch 2.0(및 이전 Scratch 1.4)의 오프라인 편집기는 여전히 다운로드할[70] 수 있으며 로컬에서 게임을 만들고 실행하는 데 사용할 수 있습니다.[71] Scratch 2.0 런처에서 프로젝트를 업로드할 수 있으며, 이 프로젝트는 메인 사이트에 업로드하면 Scratch 3.0으로 즉시 변환됩니다.[72]Scratch 3.0의 오프라인 버전도 있습니다.
테크놀러지
Scratch 1.4 이하의 에디터는 Squak로 작성되었고 온라인 프로젝트 뷰어는 Java로 작성되었으며 나중에 Adobe Flash로 작성된 플레이어가 추가되었습니다.[73][74]Scratch 2.0은 온라인 버전의 Adobe Flash와 오프라인 편집기의 Adobe AIR에 의존했습니다.이것들은 인기를 잃었고, 어도비는 2020년 말에 그것들에 대한 지원을 중단했습니다.[75][76]
인터페이스

Scratch 2.0에서 스테이지 영역은 왼쪽에 있고 프로그래밍 블록 팔레트는 가운데에 있고 코딩 영역은 오른쪽에 있습니다.확장은 팔레트의 "More Blocks" 섹션에 있습니다.[26]
Scratch 2.0의 블록 팔레트는 하나에서 다음 하나로 스크롤할 수 없는 개별 섹션으로 구성되어 있습니다. 아래 표에는 다양한 섹션이 나와 있습니다.
카테고리 | 메모들 | |
---|---|---|
운동 | 스프라이트 위치 이동 및 변경 | |
이벤트 | 이벤트 핸들러 | |
표정 | 스프라이트의 비주얼을 제어합니다. | |
통제 | 조건부 및 루프 | |
소리 | 오디오 파일, 시퀀스 | |
감지 | 스프라이트 상호작용 | |
펜 | 캔버스에 그리기 | |
연산자 | 수학 연산자 | |
데이터. | 변수 및 배열 | |
블록 추가 | 함수, 반환 값은 항상void |
1.4 소리
Scratch 2.0은 사운드를 가져오는 방식을 바꾸었고, 많은 Scratch 1.4 사운드가 작동을 멈췄습니다(프로젝트 파일이 *.sb에서 *.sb2로 변경되었습니다).
특장점 및 파생상품
Scratch는 스프라이트라고 불리는 여러 활성 객체와 함께 이벤트 기반 프로그래밍을 사용합니다.[12]스프라이트는 벡터 또는 비트맵 그래픽으로 Scratch의 일부인 간단한 편집기에서 처음부터 그리거나 외부 소스에서 가져올 수 있습니다.Scratch 3.0은 "목록"으로 알려진 1차원 배열만 지원하며 부동 소수점 스칼라와 문자열은 지원되지만 문자열 조작 기능은 제한적입니다.강력한 멀티미디어 기능과 멀티스레드 프로그래밍 스타일과 Scratch 프로그래밍 언어의 다소 제한된 범위 사이에는 뚜렷한 대조가 있습니다.
Scratch 2.0은 절차를 퍼스트 클래스 구조로 취급하지 않으며 Scratch 2.0과 다른 프로그램 간의 상호 작용을 허용하는 실험적 확장 기능인 Scratch 2.0 Extension Protocol을 사용하여 파일 I/O 옵션이 제한되어 있습니다.[77]Extension 프로토콜을 사용하면 레고 마인드스톰이나[78] 아두이노와 같은 하드웨어 보드와 인터페이스할 수 있습니다.[79]Scratch 2.0은 ActionScript에 구현되었으며, 실험용 자바스크립트 기반 인터프리터가 병렬로 개발되었습니다.[80]
Scratch 1.4는 Smalltalk-80을 기반으로 하는 Squak을 기반으로 합니다.[73]Scratch 1.4의 소스 코드를 사용하여 Scratch Modifications(스크래치 수정)이라는 다양한 Scratch 파생[81] 모델이 생성되었습니다.이러한 프로그램은 일반적으로 몇 개의 추가 블록이나 GUI의 변경 사항을 포함하는 Scratch의 변형입니다.[82]TurboWarp은 프로젝트를 자바스크립트로 컴파일하여 Scratch의 성능을 향상시키고 외부 확장을 로드할 수 있도록 하는 Scratch 3.0의 비공식적인 수정입니다.[83]
뚝! (나만의 블록 만들기)
Scratch에서 영감을 받은 더 고급의 시각적 프로그래밍 언어는 Snap!이며, 1등급 절차(수학적 기초는 람다 미적분학이라고도 함), 1등급 목록(목록 목록 포함), 프로토타이핑 상속을 포함한 1등급 물체 지향 스프라이트 및 Scratch의 일부가 아닌 nestable 스프라이트를 특징으로 합니다.[84]스냅!(이전 "BYOB")은 캘리포니아 대학교 버클리의 브라이언 하비(Brian[87][88] Harvey)가 제공한 문서와 함께 Jens Mönig에[85][86] 의해 개발되었으며 CS 전공이 아닌 학생들을 대상으로 CS에서 "컴퓨팅의 아름다움과 기쁨" 입문 과정을 가르치는 데 사용되었습니다.[89]두 사람 모두 "Snap!"을 설계하기 전 Scratch 팀의 일원이었습니다.[90][26]
스크래치 주니어
2014년 7월, ScratchJr은 iPad용으로 출시되었고, 2016년에는 Android용으로 ScratchJr이 출시되었습니다.Scratch에서 많은 영감을 받았고 Mitch Resnick이 공동으로 이끌었지만, 그럼에도 불구하고 5세에서 7세까지의 어린 아이들을 위해 고안된 완전한 재작성입니다.[91]
검열
2020년 8월, 그레이트파이어는 중국 정부가 스크래치 웹사이트에 대한 접근을 차단했다고 발표했습니다.당시 중국에서는 3백만 명 이상이 이용하고 있는 것으로 추정됐습니다.[92][citation needed]이 매체는 홈페이지에 마카오, 홍콩, 대만 등이 국가로 등재된 점을 근거로 들었습니다.[92][93]
참고 항목
- Scratch에서 코드 블록을 만들기 위해 사용하는 인터페이스인 Blockly.
- 스냅! (프로그래밍 언어)
- 스위프트 플레이그라운드
- Alice (소프트웨어)
- Twine (소프트웨어)
- 레고 마인드스톰 EV3
- 코두 게임 랩
- Code.org
- 프로그래머블 크리켓
- PWCT
- 시각적 프로그래밍 언어
- 연필 코드(프로그래밍 언어)
- 스크래치 랩
참고문헌
- ^ "Scratch Timeline – Scratch Wiki". en.scratch-wiki.info.
- ^ "Converting Scratch Projects to HTML5 - Discuss Scratch". scratch.mit.edu. Retrieved 16 May 2022.
- ^ "Catrobat Home". catrobat.org.
- ^ "ScratchJr – Home". scratchjr.org.
- ^ "Snap! Build Your Own Blocks". snap.berkeley.edu.
- ^ a b scratch, scratch (11 October 2022). "Scratch – About". scratch.mit.edu.
- ^ "Scratcher - Scratch Wiki". en.scratch-wiki.info. Retrieved 24 May 2023.
- ^ a b c "NSF Award Search: Award # 0325828 – ITR: A Networked, Media-Rich Programming Environment to Enhance Informal Learning and Technological Fluency at Community Technology Centers". www.nsf.gov. Retrieved 15 April 2021.
- ^ a b c "Community statistics at a glance". scratch.mit.edu. Archived from the original on 6 April 2016. Retrieved 18 May 2019.
- ^ a b c Lamb, Annette; Johnson, Larry (April 2011). "Scratch: Computer Programming for 21st Century Learners" (PDF). Teacher Librarian. 38 (4): 64–68. Retrieved 18 May 2019.
- ^ Schorow, Stephanie (14 May 2007). "Creating from Scratch". MIT News. Archived from the original on 13 October 2018. Retrieved 18 May 2019.
- ^ a b c d e Marji, Majed (2014). Learn to Program with Scratch. San Francisco, California: No Starch Press. pp. xvii, 1–9, 13–15. ISBN 978-1-59327-543-3.
- ^ a b "Science Buddies: Scratch User Guide: Installing & Getting Started with Scratch". ScienceBuddies.org. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "Scratch Desktop". Retrieved 19 September 2019.
- ^ "Scratch Lab". lab.scratch.mit.edu. Retrieved 16 November 2022.
- ^ "Scratch 3.0 Extensions". Github. MIT. Retrieved 19 September 2019.
- ^ "GitHub: Scratch-GUI". GitHub. 24 November 2022.
- ^ Pasternak, Erik (17 January 2019). "Scratch 3.0's new programming blocks, built on Blockly". Retrieved 2 October 2019.
- ^ "GitHub: Scratch-VM". GitHub. 8 November 2022.
- ^ "GitHub: Scratch-Render". GitHub. 29 October 2022.
- ^ Frang, Corey (28 February 2019). "Porting Scratch from Flash to Javascript". Retrieved 21 September 2019.
- ^ "Blockly". Google Developers.
- ^ "Music Making in Scratch: High Floors, Low Ceilings, and Narrow Walls? /". Jitp.commons.gc.cuny.edu. 16 May 2019. Retrieved 27 February 2022.
- ^ Oliveira, Michael (30 April 2014). "Canadian schools starting to teach computer coding to kids". CTV.ca. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "Scratch Day". Science Museum of Minnesota. Archived from the original on 8 April 2013. Retrieved 18 May 2019.
- ^ a b c Resnick, Mitchel; Maloney, John; Hernández, Andrés; Rusk, Natalie; Eastmond, Evelyn; Brennan, Karen; Millner, Amon; Rosenbaum, Eric; Silver, Jay; Silverman, Brian; Kafai, Yasmin (2009). "Scratch: Programming for All" (PDF). Communications of the ACM. 52 (11): 60–67. doi:10.1145/1592761.1592779. S2CID 229934947.
- ^ Fay, Joe (6 April 2020). "Kids programming language Scratch nails top 20 in latest dev rankings • DEVCLASS". DEVCLASS. Retrieved 27 April 2020.
- ^ Martin, Neil (25 June 2015). "What is Scratch? Is it AV or IT?". AV Magazine. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "DAV CS Syllabus" (PDF). Archived from the original (PDF) on 13 July 2018. Retrieved 18 May 2019.
- ^ "DAV Jharkhand Syllabus". Retrieved 18 May 2019.
- ^ Young, Jeffrey R. (20 July 2007). "Fun, Not Fear, Is at the Heart of Scratch, a New Programming Language". The Chronicle of Higher Education. ISSN 0009-5982. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "CS50 Syllabus". Archived from the original on 17 March 2015. Retrieved 18 May 2019.
- ^ Monroy-Hernandez, Andres; Hill, Benjamin Mako; Gonzalez-Rivero, Jazmin; Boyd, Danah (2011). "Computers Can't Give Credit: How Automatic Attribution Falls Short in an Online Remixing Community". Proceedings of the 29th International Conference on Human Factors in Computing Systems (CHI '11). ACM. pp. 3421–30. arXiv:1507.01285. doi:10.1145/1978942.1979452. S2CID 7494330.
- ^ Hill, B.M; Monroy-Hernández, A.; Olson, K.R. (2010). "Responses to remixing on a social media sharing website". ICWSM 2010: Proceedings of the 4th International Conference on Weblogs and Social Media, May 23–26, 2010. Washington, D.C.: AAAI Press. arXiv:1507.01284. Bibcode:2015arXiv150701284M. ISBN 978-1-57735-445-1. OCLC 844857775.
- ^ "Scratch Design Studio". wiki.scratch.mit.edu. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "For Parents". scratch.mit.edu. Archived from the original on 4 April 2019. Retrieved 18 May 2019.
- ^ "Scratch Community Guidelines". scratch.mit.edu. Archived from the original on 7 April 2019. Retrieved 18 May 2019.
- ^ "Scratch for Educators". scratch.mit.edu. Archived from the original on 5 October 2008. Retrieved 18 May 2010.
- ^ "Scratch Wiki". en.scratch-wiki.info. Archived from the original on 12 May 2019. Retrieved 18 May 2019.
- ^ "LLK/scratch-gui". 9 January 2021 – via GitHub.
- ^ "Scratch – Developers". scratch.mit.edu.
- ^ "Student and Teacher Accounts - Scratch Wiki". en.scratch-wiki.info. Retrieved 26 May 2023.
- ^ "New Scratcher Status - Scratch Wiki". en.scratch-wiki.info. Retrieved 26 May 2023.
- ^ "Scratch Team - Scratch Wiki". en.scratch-wiki.info. Retrieved 26 May 2023.
- ^ "Student and Teacher Accounts - Scratch Wiki". en.scratch-wiki.info. Retrieved 26 May 2023.
- ^ "Scratch Educator". Meetup.com. Archived from the original on 21 April 2019. Retrieved 18 May 2019.
- ^ "Scratch Week". Archived from the original on 7 April 2019. Retrieved 18 May 2019.
- ^ "LLK – Projects – Building-Block Programming". llk.media.mit.edu. Archived from the original on 30 April 2001. Retrieved 19 December 2021.
- ^ a b "Development of Scratch 1.0". en.scratch-wiki.info. Archived from the original on 3 January 2019. Retrieved 18 May 2019.
- ^ "Tactile Programming: A Unified Manipulation Paradigm Supporting Program Comprehension, Composition and Sharing". Retrieved 15 October 2021.
- ^ "Scratch – Imagine, Program, Share". scratch.mit.edu. Archived from the original on 22 February 2011. Retrieved 18 May 2019.
- ^ "Creative Commons License". wiki.scratch.mit.edu. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "ITR: A Networked, Media-Rich Programming Environment to Enhance Informal Learning and Technological Fluency at Community Technology Centers". National Science Foundation. Archived from the original on 30 December 2015. Retrieved 18 May 2019.
- ^ "Scratch Desktop". scratch.mit.edu. Archived from the original on 6 April 2019. Retrieved 18 May 2019.
- ^ Biggs, John (10 May 2013). "Kids' Programming Tool Scratch Now Runs in the Browser". TechCrunch. Archived from the original on 9 July 2017. Retrieved 18 May 2019.
- ^ "Updated Scratch 2.0 Offline (Beta) is now available!". Scratch. 29 August 2013. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "Scratch 2.0 Preview". YouTube. MITScratchTeam. 1 May 2013. Archived from the original on 24 January 2014. Retrieved 18 May 2019.
- ^ "Scratch 3.0". en.scratch-wiki.info. Archived from the original on 9 May 2019. Retrieved 18 May 2019.
- ^ "3 Things To Know About Scratch 3.0". Medium.com. 31 January 2019. Archived from the original on 12 May 2019. Retrieved 18 May 2019.
- ^ "Scratch 3.0". scratch.mit.edu. Archived from the original on 6 April 2019. Retrieved 18 May 2019.
- ^ "Scratch 3.0 – Scratch Wiki". en.scratch-wiki.info. Retrieved 27 April 2021.
- ^ ceebee, on behalf of the Scratch Team (28 June 2023). "Color Contrast is here!". Retrieved 5 September 2023.
- ^ ceebee, on behalf of the Scratch Team (5 June 2023). "Coming Soon: Color Contrast in Scratch!". Retrieved 5 September 2023.
- ^ "Scratch Wiki – *.sb". 4 October 2015. Retrieved 7 November 2015.
- ^ "Scratch File Format (1.4)/Object Table – Scratch Wiki". en.scratch-wiki.info. Retrieved 19 February 2022.
- ^ "Scratch File Format (1.4)/Object Table – Scratch Wiki". en.scratch-wiki.info. Retrieved 19 February 2022.
- ^ "Scratch File Format (2.0)". Scratch Wiki. Retrieved 2 October 2019.
- ^ "LLK/scratchx". GitHub. 16 August 2022.
- ^ "Scratch File Format". Scratch Wiki. Retrieved 2 October 2019.
- ^ "Scratch 2.0 Offline Editor". MIT. Retrieved 21 September 2019.
- ^ "3 Things To Know About Scratch 3.0". The Scratch Team. 31 January 2019. Retrieved 21 September 2019.
- ^ "Offline Editor (2.0) – Scratch Wiki". en.scratch-wiki.info. Retrieved 27 April 2021.
- ^ a b "Scratch". Squeak/Smalltalk. Retrieved 7 March 2021.
- ^ "Scratch Forums / Beta Flash player". Scratch Archived Forums. Retrieved 7 March 2021.
- ^ O'Donnell, Lindsey (14 January 2019). "Mozilla Kills Default Support for Adobe Flash in Firefox 69". Retrieved 21 September 2019.
- ^ Adobe Corporate Communications (30 May 2019). "The Future of Adobe AIR". Retrieved 21 September 2019.
- ^ "Scratch Extension". MIT. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "EV3+Scratch Extension". Scratch extension GitHub. Code & Circuit. Archived from the original on 20 January 2016. Retrieved 18 May 2019.
- ^ "Preliminary Scratch extension for talking to Arduino boards running Firmata". Scratch extension GitHub. Damellis. Archived from the original on 16 January 2018. Retrieved 18 May 2019.
- ^ "We're seeking contributors to help finish our HTML5 Scratch player (now open sourced!)". Scratch. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "Scratch Modification". Scratch Wiki. Lifelong Kindergarten Group at the MIT Media Lab. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "Blocks". Scratch Wiki. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "TurboWarp - Run Scratch projects faster". turbowarp.org. Retrieved 17 April 2022.
- ^ "Snap! – Build Your Own Blocks". University of California, Berkeley. Archived from the original on 16 May 2019. Retrieved 18 May 2019.
- ^ Mönig, Jens. "Jens on Scratch". Scratch. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ Mönig, Jens (31 May 2011). "BYOB 3.1 – Prototypal Inheritance for Scratch". Chirp Blog. Archived from the original on 6 December 2013. Retrieved 18 May 2019.
- ^ "Brian Harvey". Electrical Engineering and Computer Sciences. Archived from the original on 3 April 2019. Retrieved 18 May 2019.
- ^ "bharvey". Scratch. Archived from the original on 18 May 2019. Retrieved 18 May 2019.
- ^ "CS10 : The Beauty and Joy of Computing". EECS Instructional Support Group Home Page. Archived from the original on 23 January 2014. Retrieved 18 May 2019.
- ^ "Relationship With the Scratch Team".
- ^ "About ScratchJr". scratchjr.org. Retrieved 19 September 2019.
- ^ a b Liao, Rita (7 September 2020). "China bans Scratch, MIT's programming language for kids". TechCrunch. Retrieved 27 April 2021.
- ^ "China blocks MIT's kid-friendly programming language Scratch". Developer Tech News. 8 September 2020. Retrieved 19 November 2020.
외부 링크

