< Return to Video

Function Parameters (Video Version)

  • 0:00 - 0:06
    다시 Winston을 그리는 프로그램으로 돌아왔습니다
    하지만 이번에는 그림에 text 문자를 추가해 보았습니다
  • 0:06 - 0:13
    Winston을 text 라벨 아래에 위치할 건데요
    그 라벨은 인생의 각 단계를 표시하고 있어요
  • 0:13 - 0:15
    하지만 지금 Winston은 엉망으로 놓여있죠
  • 0:15 - 0:20
    왜냐하면 faceX와 faceY값을
    함수 내부에서 임의의 값으로 설정하고 있기 때문입니다
  • 0:20 - 0:27
    하지만 우리는 이런 것이 아닌
    정확히 바로 이 장소에 Winston이 그려지기를 원하죠
  • 0:27 - 0:34
    그리고 특히 저는 매번 함수가 불릴때마다
    그 특정 위치를 지정하는 것을 원해요
  • 0:34 - 0:37
    우리가 이전에 ellipse()와 rect()함수를 사용할 때 처럼요
  • 0:37 - 0:41
    그러므로 저는 여기, 그리고 여기
    다음은 여기, 그리고 여기에 Winston이 그려지기를 바랍니다
  • 0:41 - 0:47
    그리고 더 이상 함수를 부를때마다 Winston이
    무작위로 임의의 영역에 그려지지 않기를 원해요
  • 0:47 - 0:52
    그러기 위해서는 그 함수에 파라미터를 지정해 주어야 합니다
  • 0:52 - 0:58
    여기 맨 위에 함수 정의 부분에서도 그렇고요
  • 0:58 - 1:11
    그러므로 drawWinston함수에 faceX와 faceY를 전달해서
    이 값을 임의의 수를 생성하는 대신에 사용하기를 바랍니다
  • 1:11 - 1:15
    지금부터 여기 함수를 부르는(call) 부분에서
    어떻게 원하는 것을 함수로 전달할지 생각해보죠
  • 1:15 - 1:20
    일단 Winston에 대해 설명하는 글자들의 바로 아래의 위치가 필요합니다
  • 1:20 - 1:25
    아마 우리가 원하는 각 Winston 위치의 x, y값은
    글자를 쓰기 위해 사용한 text함수에 전달한 값과 매우 비슷할 것입니다
  • 1:25 - 1:38
    대충 y값에서 10 픽셀 정도 아래가 될겁니다
    그러므로 맨 처음 위치는 10, 30이고 그 다음 위치는 200, 230이고
  • 1:38 - 1:50
    10, 230... 200,230 이는 아마 text의 좌표와 같을 것이고
    각각의 글자들보다 조금 아래에 위치 하므로 각 y좌표값에 10을 더했어요
  • 1:50 - 1:52
    좋아요 하지만 Winston은 움직이지 않네요
  • 1:52 - 1:59
    왜냐하면 위쪽의 함수 선언부에 이러한 파라미터를 넘겨준다고
    이야기하지 않았기 때문에 여전히 임의의 수를 사용하고 있기 때문입니다
  • 1:59 - 2:04
    그러므로 우리는 함수에게 이렇게 이야기해주어야 해요
    "우리가 이러한 정보를 줄테니 이것을 대신 사용해봐"
  • 2:04 - 2:09
    그리고 괄호들 안에 파라미터들의 이름을 건네주어야만 해요
  • 2:09 - 2:15
    그것을 faceX와 faceY로 부르고 콤마(,)로 구분합니다
  • 2:15 - 2:25
    이름을 그렇게 부른 이유는, 이미 함수안에서 그 이름을
    사용하고 있기 때문에 다시 다른 이름으로 쓸 필요가 없기 때문이죠
  • 2:25 - 2:29
    하지만 여전히 아무일도 일어나지 않고 Winston은 온갖 곳에 가 있어요
  • 2:29 - 2:36
    아마 맨 위쪽에 함수부분을 보면 전달받은 faceX와 faceY를
    여전히 임의의 수로 다시 설정하고 있는 것을 볼 수 있을거에요
  • 2:36 - 2:40
    그러면 이 코드들을 모두 삭제해보도록 합시다
  • 2:40 - 2:50
    그러면 함수가 우리가 전달한 faceX와 faceY를 이용하여
    그림을 그리는 것을 볼 수있습니다
  • 2:50 - 2:59
    하지만 Winston이 우리가 원하는 정확한 위치에 있지는 않아요
    왜냐하면 문자는 화면에서 좌측 상단을 기준으로 위치가 정해지고
  • 2:59 - 3:07
    그림은 중심으로 기준으로 하기 때문입니다
    숫자들을 조금 손볼 필요가 있겠죠?
  • 3:07 - 3:13
    아마 x축 방향으로 조금 더 옮겨야 할 거에요
    조금 옮겨서 여기 'Toddler Winston'아래로 옮겨볼게요
  • 3:13 - 3:22
    이런 과정을 통해서 함수에 넘겨줄 값을 바꿀 수 있어요
    하지만 함수의 정의부분을 바꿀 필요가 전혀 없습니다
  • 3:22 - 3:29
    왜냐면 함수는 언제나 우리가 전달해주는 값만 받기 때문이죠
    마치 ellipse()나 rect() 처럼요
  • 3:29 - 3:34
    좋아요 적당한 위치로 옮겼습니다
    하지만 Winston의 얼굴이 너무 크다는 것을 알수있네요
  • 3:34 - 3:36
    서로 겹치고 크기가 맞지 않아요
  • 3:36 - 3:45
    우리는 함수에 그를 그리기 위한 코드를 넣어놨었고
    타원을 그리는 한 줄을 수정해서 모든 얼굴들의 크기를 바꿀 수 있습니다
  • 3:45 - 3:51
    그러면 190으로 값을 바꾸어서 Winston을 다이어트시켜줘 볼까요?
  • 3:51 - 4:02
    아주 보기 좋네요. 조금 더 조정을 해서 저 안에
    정말 넣을 수 있겠네요, 멋집니다
  • 4:02 - 4:09
    마지막으로 작성한 코드에 대해서 리뷰(review)해봅시다
    여기에 drawWinston() 함수를 정의하였고
  • 4:09 - 4:15
    이 함수는 faceX와 faceY라는 두개의 값을 받습니다
  • 4:15 - 4:20
    그리고 이 값들은 변수(variable)처럼
    함수 안의 어디에서든 사용할 수 있습니다
  • 4:20 - 4:25
    그러니까 이 변수들을 미리 위에서
    선언(declare)했던것처럼 사용할 수 있다는 말이지요
  • 4:25 - 4:30
    그리고 이 함수를 선언한 후 언제든지 부를 수 있습니다
  • 4:30 - 4:35
    그리고 다른 값들을 전달할수도 있고요
    그러면 그 새로운 값들을 사용할 겁니다
  • 4:35 - 4:41
    지금까지 함수의 정말로 멋진점을 살펴보았습니다
    우리는 정말로 재사용이 가능하다고 생각할 수 있는 코드를 제안할 수있으며
  • 4:41 - 4:47
    또한 파라미터를 사용하는 것으로 이 코드에서 약간씩 바꾸어야 하는 부분은
    이것을 사용해서 개인에 맞도록 수정(customize)하라고 할 수도 있어요
  • 4:47 - 4:53
    이것은 마치 레시피(recipe)와 같습니다. 일반적인 명령어들을 작성해 놓았고
    갑자기 Winston을 하나가 아닌 넷을 먹여야 하게 되었다면
  • 4:53 - 4:59
    처음부터 다시 할 필요가 없이 원래의 명령어를
    조금 수정하여 모든 것에 4를 곱해주면 되는 것이지요
  • 4:59 - 5:04
    그러면 지금부터는 여러분의 코드의 레시피에 대해서 생각해보도록 해봅시다!
Title:
Function Parameters (Video Version)
Description:

more » « less
Video Language:
English
Duration:
05:05

Korean subtitles

Revisions