본문 바로가기
[ Block Coding ]/- 스크래치 공부

스크래치 1장(프로그래밍개념, X Y좌표)

by MRG 2020. 4. 20.
728x90
반응형
728x90

▣ 안녕하세요. 
지금부터 스크래치를 진행해보도록 하겠습니다.
이 스크래치 공부는 코딩을 처음 접하시거나 다른 텍스트 언어가 어려우신 분들 재미있게 코딩으로 게임을 만들고 싶은 분들을 위해서 글을 작성하겠습니다.
주의해야 할 점은 먼저 코딩은 코딩을 해서 컴퓨터한테 명령을 주는 것도 중요하지만 그 명령한 게 오류가 생기면 그걸 다시 읽고 고쳐가는 유지보수도 너무 중요합니다. 그렇기 때문에 꼭꼭 읽는 습관, 연습을 해주시면 코딩을 배우는 더 더 좋은 효과가 있을 거라 저는 생각합니다. 
그럼 코딩에 기본적인 개념부터 하나하나 보도록 하겠습니다. 
이부분을 조금이라도 아셔야지 코딩을 할 때 내가 무엇을 하는지 알 수 있기 때문에 완벽하게 이해를 하지 못해도 술술 읽어가시기 바랍니다. 



▣ 프로그래밍 개념
우리가 사는 세상은 컴퓨터로 이루어진 세상입니다. 하루에도 수십 번씩 확인하는 스마트폰, PC, 노트북뿐만 아니라 냉장고, 세탁기, 청소기, 자동차, 시계, 안경, 공기청정기, 오븐, 토스터기까지 컴퓨터가 들어가있는 세상입니다. 그렇다면 컴퓨터는 무엇으로 이루어져 있을까요? 우리 눈에 보이는 쇳덩어리들로만 이루어져 있는 것이 컴퓨터일까요?

 

▣ 하드웨어
사실 컴퓨터는 우리 눈에 보이는 하드웨어와 눈에 보이지 않는 소프트웨어로 이루어져 있습니다.
하드웨어란, 컴퓨터를 구성하는 모든 기계 장치를 통틀어 이르는 말로, 컴퓨터에 들어있는 모든 부품과 주변기기를 말합니다. 예를 들어 마우스, 키보드, 모니터는 물론 컴퓨터 안에 들어있는 CPU, GPU, HDD등을 말합니다.

 

▣ 소프트웨어

소프트웨어란, 컴퓨터를 통제하거나 컴퓨터에 명령을 내려서 작업을 수행하게 하는 모든 프로그램을 말합니다. 예를 들어 문서를 작성하는 프로그램, 바이러스로부터 컴퓨터를 보호하는 백신 프로그램,, 인터넷 접속을 도와주는 익스플로러, 동영상과 사진을 볼 수 있는 프로그램 등이 있습니다. 우리가 흔히 스마트폰이나 PC를 하는 행위는 소프트웨어를 다룬다고 볼 수 있습니다.


이렇게 우리가 사는 세상에 존재하는 모든 기기들은 하드웨어와 소프트웨어, 두 가지로 이루어져 있습니다. 그렇다면 우리 눈에 보이지 않는 소프트웨어는 어떻게 만드는 것일까요? 바로 프로그래밍(programming)이라는 과정을 통해 만들 수 있습니다.

 

 

▣ 프로그래밍

프로그래밍이란 컴퓨팅 기기로 문제를 해결하기 위해 알고리즘을 만들어 수행하는 과정을 말합니다. 프로그래밍은 컴퓨터 공간에서 작업하기 때문에 컴퓨터가 이해할 수 있는 언어로 명령해야 합니다. 이러한 명령어들의 집합을 프로그램(program)이라 하며, 문제 해결을 위해 명령어를 작성하는 과정을 프로그래밍(programming)이라고 합니다. 이러한 프로그래밍 작업을 통해 우리에게 필요한 소프트웨어를 제작하고 유지하고 필요에 따라 업그레이드할 수 있습니다.
그렇다면 프로그램은 어떻게 만드는 것일까요? 바로 ‘프로그래밍 언어’라는 것을 이용해 프로그램을 만들게 됩니다.



▣ 프로그래밍 언어

