1. 이벤트

이벤트

이벤트 들어가기

학교에 너무 가기 싫은 날, 나와 똑같이 생긴 누군가가 나타나 오늘 하루만 자신이 학교를 대신 가주겠다고 하면 여러분은 어떻게 할 건가요?

너무 행복할 것 같지 않나요?

그런데 만약 여러분이 학교에 가지 않고 쉬기로 했다면 여러분은 그 사람에게 학교에서 어떻게 행동해야할지 하나하나 알려주어야 해요.

즉,

처럼 ‘이런 일이 생겼을 땐 이렇게 행동해야 한다’고 알려주어야 합니다.

그 사람은 여러분이 학교에서 어떻게 행동하는지 모르니까요!

직접 학교에 가는 게 나을지도 모르겠네요🤣

이벤트란?

앞의 상상에서 우리는 우리 대신 학교에 가기로 한 그 사람에게 ‘이런 일이 생겼을 땐 이렇게 행동해야 한다’고 알려주어야 했습니다.

이때 우리가 어떤 행동을 하도록 만드는 일을 ‘사건’이라고 부르는데요,

앞에서 살펴보았던 ‘이렇게 행동하세요!’를 사건과 해야할 일로 구분하여 나타내면 다음과 같습니다.

그러면 이제 ‘이벤트’에 대해 알아볼까요?

‘이벤트’는 특정 코드를 실행시키는 사건을 말합니다.

예를 들어 마우스로 화면을 클릭하는 이벤트가 일어나면 스피커에서 야옹 소리를 내는 코드가 실행된다고 생각해봅시다.

이 경우 마우스로 화면을 클릭할 때마다 ‘야옹’ 소리가 나오게 됩니다.

이렇듯 이벤트를 사용하면 코딩으로 아주 재밌는 일들을 많이 할 수 있습니다.

2. 자료형

자료형

자료형 들어가기

자료형이란 무엇일까요?

자료형은 데이터 타입(data type)이라고도 불리는데요, 이는 말 그대로 ‘데이터의 종류’를 뜻합니다.

그렇다면 데이터는 무엇일까요?

지금부터 데이터와 자료형에 대해 차례대로 알아봅시다.

데이터란?

여러분은 컴퓨터로 어떤 일을 하나요?

아마 여러분은 컴퓨터로 덧셈, 뺄셈 등 수학 계산을 하거나 모르는 단어를 검색할 것입니다.

컴퓨터는 이런 일을 할 때 다양한 값들, 예를 들어

'메모리'라 불리는 공간에 저장합니다.

이렇게 컴퓨터가 메모리에 저장한 정보를 '데이터'라고 부릅니다.

컴퓨터는 나중에 데이터를 쓸 일이 생기면 메모리에서 데이터를 꺼내와서 사용합니다.

자료형이란?

컴퓨터는 저장하려는 값이

값을 다른 방식으로 저장합니다.

다시 말해, 값이 ‘수’인지 ‘문자’인지에 따라 컴퓨터가 값을 저장하는 방법이 달라진다는 것입니다.

이렇게 저장된 데이터를(값을) 읽어오는 방법도 그 데이터가 ‘수’인지 ‘문자’인지에 따라 달라집니다.

저장하려던 값이 ‘수’인지 ‘문자’인지에 따라 다른 방식으로 저장됐기 때문에 데이터를 읽어오는 방법도 달라진 것입니다.

이를 정리해보면, 데이터의 종류(데이터가 ‘수’인지 ‘문자’인지)에 따라 컴퓨터가 값을 저장하고 읽어오는 방식이 다르다는 것입니다.

아까 자료형이 데이터의 종류를 뜻한다고 했는데요, 이제 자료형이 어떤 것인지 감이 오나요?

자료형에 대해 정리해보면 다음과 같습니다.

3. 제어문

제어문

제어문이란?

코드는 기본적으로 위에서부터 아래로, 한 줄씩(한 블록씩) 차례대로 실행됩니다.

그러나 모든 블록이 차례대로 실행되는 것만으로는 할 수 없는 일들이 있습니다.

바로 이것입니다.

이런 한계를 극복하기 위해 '제어문'이 탄생했습니다.

제어문은 때때로 이미 실행했던 코드를 반복하거나, 몇몇 코드만 선택적으로 실행하게 해줌으로써 앞의 문제를 해결해줍니다.

반복문

반복문이란?

앞서 살펴보았듯, '반복문'은 '제어문' 중 하나입니다.

