WEBVTT 00:00:01.740 --> 00:00:05.000 우린 Winston의 눈의 크기에 대한 멋진 변수를 만들었어요 00:00:05.000 --> 00:00:06.440 이건 아주 유용했어요 00:00:06.440 --> 00:00:08.186 왜냐하면 Winston의 눈의 크기를 변경하고 싶을 때 00:00:08.186 --> 00:00:10.310 일일이 변수를 쓰지 않아도 되니까요 00:00:10.310 --> 00:00:12.033 기억나죠? 전에는 크기를 바꿀 때마다 00:00:12.033 --> 00:00:15.966 같은 숫자를 네 번 적어줘야 했어요 00:00:15.966 --> 00:00:17.809 하지만 변수를 이용하면 그 숫자들을 대신할 수 있을까요? 00:00:17.809 --> 00:00:19.212 숫자들이 같지 않다고 해도요? 00:00:19.212 --> 00:00:21.716 만약 Winston을 조금만 움직이고 싶다면 어떨까요? 00:00:21.716 --> 00:00:23.763 x좌표를 각각 바꿀 수도 있지만 00:00:23.763 --> 00:00:25.568 그게 항상 같지는 않아요 00:00:25.568 --> 00:00:27.933 그러니까 그 숫자 전체를 어떤 변수로 대체할 수는 없어요 00:00:27.933 --> 00:00:29.139 하지만! 00:00:29.139 --> 00:00:31.215 변수에 수를 할당하면 그 변수를 00:00:31.215 --> 00:00:33.943 마치 그 숫자처럼 사용할 수 있어요 00:00:33.943 --> 00:00:37.073 즉 변수를 수학적으로 표현할 수 있다는 거에요 00:00:37.073 --> 00:00:39.056 이렇게 해 볼까요? 변수를 만들어 봐요 00:00:39.056 --> 00:00:41.039 먼저 Winston의 x좌표로요 00:00:41.039 --> 00:00:43.024 var x를 선언해요 00:00:43.024 --> 00:00:44.655 간단하죠 00:00:44.655 --> 00:00:48.036 이제 Winston의 얼굴의 x 좌표에 변수를 주도록 해요 00:00:48.036 --> 00:00:51.339 얼굴은 x좌표상 200에 그려져 있네요 00:00:51.339 --> 00:00:54.423 그러므로 var x는 200 이 되겠네요 00:00:55.053 --> 00:00:59.018 이제 이 숫자를 새로운 변수인 x로 표현 할 수 있어요 00:00:59.018 --> 00:01:02.480 그리고 x의 값을 변화할때 Winston의 얼굴이 변화함을 볼 수 있어요 00:01:02.480 --> 00:01:04.292 하지만 눈과 입은 빼고 움직여요 00:01:04.982 --> 00:01:10.268 이걸 고치려면 눈과 입의 위치를 00:01:10.268 --> 00:01:13.135 얼굴의 위치에 대해 상대적으로 주도록 해보죠 00:01:14.082 --> 00:01:18.052 x좌표는 다른 원들의 중심을 나타내요 00:01:18.052 --> 00:01:22.022 그러니까 얼굴은 중심이 200인 곳에 그려지겠죠 00:01:22.022 --> 00:01:24.596 이제 그럼 왼쪽 눈을 먼저 고려해봐요 00:01:24.596 --> 00:01:26.472 이 원이 왼쪽 눈 이네요 00:01:26.472 --> 00:01:29.608 좌표 상 150에 그려진 것을 볼 수 있어요 00:01:29.608 --> 00:01:33.075 여기가 150이에요 00:01:33.075 --> 00:01:37.552 150은 200보다 50만큼 작으니까 00:01:37.552 --> 00:01:42.360 얼굴이 어디에 있든지 왼쪽 눈은 50을 뺀 위치에 있어요 00:01:42.360 --> 00:01:47.660 그 어디에 있는 곳이 x 이고 얼굴의 -50의 지점에 있어요 00:01:48.020 --> 00:01:50.082 그리고 이제 x변수 값을 조절하면 00:01:50.082 --> 00:01:53.254 눈이 얼굴과 함께 움직이게 돼요 00:01:53.254 --> 00:01:54.616 그러면 반대편 눈도 해볼게요 00:01:54.616 --> 00:01:57.498 오른쪽 눈은 300의 위치에 그려져 있어요 00:01:57.498 --> 00:02:01.470 여기서 볼 수 있듯이 300은 여기네요 00:02:01.470 --> 00:02:05.754 그리고 300은 200에서 100을 더하면 돼요 00:02:05.754 --> 00:02:09.902 그러므로 눈은 얼굴이 어디있든지 100을 더해주면 되겠군요 00:02:09.902 --> 00:02:12.535 그러므로 x+100이 됩니다 00:02:12.535 --> 00:02:14.181 이제 입만 고려해주면 되겠군요 00:02:14.181 --> 00:02:16.857 입은 250인 지점에 그려져 있어요 00:02:16.857 --> 00:02:19.396 여기쯤 이에요 250인걸 아니까 00:02:19.396 --> 00:02:22.895 그리고 250은 200에 50을 더한 거니까 00:02:22.895 --> 00:02:27.804 이건 얼굴이 어디에 있든지 00:02:27.804 --> 00:02:30.983 x+50이 되네요 00:02:30.983 --> 00:02:33.347 이제 이러한 숫자들을 다 지워도 돼요 00:02:33.347 --> 00:02:38.253 x의 값을 변화시킬때마다 전체 얼굴이 움직일 거에요 00:02:38.253 --> 00:02:39.579 우와! 00:02:39.579 --> 00:02:42.792 끝내기 전에 변수에 대해 조금 더 배워보도록 할게요 00:02:42.792 --> 00:02:45.558 var x를 사용하는 변수를 만들면 00:02:45.558 --> 00:02:48.395 원할 때 마다 값을 할당할 수 있어요 00:02:48.395 --> 00:02:51.504 x에 198이라는 값을 준 후에 00:02:51.504 --> 00:02:54.947 x를 300으로 만들 수도 있고 00:02:54.947 --> 00:02:59.240 아니면 150으로 만들 수도 있어요 00:02:59.240 --> 00:03:01.216 그리고 이 이후부터는 컴퓨터는 x의 값을 00:03:01.216 --> 00:03:03.432 마지막에 할당한 값으로 생각해요 00:03:03.432 --> 00:03:05.419 그러니까 이 경우에는 150이네요 00:03:05.419 --> 00:03:08.235 하지만 여러분은 var 를 한 변수에 한 번만 사용해야 해요 00:03:08.235 --> 00:03:12.510 만일 여기 이 부분에 var x가 150을 갖는다고 해버리면 00:03:12.510 --> 00:03:15.825 새로운 변수 x를 만들게 된 거에요 00:03:15.825 --> 00:03:18.394 전에 있던 변수 x는 아예 없어지게 된 거에요 00:03:18.394 --> 00:03:21.563 위의 이 변수들은 모두 다 사라지게 돼요 00:03:21.563 --> 00:03:24.615 그리고 컴퓨터는 오직 새로운 변수만을 사용할 거에요 00:03:24.615 --> 00:03:28.127 가끔은 이런 끔찍한 일 없이 사용할 수 있을 지 몰라도 00:03:28.127 --> 00:03:29.851 추천해드리고 싶지는 않네요 00:03:29.851 --> 00:03:33.208 지금부터 저는 한번만 사용할거에요 var x 는 150으로요 00:03:33.208 --> 00:03:37.186 이제 편하게 이 그림을 화면 밖으로 움직일 수 있어요 00:03:37.186 --> 00:03:40.254 다음 주제로 넘어갈 수 있게 말이죠 00:03:40.254 --> 00:03:44.592 변수에 어떤 값을 지정하게 될 때 00:03:44.592 --> 00:03:47.450 그 변수는 안전한 곳에 저장돼요 00:03:47.450 --> 00:03:49.881 사실 '='의 왼쪽에 위치해야 00:03:49.881 --> 00:03:53.532 진정한 변수 그 자체로 여길 수 있어요 00:03:53.532 --> 00:03:55.540 왜냐하면 이 값을 컴퓨터가 00:03:55.540 --> 00:03:57.348 '변수'라고 생각하게 되니까요 00:03:57.348 --> 00:04:00.037 다른 위치에 있는 값은 그냥 '값'이라고 생각하게 될 거에요 00:04:00.037 --> 00:04:02.384 다음과 같이 한다고 할지라도 말이죠 00:04:02.384 --> 00:04:06.041 var x는 10이고 00:04:06.041 --> 00:04:10.504 x는 x에요 00:04:10.504 --> 00:04:11.727 오 헷갈리네요 00:04:11.727 --> 00:04:14.572 왼쪽의 x를 먼저 봅시다. 00:04:14.572 --> 00:04:17.497 이 x는 독립적인 변수에요 00:04:17.497 --> 00:04:20.372 커질 수도 있고 변화할 수도 있죠 00:04:20.372 --> 00:04:24.997 하지만 오른쪽 값은 그냥 '10'이에요 00:04:24.997 --> 00:04:27.163 슬프게도요 하지만 이걸 00:04:27.163 --> 00:04:28.939 정말 유용하게 사용할 수 있어요 00:04:28.939 --> 00:04:33.535 x는 x+1이라고 해봐요 00:04:33.535 --> 00:04:37.019 왼쪽의 값은 안전한 장소에 있는 변수이고 00:04:37.019 --> 00:04:40.412 오른쪽에도 같은 변수가 있지만 00:04:40.412 --> 00:04:42.674 알다시피 여기서의 값은 그냥 숫자일 뿐이죠 00:04:42.674 --> 00:04:44.206 그냥 '10'이에요 00:04:44.206 --> 00:04:47.199 머릿속으로 생각해보면 x는 10+1이 되는거에요 00:04:47.199 --> 00:04:51.064 이 말은 x는 11이라는거죠 00:04:51.064 --> 00:04:54.319 그러므로 이 전체 수식은 x는 11이라는 뜻이에요 00:04:54.319 --> 00:04:57.574 그러므로 이제부터 x의 값은 11이 돼요 00:04:57.574 --> 00:05:01.201 다른 변수를 이 방정식에 넣으면 어떻게 되는지 볼까요? 00:05:01.201 --> 00:05:06.448 var x를 10로 하고 00:05:06.448 --> 00:05:10.473 var y는 20 00:05:10.473 --> 00:05:12.154 x 는 y 00:05:12.154 --> 00:05:13.835 어머나 00:05:13.835 --> 00:05:17.107 그리고 y는 7이라고 해요 00:05:17.111 --> 00:05:18.706 좋아요 제가 알고 싶은 것은 00:05:18.706 --> 00:05:22.103 x의 값은 무엇이 되는 지에요 00:05:22.103 --> 00:05:23.531 확인해봐요 00:05:23.531 --> 00:05:27.176 이 수식에서 새로운 변수 x를 만들어서 00:05:27.176 --> 00:05:29.171 그리고 10의 값을 지정했어요 00:05:29.171 --> 00:05:31.777 따라서 x의 값은 10이 됐어요 00:05:31.777 --> 00:05:33.799 이 수식에서는 새로운 변수 y를 만들어서 00:05:33.799 --> 00:05:35.751 20이라는 값을 지정했어요 00:05:35.751 --> 00:05:37.043 x에는 아무 것도 하지 않았으니까 00:05:37.043 --> 00:05:39.345 x의 값은 여전히 10이에요 00:05:39.345 --> 00:05:41.986 여기서는 x=y라고 했어요 00:05:41.986 --> 00:05:44.407 조금 헷갈리지만 생각해보면 00:05:44.407 --> 00:05:46.210 우리는 이 변수 중에 단 하나만 00:05:46.210 --> 00:05:48.453 안전한 장소에 있다는 사실을 알고 있어요 00:05:48.453 --> 00:05:50.378 그리고 다른 변수는 00:05:50.378 --> 00:05:53.747 마치 숫자처럼 다뤄지게 돼요 00:05:53.747 --> 00:05:55.299 이걸 머릿속으로 생각해보면 00:05:55.299 --> 00:05:57.791 y를 20이라는 값으로 바꿔 생각할 수 있어요 00:05:57.791 --> 00:06:01.765 그럼 이 수식의 정확한 의미는 x는 20이 되겠죠 00:06:01.772 --> 00:06:05.029 따라서 x의 값은 20이 되겠네요 00:06:05.029 --> 00:06:08.825 이 수식에서는 y는 안전한 장소에 있어요 00:06:08.825 --> 00:06:10.421 하지만 별로 헷갈리진 않아요 00:06:10.421 --> 00:06:12.698 오른쪽에 숫자가 있기 때문이죠 00:06:12.698 --> 00:06:17.424 하지만 궁금한 게 있어요 여기 아래 y값을 변화시키면 00:06:17.424 --> 00:06:20.780 그게 위에 있는 x의 값을 변화시킬까요? 00:06:20.780 --> 00:06:26.048 답은 절대 아니라는 거에요 00:06:26.048 --> 00:06:28.784 기억해야 할 것은 이 위 쪽에서는 00:06:28.784 --> 00:06:31.760 y는 단지 숫자로 취급된다는 거에요 00:06:31.760 --> 00:06:34.618 컴퓨터는 이게 변수라는 사실을 완전히 무시할 것이고 00:06:34.618 --> 00:06:36.270 바뀔 수 있는 값이란 걸 잊고요 00:06:36.270 --> 00:06:38.773 그리고 이렇게 그냥 얘기할 거에요 00:06:38.773 --> 00:06:42.376 "이 y? 이게 진짜 뜻하는 값은 20이지" 00:06:42.376 --> 00:06:44.741 그러므로 이 부분에서는 x에 숫자를 할당하는 것이지 00:06:44.741 --> 00:06:46.625 변수를 할당하는 게 아니에요 00:06:46.625 --> 00:06:50.249 y의 값인 20을 할당하는 거에요 00:06:50.249 --> 00:06:54.034 즉 이 말은 x의 값은 여전히 20이라는 거죠 00:06:54.034 --> 00:06:58.369 마지막 수식에서 y변수의 값을 바꿔도 말이에요 00:06:59.929 --> 00:07:01.670 와 이제 알겠죠? 00:07:01.670 --> 00:07:05.229 이제 여러분은 변수에 대해서 완벽한 전문가가 되었어요 00:07:05.229 --> 00:07:07.299 축하해요!