수업 2: 코드 읽기
이전 수업에서는 상대적 운동에 대해 알아보고 그것이 절대적 운동과 어떻게 비교되는지 알아보았습니다. 수업을 진행하면서, 프로젝트를 실행할 때 6축 로봇팔이 어떻게 움직일지 예측해 보라는 과제를 받았습니다. 이는 코드를 읽는 예입니다.
이 수업에서는 프로젝트가 실행될 때 어떤 일이 일어날지 확인하기 위해 코드 읽기를 연습합니다.

코드 리딩이란 무엇인가요?
코드를 작성하는 것과 마찬가지로 코드를 읽는 것도 프로그래머에게 기본적인 기술입니다. 프로그래머는 코드의 문제를 해결하거나, 코드를 검토하거나, 기존 프로젝트에서 배우기 위해 다른 사람이 작성한 코드를 읽고 이해해야 하는 경우가 많습니다. 여러분은 프로젝트를 살펴볼 때마다 코드를 읽고, 엔지니어링 노트에 그 프로젝트가 어떤 역할을 할지 예측해 보았습니다. 이제 이 기술을 더 의도적으로 연습하게 될 것입니다. 이 수업의 프로젝트에서는 코드가 절대적 이동을 사용하는지, 상대적 이동을 사용하는지, 그리고 이것이 화이트보드 첨부 파일에 그려지는 내용에 어떤 영향을 미치는지 살펴보는 것이 중요합니다.
코드 읽기 구성하기
프로젝트에서 무슨 일이 일어날지 결정하는 데 도움이 되는 도구가 많이 있습니다. 엔지니어링 노트북을 사용하여 로봇의 동작을 시각화하는 것은 코드 읽기를 시작하는 데 유용한 도구가 될 수 있습니다.
이 수업에서는 엔지니어링 노트북에서 코드 읽기를 구성하는 한 가지 방법을 보여드리겠습니다. 여기에 표시된 레이아웃을 시작점으로 사용하여 프로젝트의 각 부분을 설명할 수 있습니다. 이 수업의 예제에서 엔지니어링 노트북 페이지 왼쪽에는 VEXcode 프로젝트 이미지가 있고, 오른쪽에는 텍스트를 추가하는 줄이 있습니다. 각 단계에서 초점이 맞춰진 블록은 빨간색 상자로 강조 표시되고, 텍스트에서는 해당 블록과 관련된 동작을 설명합니다.
프로젝트 A의 코드 읽기
코드 읽기 연습을 위해 프로젝트 A의 코드를 읽으면서 문서화 과정을 살펴보겠습니다.
이 프로젝트를 엔지니어링 노트북에 기록하세요. 이 작업은 단계를 순서대로 적어 두거나 코드 이미지를 노트북에 직접 추가하여 수행할 수 있습니다.
코드를 읽는 단계를 시작하기 전에, 프로젝트가 실행될 때 6축 암이 무엇을 할 것인지 예측해보세요. 이 코드 판독 과정을 완료한 후 이 예측으로 돌아오게 됩니다.

코드를 읽으려면 프로젝트 시작 부분부터 시작하세요. 첫 번째 블록을 살펴보고, 프로젝트 옆의 엔지니어링 노트북에 해당 블록과 관련된 동작을 적으세요.
여기서 첫 번째 블록은 다음과 같이 설명할 수 있습니다: 1. 엔드 이펙터를 펜으로 설정합니다.

코드를 읽으면서 각 블록을 자세히 살펴보고 6축 암이 절대 이동을 사용할지 상대 이동을 사용할지 확인해야 합니다.
이 프로젝트에서 첫 번째 이동 블록은 위치 로 이동 블록입니다. 6축 암은 블록 매개변수에 나열된 좌표로 이동하기 위해 절대 이동을 사용합니다.

엔지니어링 노트북에 블록과 관련된 동작을 기록하세요. 이 주석과 위치로 이동하는 블록은 다음과 같이 설명할 수 있습니다: 2. 절대 이동을 사용하여 좌표 (75, 125, 0)으로 이동합니다.

프로젝트의 다음 동작 블록을 살펴보세요. 이것은 절대적인 움직임인가, 상대적인 움직임인가?
이는증가 위치블록이므로 6축 암의 상대적 이동을 나타냅니다.

이 블록이 실행될 때 6축 암이 이동할 위치를 결정하려면 블록의 매개변수에 제공된 증가량을 사용합니다. 절대 이동 블록에서 일치하는 좌표(x)의 상대 이동(50mm) 값을 더하여 이를 수행합니다.
이것을 엔지니어링 노트에 기록하세요. 이는 다음과 같이 설명될 수 있습니다: 3. x좌표에 50을 더하여 상대적 이동을 수행합니다. 새로운 좌표는 (125, 125, 0)입니다.