반복문도 여러 종류가 있습니다.

그럼 지금부터 반복문과 반복문의 종류에 대해 알아봅시다.

기다리기

기다리기는 말 그대로 코드 실행 중 잠시 '기다리'는 제어문입니다.

코드 실행 중 기다리기를 만나면 특정 시간만큼, 혹은 조건을 만족할 때까지 기다렸다가 다음 코드가 실행되게 됩니다.

반복하기

반복하기는 말 그대로 코드를 '반복하'는 제어문입니다.

정한 횟수만큼 코드를 반복할 수도 있고, 코드를 멈추지 않고 계속 반복할 수도 있습니다.

조건문

조건문이란?

우리는 때에 따라 다른 코드를 실행하고 싶을 때 ‘조건문’을 사용합니다.

주로 '이런 상황일 때는 이런 행동을 한다'는 경우 조건문을 사용하죠.

예를 들어 이런 경우 조건문을 사용하게 됩니다.

예시들이 모두 '~할 때 ~하고 싶은 경우'라는 문장 구조로 이루어져 있다는 것이 눈에 들어오나요?

이는 곧 '이런 상황일 때는 이런 행동을 한다'라는 말과 같죠.

이렇듯 조건문은 어떤 행동을 해야하는 '조건'에 따라 '해야할 일'이 있는 경우에 사용할 수 있습니다.

다만 조건문의 '조건 부분'에 참 또는 거짓 값만 들어갈 수 있습니다.

따라서 아까 살펴본 조건문들은 이렇게 다시 써볼 수 있습니다.

그럼 조건문에 대해 다시 한 번 정리해봅시다.

만약 (if)

만약은 조건을 만족하는 경우(데이터 값이 원하던 값인 경우) 코드를 실행하는 '조건문'입니다.

만약-아니면 (if-else)

만약-아니면은 조건을 만족하는 경우(데이터 값이 원하던 값인 경우) 실행할 코드와 조건을 만족하지 않는 경우 실행할 코드가 다를 때 사용하는 '조건문'입니다.

4. 연산

연산

연산 들어가기

우리는 물건의 개수를 셀 때나 시간을 계산할 때마다 덧셈을 합니다.

아마 덧셈을 한 날보다 덧셈을 하지 않은 날이 더 적을 것입니다.

그리고 덧셈은 우리가 알아보려는 ‘연산’ 중 하나입니다.

덧셈 뿐만이 아닙니다.

뺄셈, 곱셈, 나눗셈까지, 이 모든 것이 다 연산입니다.

놀랍지 않나요?

연산에는 덧셈, 뺄셈, 곱셈, 나눗셈 말고도 수많은 연산이 있습니다.

그러나 수많은 연산 중, 특히 많이 사용되는 덧셈, 뺄셈, 곱셈, 나눗셈 네 가지의 연산을 우리는 ‘사칙연산’이라고 부릅니다.

그렇다면 ‘연산’이란 무엇일까요?

그럼 지금부터 사칙연산의 공통점을 살펴보며 ‘연산’이란 무엇인지 추측해보고, 사칙연산을 제외한 다른 연산들을 살펴보며 앞에서 추측한 연산의 의미가 적절한지 생각해봅시다.

우선 덧셈, 뺄셈, 곱셈, 나눗셈에는 이런 공통점이 있습니다.

등등...

이러한 공통점들 중에서 우리가 덧셈, 뺄셈, 곱셈, 나눗셈을 연산이라고 부르는 이유와 관련된 공통점은 바로 이것입니다.

즉, 연산이란 두 개의 수를 넣으면 규칙에 따라 새로운 수를 계산해주는 상자인 것입니다.

그렇다면 지금까지 생각해본 연산의 의미에 대해 추측한 것을 간단히 정리해볼까요?

그런데 세상에 존재하는 연산 중에는 계산할 때 수가 딱 하나만 필요한 것도 있습니다.

예를 들어 ‘제곱’ 연산은 결과를 구하기 위해 딱 한 개의 수가 필요합니다.

어떤 연산의 경우엔 결과를 구하기 위해 세 개 이상의 수가 필요하기도 합니다.

즉, 연산 중 계산할 때 반드시 두 개의 수가 필요한 것은 아니라는 것입니다.

그렇다면 우리가 추측한 연산의 의미 중 (1)번을 살짝 바꾸어봅시다.

지금까지 우리는 연산을 할 때 주어진 값과 결과 값이 모두 ‘수’인 경우만을 살펴보았습니다.

