< Return to Video

Function Parameters | Computer Programming | Khan Academy

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

more » « less
Video Language:
English
Team:
Khan Academy
Duration:
05:05

Korean subtitles

Revisions