언어가 사람들 사이의 의사소통 도구라면 프로그래밍 언어는 사람과 컴퓨터 사이에 의사소통을 할 수 있게 만드는 도구입니다. 프로그래밍 언어도 사람의 언어처럼 나름의 규칙이 있습니다. 하지만, 사람의 언어는 문법적으로나 논리적으로 문장의 결함이 있어도 서로 유추해 알아들을 수 있지만, 프로그램 언어는 문법적으로나 논리적으로 완벽해야만 프로그램이 정상적으로 실행됩니다.
또한 사람의 언어 종류가 다양하듯 프로그래밍 언어의 종류도 다양하며 각자 다른 특징을 가지고 있습니다. 따라서 목적에 알맞게 쓰는 것이 중요합니다.
프로그래밍 언어는 C언어, 파이썬, 자바, 스크래치, 엔트리 등 수많은 언어가 존재합니다.



▣ 정보사회와 소프트웨어

우리는 21세기 그렇다면 우리는 코딩을 왜 배워야 될까요? 바로 코딩이 컴퓨터와 대화하는 방법이기 때문입니다. 위에서 말한 내용처럼 우리는 그 동안 코딩을 프로그래밍과 같은 개념으로 생각하고 이해했습니다.
하지만 우리의 일상 생활 곳곳에 컴퓨터가 존재하고 더 이상 일상생활에서 컴퓨터를 떼려야 뗄 수 없는 시대에 코딩은 전문 개발자뿐만 아니라 누구나 해야 되는 꼭 필요한 지식이 되어버린 것입니다. 코딩은 프로그래밍과 다르게 좀 더 포괄적으로 컴퓨터에게 내가 원하는 명령을 말이나 글(코드)로 명령을 내리는 것이라고 보면 될 것입니다.



▣ 텍스트 코딩? 블록코딩?

일반적으로 코딩은 어떤 식으로 배우고 어떻게 활용할까요? 지금까지 우리가 흔히 알고 있는 코딩, 프로그래밍은 C언어나 파이썬, 자바와 같은 텍스트 언어로 배우고 활용하여 상업적으로 이용했습니다. 그런데 시대가 지나면서 전문 인력이 사용하는 배우기 어렵고 상업적인 용도의 프로그래밍 언어가 아닌, 누구나 배울 수 있는 교육 목적의 코딩 언어에 대한 필요성이 대두되었습니다.
기술이 진화하고 시대가 바뀜에 따라 사고력과 창의력을 키워주는 코딩에 대한 관심이 증가되고 있는 것이죠.

 

그렇지만 텍스트 언어는 배우기 어려울 뿐만 아니라 프로그래밍이 목적이 아닌 일반 사람들은 블록 코딩이라는 언어로 쉽고 재미있게 배울 수 있습니다.

 

▣ 블록 코딩의 장점

그렇다면 일반적인 텍스트 언어를 배우는 것보다 블록 코딩을 배우는 것은 어떤 장점이 있을까요?
블록 코딩은 코드를 만들 필요 없이 이미 만들어진 코드를 드래그 앤 드롭으로 조합해 누구나 쉽게 프로그램을 만들 수 있습니다. 블록 모양으로 생긴 코드를 끼워 넣으면 직관적으로 프로그램이 완성되며, 완성된 코드를 ‘무대화면’‘무대 화면’이라는 공간에서 바로바로 확인할 수 있습니다. 마지막으로 PC 환경에서 공부해야 하는 텍스트 코딩과는 다르게 PC는 물론 모바일로도 언제 어디서나 공부가 가능합니다. (스크래치 3.0 기준)



▣ 블록 코딩의 단점

하지만 블록 코딩이라고 모든 점에서 장점만 있는 것은 아닙니다.
텍스트 언어는 모든 코드를 스스로 짜기 때문에 코드의 한계성이 무한한 반면, 블록 코딩은 기존에 있는 제한되어있는 블록을 활용하여 프로그램을 만들어야 하기 때문에 교육용 이외의 상업적인 용도로는 활용하기 매우 힘듭니다.
또한 여러 사람이 함께 협업하여 프로그래밍을 할 수 있는 일반 텍스트 언어와는 다르게 블록코딩은 여러 사람이 협업하기 힘든 구조로 만들어져 있습니다.



