주 메뉴 열기

ianwiki β

스크래치(Scratch)

목차

개요편집

스크래치(Scratch)는 미국 MIT Media Lab의 Lifelong Kindergarten 그룹에서 개발한 무료 블록 기반 프로그래밍 언어 및 온라인 커뮤니티이다. 아이들이 코딩을 통해 창의적으로 생각하고, 체계적으로 추론하며, 협력하는 방법을 배울 수 있도록 돕기 위해 만들어졌다.

---

개발 배경 및 목적편집

  • 창의적 학습 보장: 전 세계 누구나 자신만의 인터랙티브 이야기, 게임, 애니메이션을 만들 수 있도록 설계되었다.
  • 접근성 향상: 복잡한 텍스트 문법 오류 대신, 색깔별로 분류된 블록을 끌어다 붙이는 방식으로 쉽게 코딩을 배울 수 있다.
  • 21세기 필수 역량 개발: 논리적 사고력, 문제 해결 능력, 협동심, 창의력을 자연스럽게 기르도록 지원한다.

---

주요 특징편집

시각적 블록 코딩편집

  • 드래그 앤 드롭(Drag and Drop) 방식으로 블록을 연결한다.
  • 블록 형태가 서로 맞는 것끼리만 결합되므로 문법적인 실수를 줄여준다.

무료 및 웹 기반 서비스편집

  • 웹 브라우저만 있으면 별도의 프로그램 설치 없이 온라인에서 무료로 이용할 수 있다.
  • 인터넷이 없는 환경에서도 사용할 수 있는 오프라인 에디터(Scratch Desktop)도 함께 제공한다.

다국어 지원편집

  • 한국어를 포함하여 전 세계 70개 이상의 언어를 공식 지원한다.
  • 언어를 변경하면 블록에 적힌 글자가 해당 언어로 즉시 전환된다.

---

화면 구성편집

무대 (Stage)편집

  • 프로젝트가 실행되고 스프라이트가 움직이는 2D 좌표 공간이다.
  • 가로(X축 -240 ~ 240), 세로(Y축 -180 ~ 180)의 좌표계로 작동한다.

스프라이트 (Sprite)편집

  • 무대 위에서 움직이거나 작동하는 캐릭터, 물체, 글자 등의 객체이다.
  • 고유한 모양(Costume), 소리(Sound), 코드(Script)를 갖는다.

블록 팔레트 (Block Palette)편집

  • 카테고리별로 나누어진 다양한 기능 블록들이 들어 있는 공간이다.
  • 동작, 형태, 소리, 이벤트, 제어, 감지, 연산, 변수 등이 제공된다.

스크립트 영역 (Script Area)편집

  • 팔레트에서 가져온 블록들을 조립하여 실제 프로그램을 만드는 작업 공간이다.

---

주요 블록 카테고리편집

동작 (Motion)편집

  • 스프라이트의 위치, 방향, 이동, 회전 등을 제어한다.
  • 예: `10만큼 움직이기`, `x: 0 y: 0 (으)로 이동하기`, `90 도 방향 보기`.

형태 (Looks)편집

  • 스프라이트의 모양 변경, 말풍선 출력, 크기 및 색깔 효과를 설정한다.
  • 예: `"안녕!" 2초 동안 말하기`, `다음 모양으로 바꾸기`, `크기를 10만큼 바꾸기`.

소리 (Sound)편집

  • 효과음이나 배경음악을 재생하고 부피(음량) 및 피치를 조절한다.
  • 예: `야옹 소리 재생하기`, `모든 소리 끄기`.

이벤트 (Events)편집

  • 프로그램이 언제 시작하고 작동할지 결정하는 신호 역할을 한다.
  • 예: `녹색 깃발을 클릭했을 때`, `스페이스 키를 눌렀을 때`, `이 스프라이트를 클릭했을 때`.

제어 (Control)편집

  • 조건 판단과 반복, 대기 등 프로그램의 흐름을 관리한다.
  • 예: `1초 기다리기`, `10번 반복하기`, `무한 반복하기`, `만약 ~라면`.

감지 (Sensing)편집

  • 마우스 위치, 키보드 입력, 벽이나 다른 스프라이트에 닿았는지 여부를 확인한다.
  • 예: `마우스 포인터에 닿았는가?`, `스페이스 키를 눌렀는가?`, `묻고 기다리기`.

연산 (Operators)편집

  • 사칙연산, 무작위 수(난수), 논리 연산(그리고, 또는, 아니다), 문자열 결합을 수행한다.
  • 예: `1 + 1`, `1부터 10 사이의 난수`, `~문자열과 ~문자열 합치기`.

변수 (Variables)편집

  • 점수, 남은 시간, 체력 등 데이터를 저장하는 공간을 만든다.
  • 필요에 따라 여러 데이터를 한 번에 관리하는 '리스트(List)' 기능도 지원한다.

---

확장 기능 (Extensions)편집

음악 및 그리기 (Pen)편집

  • 음악: 악기 소리를 내거나 악보를 연주하는 코드를 작성할 수 있다.
  • 펜: 스프라이트가 움직인 궤적을 따라 선을 그리거나 도장을 찍을 수 있다.

피지컬 컴퓨팅 및 외부 기기 연동편집

  • 마이크로비트(micro:bit), 레고(LEGO Education), 아두이노 등 외부 하드웨어 교구와 연결하여 작동시킬 수 있다.

AI 및 카메라 연동편집

  • 비디오 감지 기능을 통해 웹캠으로 사람의 움직임을 인식하고 인터랙티브 프로젝트를 만든다.
  • 번역 및 텍스트 음성 변환(TTS) 기능을 제공한다.

---

글로벌 커뮤니티편집

작품 공유 및 리믹스 (Remix)편집

  • 내가 만든 프로젝트를 전 세계 사람들과 공유할 수 있다.
  • 다른 사람의 프로젝트 코드를 열어보고 수정하여 나만의 작품으로 다시 만드는 '리믹스' 문화가 활성화되어 있다.

커뮤니티 가이드라인편집

  • 서로 존중하고 안전한 환경을 유지하기 위해 비방, 욕설, 개인정보 유출을 금지하는 규칙을 운영한다.

---

활용 분야편집

  • 초등 및 중등 정보 교육: 전 세계 프로그래밍 기초 교육의 대표 도구.
  • 인터랙티브 스토리텔링: 애니메이션과 동화책 제작.
  • 2D 게임 개발: 아케이드, 장애물 피하기, 퍼즐 게임 창작.
  • 피지컬 컴퓨팅: 센서 기반 작동 장치 모형 제작.