프로젝트의 나머지 블록에 대해서도 이 과정을 계속합니다. 프로젝트가 실행될 때 각 블록이 어떤 역할을 할지 문서화합니다.
프로젝트를 읽을 때 참고를 위해 Comment 블록과 Notes를 꼭 읽어보세요.
나머지 세 면을 그리는 이 프로젝트의 나머지 단계는 다음과 같이 설명할 수 있습니다.
4. y 좌표에 50을 더하여 상대적으로 이동합니다. 새로운 좌표는 (125, 175, 0)입니다.
5. x좌표에서 50을 빼서 상대적인 이동을 합니다. 새로운 좌표는 (75, 175, 0)입니다.
6. y좌표에서 50을 빼서 상대적으로 이동합니다. 새로운 좌표는 (75, 125, 0)입니다.

프로젝트가 실행될 때 6축 암의 경로를 스케치합니다.
프로젝트의 최종 결과물을 시각화하려면 결정한 좌표를 사용하여 엔지니어링 노트북에 경로를 스케치하세요.

프로젝트가 실행되는 모습을 지켜보세요. 엔지니어링 노트에 다음 질문에 답하세요.
- 6축 팔의 관찰된 동작은 엔지니어링 노트북에 있는 동작 목록과 어떻게 비교됩니까?
- 수업 시작 시에 예측했던 행동 목록과 비교해 보면 어떻습니까?
- 수업 시작 부분에서 예측한 것과 이 영상에서 보여준 행동을 비교하면 어떻습니까?
- 아래 영상에서는 6축 암이 안전한 위치에서 움직여 펜을 위치 (75, 125, 0)에 놓습니다. 그런 다음 밑면에서 멀어져 정사각형의 첫 번째 면을 그린 다음, 오른쪽으로 이동하여 두 번째 면을 그린 다음, 밑면으로 이동하여 세 번째 면을 그린 다음, 왼쪽으로 이동하여 정사각형을 완성합니다.
축하해요! 이제 코드를 읽고 그 지식을 활용해 프로젝트가 실행될 때 어떤 일이 일어나는지 확인했습니다. 두 가지 추가 예를 통해 이를 계속 연습해 보겠습니다.
프로젝트 B의 코드 읽기
이 예제에서는 프로젝트의 실수를 찾기 위해 코드를 읽는 연습을 하게 됩니다. 이 프로젝트의 목적은 프로젝트 A와 마찬가지로 정사각형을 그리는 것입니다. 그러나 프로젝트 B를 실행하면 6축 암이 의도한 대로 정사각형을 그리지 않습니다. 이 예제의 코드를 읽으려면 프로젝트 A에서 사용한 것과 동일한 단계를 따라 오류를 찾아야 합니다. 그런 다음 코드 판독을 통해 얻은 정보를 사용하여 문제를 해결하는 방법을 파악합니다.
엔지니어링 노트북에 프로젝트를 기록하세요. 이 작업은 단계를 순서대로 적어 두거나 코드 이미지를 노트북에 직접 추가하여 수행할 수 있습니다.
프로젝트가 실행될 때 6축 암이 어떤 역할을 할지 예측해 보세요. 이 코드 판독 과정을 완료한 후 이 예측으로 돌아오게 됩니다.

프로젝트의 시작부터 시작하세요. 이전 프로젝트에서 했던 것처럼 프로젝트 설정 블록을 문서화합니다.
첫 번째 주석과 세트 엔드 이펙터 블록은 다음과 같이 설명될 수 있습니다.
1. 엔드 이펙터를 펜으로 설정하세요

프로젝트의 첫 번째 악장 블록을 읽고, 악장이 절대적인지 상대적인지 주의해서 살펴보세요. 이 블록을 사용하면 6축 팔이 어떤 동작을 완료하게 될까요? 이런 행동을 시각화해보세요.

이 블록에 대해 시각화한 동작을 엔지니어링 노트북에 기록하세요.
이러한 동작은 다음과 같이 설명될 수 있습니다.
2. 절대 이동을 사용하여 좌표 (75, 125, 0)으로 이동합니다.

이제 두 번째 악장 블록을 살펴보겠습니다. 이것은 절대적인 움직임인가, 상대적인 움직임인가? 이는증가 위치 블록이므로 6축 암의 상대적 이동을 나타냅니다.
이 블록이 6축 팔을 완성하는 데 어떤 동작을 할지 시각화해 보세요.

프로젝트 A에서 한 것처럼 블록의 매개변수를 읽어증가 위치 블록이 실행된 후 6축 암의 위치가 어디에 있을지 확인합니다. 이것을 엔지니어링 노트에 기록하세요.
이 주석과 증가 위치 블록은 다음과 같이 설명될 수 있습니다.
3. x좌표에 50을 더하여 상대적 이동을 수행합니다. 새로운 좌표는 (125, 125, 0)입니다.

프로젝트의 나머지 블록에 대해서도 이 과정을 계속합니다. 프로젝트가 실행될 때 각 블록이 어떤 역할을 할지 시각화한 다음 문서화합니다.
프로젝트의 나머지 단계는 다음과 같습니다.
4. y 좌표에 50을 더하여 상대적으로 이동합니다. 새로운 좌표는 (125, 175, 0)입니다.
5. x좌표에 50을 더하여 상대적 이동을 수행합니다. 새로운 좌표는 (175, 175, 0)입니다.
6. y좌표에서 50을 빼서 상대적으로 이동합니다. 새로운 좌표는 (175, 125, 0)입니다.