주어진 ‘수’를 이용하여 결과가 되는 ‘수’를 구하는 연산에 대해서만 살펴본 것이죠.

그런데 사실 연산은 ‘수’에 한정된 것이 아닙니다.

예외를 한번 살펴볼까요?

예외 1 - 계산 결과가 ‘수’가 아니라 ‘참/거짓’인 경우

주어진 두 수의 크기가 같은지 확인하는 것도 연산 중 하나입니다.

우리는 두 개의 수를 보고 ‘두 수의 크기가 같다’라는 말에

  • 네, 참입니다.
  • 아니요, 거짓입니다.

라고 답할 수 있는데요, 이때 ‘참’이나 ‘거짓’도 계산 결과로 생각합니다.

다시 말해, 두 수의 크기를 비교하는 연산은

  • 상자에 두 ‘수’를 넣어주면
  • ‘참’이나 ‘거짓’이 나오는

연산인 것입니다.

연산의 결과가 ‘참’이나 ‘거짓’이 될 수도 있다는 것입니다.

예외 2 - 주어진 값과 결과 값이 모두 ‘수’가 아니라 ‘참/거짓’인 경우

‘참/거짓’ 값들로 새로운 ‘참/거짓’을 구하는 연산도 있습니다.

청개구리 같은 NOT (부정) 연산을 한번 살펴봅시다.

NOT 연산을 해주는 상자를 떠올려볼까요?

이 상자는

  • ‘참’이 들어오면 ‘거짓’이 나오고,
  • ‘거짓’이 들어오면 ‘참’이 나옵니다.

정말 청개구리 같지 않나요?

다시 말해, NOT 연산은

  • 상자에 ‘참’이나 ‘거짓’을 넣어주면
  • ‘참/거짓’ 결과를 구하는 계산 방법

연산인 것입니다.

예외들을 살펴보니 어떤가요?

이제 연산이 꼭 ‘수’를 다루는 것만이 아니란 걸 알겠나요?

연산이란?

그렇다면 마지막으로 연산의 의미를 살짝 고쳐봅시다.

논리 연산

참/거짓이란?

논리 연산에 대해 알아보기 전에 잠시 문제를 풀어봅시다.

너무 간단한 문제죠?

그래도 정답을 확인해봅시다.

정답
  • 1번. 맞다
  • 2번. 아니다

정답을 맞추었나요?

이 문제를 푼 이유는 바로 ‘참’과 ‘거짓’에 대해 알아보기 위해서입니다.

우리는 어떤 말이 사실인지 아닌지를 말할 때 ‘참’ 또는 ‘거짓’이라고 말합니다.

그렇다면 앞의 문제에 대해 ‘맞다’, ‘아니다’ 대신 ‘참’과 ‘거짓’으로 대답한다면 어떻게 대답해야할까요?

정답
  • 1번. 참이다 먼저 1번 문제를 살펴봅시다. 코코는 강아지라는 말은 사실입니다. 그래서 우리는 코코는 강아지라는 말에 ‘참’이라고 답해야 합니다.
  • 2번. 거짓이다 코코의 털은 검은색입니다. 그런데 문제에서는 코코의 털이 갈색이냐고 묻고 있습니다. 따라서 코코의 털이 갈색이라는 것은 사실이 아닙니다. 그래서 우리는 ‘거짓’이라고 답해야 합니다.

논리 연산 들어가기

앞에서는 ‘참’과 ‘거짓’과 관련된 문제를 풀어보았습니다.

이번에도 문제를 풀어볼 건데요, 이번 문제는 논리 연산과 관련된 문제입니다.

논리 연산에 대해 모르는데 어떻게 문제를 푸냐구요?

우리는 잘 알지 못하지만 사실 우리는 논리 연산을 매일매일 하고 있답니다.

그러면 이제 문제를 풀어봅시다.

이제 정답을 확인해봅시다.