▣ 알고리즘

그럼 이러한 코딩을 우리에 생각으로 바로바로 만들어갈 수 있을까요? 네 그렇습니다. 어렵습니다. 우리는 사람이기 때문에 무언가를 보고 바로 떠오르지 않습니다. 사고하고 그 문제를 정리해서 하나하나 해결해 나아가는 사고 컴퓨팅 사고력을 기반으로 알고리즘을 생각한다면 쉽게 만들어 갈 수 있습니다. 그럼 알고리즘이 무엇일까요? 단어적으로 많은 의미들이 있지만 저는 이렇게 생각합니다. 문제를 해결하는 방법, 결과는 같지만 과정이 다른 방법을 알고리즘이라고 저는 생각합니다.



▣ 예를 들어보겠습니다. 엄청 큰 문제가 있다고 생각해봅시다.



이런 큰 문제를 이렇게 나누어서 패턴을 찾아 하나하나 작은 문제로 해결하는 방법 그게 바로 알고리즘입니다.
그럼 이런 알고리즘을 어떻게 쉽게 나누어서 생각할 수 있을까 바로 알고리즘 순서도를 활용하면 됩니다.

 

 

예를 들어 이런 식으로 말입니다. 

 

알고리즘 순서도를 설계하는 방법은 이렇지만 지금 외우지 않아도 됩니다.
한 장한 장 진행하면서 한 개의 기호씩 배워갈 것이다. 그럼 스크래치로 코딩에 세계에 들어가도록 하겠습니다.


▣ 우선 스크래치 화면을 보기 전에 가로세로에 개념을 알아 보록 하겠습니다.
너무 쉽다고? 그래도 한번 보자 절대 까먹지 않는 그림으로 예를 들어보겠습니다.

이 방법은 내 과거 어느 수학선생님? 이? 가르쳐주셨던 방법인데 지금까지 그 그림을 생각하며 기억하고 있습니다.
그럼 저만에 방법으로 X, Y를 까먹지 않게 그림으로 배워보겠습니다.

 

 

여러분들이 마법사라고 생각하고 X몬스터 Y몬스터를 약점을 마법공격으로 한방에 때려잡는다고 생각해보겠습니다.
그럼 저 그림처럼 외우면 X Y를 까먹지 않을 것입니다. 그럼 이제 X, Y가 먼지 알았으니깐 스크래치 X Y 좌표를 살펴보겠습니다.

이런 식으로 스크래치에 좌표는 가운데가 X : 0, Y : 0으로 이루어져 있습니다. 

▣ 그럼 이 위치는 어디일까요? 네 X200 Y0 (200,0)이 됩니다. 이런 식으로 좌표를 움직여서 직접 좌표에 대한 이해를 높이시면 좋을 거 같습니다. 그리고 X는 좌표에 오른쪽은 + , 왼쪽은 -, Y에 위쪽은 +, Y에 아래쪽은 -입니다.
양수 음수에 대한 부분도 꼭 보시면서 좌표를 이해하시면 좋을 거 같습니다^^


▣ 자 그럼 오늘은 프로그래밍에 대한 개념과 좌표에 대해 공부해보았습니다. 
이게 왜 중요하지 라고 생각하실 수 있으시겠지만, 아까 처음 말씀드린 것처럼 코딩을 하더라도 내가 어떤 걸 하는지 알아야 나중에 좀 더 깊이 있게 생각해보고 코딩을 진행할 수 있다고 저는 생각하고, 또 좌표는 스크래치로 게임을 만듬에 있어서 그리고 움직이는 블록들을 사용함에 있어서 너무 중요합니다. 꼭 꼼꼼하게 읽어주시고 숙지해주시면 좋을 거 같습니다. 
그리고 이 블로그를 보고 공부를 끝내는 게 아니라 더 좋은 강사님과 교수님 선생님들에 자료들이 많이 있습니다. 이 블로그가 정답이라고 생각하지 마시고 많은 자료들을 살펴보시면서 공부하시면 더 깊이 있는 코딩을 할 수 있을 거라 생각합니다. 그럼 다음장에서 뵙겠습니다.


▣ 포기하지  마세요!!! 저도 했습니다.!!! 그럼   다음장에서 뵙겠습니다.

728x90
반응형

댓글