프로젝트가 실행될 때 6축 암의 경로를 스케치합니다.
프로젝트의 최종 제품을 시각화하고 문서화하려면 결정한 좌표를 사용하여 엔지니어링 노트북에 경로를 스케치하세요.

프로젝트가 실행되는 모습을 지켜보세요. 엔지니어링 노트에 다음 질문에 답하세요.
- 6축 팔의 관찰된 동작은 엔지니어링 노트북에 있는 동작 목록과 어떻게 비교됩니까?
- 수업 시작 시에 예측했던 행동 목록과 비교해 보면 어떻습니까?
- 수업 시작 부분에서 예측한 것과 이 영상에서 보여준 행동을 비교하면 어떻습니까?
- 아래 비디오 클립에서는 6축 암이 안전한 위치에서 이동하여 (72, 125, 0)을 조정합니다. 그런 다음 밑면에서 멀어져 첫 번째 면을 그리고, 오른쪽으로 이동하여 두 번째 면을 그리고, 밑면에서 멀어져 세 번째 면을 그리고, 왼쪽으로 이동하여 네 번째 면을 그립니다.
이제 스케치로 돌아가세요. 프로젝트에서 정사각형 그리기를 멈춘 시점을 식별합니다. 6축 암이 프로젝트의 처음 세 개의 이동 블록을 실행하면서 펜은 계속해서 사각형을 그리는 것처럼 보입니다.
하지만 네 번째 동작 블록에서는 6축 암이 예상과 반대 방향, 즉 음의 x축이 아닌 양의 x축을 따라 이동합니다. 프로젝트에서 이 단계를 찾아 엔지니어링 노트북에 표시하세요.

이제 오류가 발생한 단계에 해당하는 프로젝트의 블록을 식별합니다. 엔지니어링 노트에도 블록을 표시하세요.
이 예에서 강조 표시된 것은 "상대적 이동으로 측면 CD 그리기"라는 설명과 일치하는 5단계입니다.

축을 따라 움직이는 것에 대한 지식을 적용하여 이 오류에 대한 수정 방법을 제안합니다.
정사각형을 그리려면 6축 팔이 x축을 따라 음의 방향으로 움직여야 합니다. 즉, 이 증가 위치 블록의 x 매개변수는 50이 아닌 -50으로 설정되어야 합니다.

프로젝트를 올바르게 실행하는 데 필요한 변경 사항을 엔지니어링 노트북에 기록하세요.
이는 프로젝트 아래에 다음과 같이 설명된 메모로 기록될 수 있습니다.
5단계는 x좌표에서 에서 을 빼는 것으로 변경해야 합니다. 정사각형을 그리려면 새로운 좌표는 (75, 175, 0)이어야 합니다.
6단계는 상대적인 움직임이기 때문에 변경됩니다. 6단계 이후의 새로운 좌표는 (75, 125, 0)이 됩니다.

증가 위치 블록의 x 매개변수를 50에서 -50으로 변경하여 프로젝트가 실행되는 모습을 지켜보세요. 6축 암은 이제 안전한 위치에서 이동하여 (75, 125, 0_)을 조정한 다음 의도한 대로 정사각형을 그립니다.
이제 두 가지 프로젝트에 대한 코드 읽기를 마쳤습니다. 하나는 코드를 읽고 문서화하는 프로세스를 배우는 데 도움이 되는 것이고, 다른 하나는 프로젝트의 오류를 식별하기 위해 코드를 읽는 것입니다. 6축 암과 VEX코드를 사용할 때마다 코드 읽기, 프로젝트 시각화, 문서화 연습을 계속하게 됩니다. 언제든지 이 강의로 돌아와서 코드를 읽고 문서화하는 과정을 기억할 수 있습니다.
활동
이제 두 가지 다른 프로젝트를 사용하여 코드 읽기 연습을 했으므로, 다시 혼자서 연습해 보겠습니다.

활동: 위 프로젝트에서 배운 절차를 따라 코드를 읽어보세요.
- 위의 프로젝트를 엔지니어링 노트북에 기록하세요.
- 프로젝트가 실행될 때 6축 암이 무엇을 할 것인지 예측해 보세요. 엔지니어링 노트북에 예측 내용을 기록하세요.
- 프로젝트의 각 블록을 읽고 블록을 실행할 때 6축 암이 수행하는 동작을 시각화합니다. 이런 행동을 엔지니어링 노트에 기록하세요.
- 프로젝트가 실행될 때 6축 암이 이동할 경로를 스케치하세요.
- 끝나면 선생님께 확인하세요. 여러분은 수업 전체로 프로젝트가 진행되는 모습을 지켜보게 될 것입니다. 그런 다음 예측과 문서화에 대해 논의하게 됩니다.
이해도 확인
다음 수업을 시작하기 전에 엔지니어링 노트북에서 아래 문서의 질문에 답하여 이 수업의 개념을 이해했는지 확인하세요.
이해도 확인 질문 > (Google Doc / .docx / .pdf)
중간 단원 반성을 시작하려면다음 >선택하세요.