정답
  • 1번. 참이다. 이 사람은 코코가 강아지면서 털이 검은색이라고 말하고 있습니다. 코코는 실제로 강아지가 맞고 털도 검은색이 맞으므로 이 말은 참입니다.
  • 2번. 거짓이다. 이 사람은 코코가 강아지면서 털이 갈색이라고 말하고 있습니다. 그런데 코코는 강아지가 맞지만 털은 갈색이 아닙니다. 따라서 이 말은 거짓입니다.
  • 3번. 참이다. 이 사람은 코코가 고양이라는 것과 코코의 털이 검은색이라는 것 둘 중에 하나는 맞을 거라고 말하고 있습니다. 코코가 고양이라는 것은 틀렸지만 코코의 털이 검은색이라는 것은 맞는 말입니다. 둘 중 하나를 맞췄으므로 이 말은 참입니다.
  • 4번. 거짓이다. 이 사람은 코코가 고양이라는 것과 코코의 털이 갈색이라는 것 둘 중에 하나는 맞을 거라고 말하고 있습니다. 안타깝게도 코코가 고양이라는 것과 코코의 털이 갈색이라는 것은 둘 다 틀렸습니다. 따라서 이 말은 거짓입니다.

왜 이것이 정답인지 하나하나 살펴봅시다.

자세한 풀이

우선 문제를 살펴보면, 문제가 두 부분으로 나누어져있다는 것을 알 수 있습니다.

예를 들어 우리는 ‘방금 지나간 것은 강아지이고 털이 검은색이다.’라는 1번 문제를

  • 코코는 강아지이다.
  • 코코의 털은 검은색이다.

라는 두 문장으로 나눌 수 있습니다.

그 후 우리는 각각의 문장에 대해 ‘참’과 ‘거짓’을 판단할 수 있습니다.

  • 코코는 강아지이다. ⇒ 참이다.
  • 코코의 털은 검은색이다. ⇒ 참이다.

그 다음으로 우리는 문장 전체가 ‘참’인지 ‘거짓’인지 판단하게 됩니다.

  • 1번. 나누어진 두 문장이 모두 '참'인지 묻고 있습니다. 실제로 둘 다 '참'이므로 정답은 ‘참’이 됩니다.
  • 2번. 나누어진 두 문장이 모두 '참'인지 묻고 있습니다. 실제로 하나는 '거짓'이므로 정답은 ‘거짓’이 됩니다.
  • 3번. 나누어진 두 문장 중 하나라도 '참'인지 묻고 있습니다. 둘 중 하나가 '참'이므로 정답은 ‘참’입니다.
  • 4번. 나누어진 두 문장 중 하나라도 '참'인지 묻고 있습니다. 둘 다 '거짓' 정답은 ‘거짓’입니다.

이렇듯 두 문장의 참/거짓을 모두 따져본 후 전체 문장의 ‘참’과 ‘거짓’을 판단하는 것을 ‘논리 연산’이라고 부릅니다.

그렇다면 논리 연산에 대해 더 자세히 알아봅시다.

논리 연산이란?

논리 연산에 앞서 먼저 덧셈을 살펴봅시다.

덧셈은 두 개의 수를 넣으면 그 두 수를 더한 값이 나오는 상자로 생각할 수 있습니다.

논리 연산도 이러한 상자처럼 생각할 수 있습니다.

다만 논리 연산은 덧셈과 달리

이를 유의하여 논리 연산이 무엇인지 정리해보면 다음과 같습니다.

또한 한 가지 주의할 것이 있습니다.

상자에 들어가는 참/거짓 값이 한 개일 수도 있다는 것입니다.

그렇다면 이제 다양한 논리 연산의 종류를 살펴보며 논리 연산에 대해 더 자세히 알아봅시다.

논리 연산 종류

연산 이름계산법들어가는 값나오는 값
AND (그리고)주어진 값들이 모두 ‘참’일 때만 ‘참’이, 아닐 때는 ‘거짓’이 된다참/거짓 2개참/거짓
OR (또는)주어진 값들 중 하나라도 ‘참’이면 ‘참’이, 아니면 ‘거짓’이 된다참/거짓 2개참/거짓
NOT (부정)주어진 값이 ‘참’이면 ‘거짓’이, ‘거짓’이면 ‘참’이 된다참/거짓 1개참/거짓

크기 비교 연산

크기 비교 연산 들어가기

크기 비교 연산에 대해 알아보기 전에 문제를 한번 풀어봅시다.

문제는 간단합니다.

두 수의 크기를 비교하는 문장이 있는데, 만약 그 문장이 맞는 말이라면 ‘참’으로, 틀린 말이라면 ‘거짓’으로 답하면 됩니다.

그럼 문제를 풀어볼까요?

문제를 풀었다면 정답을 확인해봅시다.

정답
  • 1번. 거짓
  • 2번. 거짓
  • 3번. 참

정답을 맞추었나요?

지금까지 여러분이 한 것이 정확히 ‘크기 비교 연산’입니다.

여러분이 했던 것처럼 두 수의 크기를 비교하는 문장을 보고, 그 문장이 ‘참’인지 ‘거짓’인지 판단하는 것을 ‘크기 비교 연산’이라고 부릅니다.

크기 비교 연산이란?

크기 비교 연산을 알아보기에 앞서 먼저 덧셈을 살펴봅시다.

덧셈은 두 개의 수를 넣으면 그 두 수를 더한 값이 나오는 상자로 생각할 수 있습니다.

크기 비교 연산도 이러한 상자처럼 생각할 수 있습니다.

다만 크기 비교 연산은 덧셈과

이를 유의하여 크기 비교 연산이 무엇인지 정리해보면 다음과 같습니다.

또한, 한 가지 주의할 것이 있습니다.

우리는 보통 수의 크기를 비교하지만 컴퓨터는 문자의 크기도 비교할 수 있습니다.

예를 들어 ‘A’는 ‘B’보다 크기가 작습니다.

그런데 문자를 비교하는 것이 가능한 이유는 바로

이 있기 때문입니다.

이 말은 컴퓨터에게 어떤 두 값의 크기를 비교하는 방법만 알려준다면 수나 문자가 아닌 값들도 크기를 비교할 수 있다는 것입니다.

그렇다면 이제 크기 비교 연산의 종류를 살펴보며 크기 비교 연산에 대해 더 자세히 알아봅시다.

크기 비교 연산의 종류

연산 이름계산법
== (같다)주어진 값의 크기가 같으면 ‘참’, 다르면 ‘거짓’이 된다.
≠ (다르다)주어진 값의 크기가 다르면 ‘참’, 같으면 ‘거짓’이 된다.
> (크다)주어진 값 중 왼쪽 값이 오른쪽 값보다 크면 ‘참’, 크지 않으면 ‘거짓’이 된다.
< (작다)주어진 값 중 왼쪽 값이 오른쪽보다 작으면 ‘참’, 작지 않으면 ‘거짓’이 된다.
≥ (같거나 크다)주어진 값 중 왼쪽 값이 오른쪽 값과 같거나 그것보다 크면 ‘참’, 작으면 ‘거짓’이 된다.
≤ (같거나 작다)주어진 값 중 왼쪽 값이 오른쪽 값과 같거나 그것보다 작으면 ‘참’, 크면 ‘거짓’이 된다.

일부 크기 비교 연산은 다른 연산들을 조합하여 만들 수도 있습니다.

연산 조합하기

랜덤

랜덤이란?

우리는 여러 개 중 아무거나 고를 때 무언가를 ‘랜덤으로’ 골랐다고 말합니다.

코딩을 할 때도 랜덤을 사용할 수 있는데요,

주어진 여러 개의 수 중에 아무거나 하나를 고르고 싶을 때 ‘랜덤’을 사용합니다.

이런 랜덤은 어떻게 활용할 수 있을까요?

랜덤의 활용법을 알아봅시다.

5. 수학

확률

확률이란?

확률이란 무엇일까요?

확률은 어떤 일이 일어날 가능성을 말합니다.

확률에 대해 알아보기 위해 흰 공 4개와 검은 공 1개가 들어있는 박스에서 아무렇게나 공을 고르는 경우를 생각해봅시다.

이 상황에서 공을 10번 고르면 검은 공은 보통 2번 정도 뽑힙니다.

이럴 때 검은공이 뽑힐 확률이 0.2(2번/10번)라고 말합니다.

반대로 공을 10번 고르는 경우에 흰 공은 8번 정도 뽑힙니다.

즉, 흰공이 뽑힐 확률은 0.8(8번/10번)인 것입니다.

확률 구현하기

확률은 랜덤을 사용하여 구현할 수 있습니다.

먼저 1부터 5까지의 수 중 하나를 고르는 상황을 생각해봅시다.

랜덤으로 수를 골랐을 때 1이 나올 확률은 0.2입니다.

이 상황은 공 5개 중에서 검은 공이 뽑히는 상황과 같으니까요.

따라서 ‘1부터 5 사이에서 랜덤으로 고른 수가 1보다 같거나 작다’는 것은 0.2의 확률로 이 됩니다.

따라서 이걸 조건문의 조건으로 넣어주면 0.2의 확률로 특정 코드를 실행할 수 있습니다.

‘1부터 5 사이에서 랜덤으로 고른 수가 3보다 같거나 작다’를 넣으면 0.6의 확률로 특정 코드를 실행할 수 있겠죠?