본문으로 건너뛰기

M00.05 · 개발환경·수학·제어·ML 자기진단과 선행학습 분기

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • 개발환경·수학·제어·ML의 짧은 진단을 결과와 이유를 포함해 시도한다.
  • 독립 수행·힌트 의존·미해결을 분야별 근거로 기록하고 총점의 한계를 설명한다.
  • 필요한 보충 단위와 다른 입력의 재확인 과제를 골라 자신의 다음 학습 계획을 만든다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

일반 코딩 경험을 전제로 하며 언어 문법을 진단하거나 다시 가르치지 않는다. 로봇 개발환경·단위·제어·ML의 필요한 개념은 아래에서 보충한다. M00.01~04의 목표/관측 구분을 떠올리면 도움이 되며 진단을 못 풀어도 해설부터 학습할 수 있다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

진단은 입학시험보다 길 찾기에 가깝다

프로그램을 작성할 수 있어도 로봇용 실행 환경·단위 변환·제어 오차 부호·평가 자료 분리에서 막힐 수 있다. 반대로 행렬 계산에 익숙해도 모델이 기대하는 배열 축이나 실제 import 위치를 아직 확인해 보지 않았을 수 있다. 일반 코딩 경험은 이 교재의 출발점이며 변수·반복문 문법을 다시 시험하는 것이 목적은 아니다. 자신이 이미 할 수 있는 것과 필요한 도구·도메인 보충을 나누는 데 진단을 사용한다.

짧은 진단은 적은 문항에서 얻는 잠정 관찰이다. 한 문제의 정답이 한 분야의 숙달을 증명하지 않고, 낯선 도구 출력 때문에 틀렸다고 그 분야를 배울 수 없다는 뜻도 아니다. 결과·이유·도움의 종류를 남기고 입력을 바꿔 다시 확인한다. 숫자는 맞았지만 단위를 설명하지 못했다면 계산과 물리량 해석을 따로 기록하는 편이 다음 학습에 유용하다.

개발환경 진단은 실행과 자료의 계약을 본다

인터프리터는 Python 프로그램을 실행하는 실제 프로그램이고 패키지는 그 실행이 불러 쓰는 코드다. 합성 기록에서 실행은 /envA/bin/python인데 패키지 설치는 /envB/lib/python3.12/site-packages에 이루어졌다고 하자. 설치 성공 문구만으로 실행 A가 그 패키지를 사용한다고 볼 수 없다. 실행 경로·버전, 같은 인터프리터의 설치 도구와 실제 import 파일 위치를 연결해 확인한다. IDE나 notebook 실행기에서도 실제 선택을 확인해야 한다.

Python venv 공식 설명처럼 가상환경은 기존 Python을 기반으로 패키지 환경을 분리한다. 새 Python 버전을 자동 설치하거나 운영체제·장치까지 복제하는 수단은 아니다. 여기서는 환경을 실제 변경하지 않고 두 경로의 불일치와 추가 확인을 설명하면 된다. 패키지를 다시 설치하는 명령을 외운 것이 아니라 실패 지점을 좁힐 수 있는지 관찰한다.

배열의 shape는 축마다 원소가 몇 개인지 나타낸다. AI의 tensor도 다차원 수치 자료를 표현하지만 축의 물리적 의미까지 자동으로 정하지는 않는다. 두 시점의 x/y/z 위치를 저장한 (2,3)은 행=시간, 열=좌표라고 약속할 수 있다. 입력이 mm이고 소비자가 m를 요구하면 100 mm를 0.100 m로 바꾸는 변환도 필요하다. shape만 (2,3)으로 맞췄다고 단위가 바뀌지 않는다.

생산자가 좌표×시간인 (3,2)를 제공하면 같은 여섯 값이어도 소비자의 시간×좌표 계약과 다르다. 축을 실제 의미에 맞게 바꿔야 하며 원소 개수만 같게 재배치하면 된다고 추측하지 않는다. 데이터의 수치 표현인 dtype과 CPU/가속기 등 위치인 device, 채널 순서·단위도 후속 도구 단위에서 함께 확인한다. NumPy 배열 설명은 shape와 dtype을 구분한다. 이 진단은 NumPy 설치나 모델 실행 없이 축 이름과 필요한 단위 변환을 적는 활동이다.

수학·제어·ML은 서로 다른 실패를 드러낸다

수학 진단은 단위가 같은지와 계산의 의미를 본다. 지연 0.12 s를 ms로 쓰려면 1 s=1000 ms이므로 0.12×1000=120 ms다. 숫자 120만 쓰면 길이인지 시간인지 구분되지 않는다. 로봇 수학을 배우기 전에 복잡한 행렬부터 요구하지는 않지만 어떤 양을 계산하는지 설명하는 습관은 지금부터 필요하다. 단위를 반대로 변환하면 같은 물리량을 표현했다는 조건부터 깨진다.

제어 진단은 목표와 관측을 연결하는 방향을 본다. 가상 일차원 위치에서 목표 2, 관측 3이면 오차를 목표−관측으로 정의했을 때 -1이다. 양의 이동은 위치를 증가시키고 음의 이동은 감소시킨다고 가정한다. 따라서 목표 쪽은 감소 방향이다. 이는 힘이나 실제 모터 명령을 결정한 것이 아니다. 관측의 최신성·제한·모형 적용 조건은 별도로 확인해야 한다. 다른 오차 정의를 사용할 수는 있지만 이번 문제 도중 정의를 몰래 바꾸면 부호를 비교할 수 없다.

ML 진단은 평가가 어떤 새 조건을 확인하는지 본다. 한 번의 시연에서 연속 프레임 100장을 뽑으면 이웃 프레임은 장면·동작이 비슷할 수 있다. 이를 무작위로 나눠 학습과 평가에 함께 넣은 결과를 새 시연의 성능으로 해석하면 평가 목표와 분할이 어긋날 수 있다. 새 시연을 보려면 동일 시연이 양쪽에 섞이지 않도록 그룹을 생각한다. 새 사람·물체·시간·환경 중 무엇에 일반화할지에 따라 분할도 달라진다.

scikit-learn 그룹 교차검증 안내는 관련 표본을 묶어 나누는 도구와 조건을 설명한다. 그룹 분리 하나가 모든 환경 차이를 해결하거나 충분한 시연 수를 만들어 주지는 않는다. 어떤 자료로 전처리 통계를 정했는지 등 평가 정보 누수도 별도다. 이 진단은 실제 모델 성능을 측정하는 것이 아니라 평가 주장의 범위를 판정하는 활동이다.

답·도움·다음 확인을 나누어 기록한다

각 분야에 처음 답과 이유, 사용한 도움, 수정 뒤 설명의 세 칸을 만든다. 도움은 단위표 보기·풀이 한 단계 보기·전체 해설 읽기처럼 구체적으로 쓴다. 해설 뒤 이해한 것도 성과지만 처음부터 독립 수행했다고 바꾸지는 않는다. 권장 기록은 독립 수행, 도움 후 설명 가능, 다시 학습 필요다. 독립 수행도 그 문항의 범위라는 조건을 붙인다.

세 분야가 맞고 한 분야가 미해결이라면 총점 3/4로 공백을 덮지 말고 약한 분야와 다음 보충을 적는다. 같은 답을 외워 맞힌 상태와 이유를 설명한 상태도 구분한다. 이 표는 자격 인증이나 사람 전체를 평가하는 점수가 아니다. 낮은 기록 때문에 후속 단위를 강제로 잠그거나 모든 내용을 처음부터 다시 들을 필요도 없다. 해당 과제에 필요한 부분을 근거에 따라 보충한다.

선행학습은 진단 근거와 연결한다

실행/패키지 경로는 M01.01 실행 환경과 M01.02 Python 환경·배열·로그, native 빌드 문제는 같은 모듈의 ABI·CMake 단위를 보충한다. 단위·벡터 해석은 M02.01 수학 기초, 오차와 피드백은 M07.03 PID, 자료 분리는 M11.03 학습/검증/시험 분리·데이터 누수와 연결한다. 각 단위의 선수 안내를 읽고 필요한 범위를 고른다.

보충 뒤에는 같은 숫자 답을 재현하는 대신 경로·축/단위, 물리량 숫자, 목표/관측 위치, 평가 그룹을 바꿔 이유를 설명한다. 아직 어렵다면 도움을 더 받아도 된다. 중요한 것은 합계가 아니라 무엇을 어떤 근거로 할 수 있고 다음에는 무엇을 확인할지를 쓰는 것이다. 한 번의 변형 통과도 전체 분야나 실제 장비 프로젝트의 완성을 의미하지 않는다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

종이에 개발환경·수학·제어·ML 네 행을 만들고 해설을 접은 상태에서 먼저 시도한다. 모든 입력은 합성이며 설치·실행은 필요 없다.

  • 개발환경: 실행 /envA/bin/python, 패키지 설치 /envB/lib/python3.12/site-packages다. 불일치와 실제 import 확인을 적는다. 위치 배열은 시간×좌표 (2,3)·mm, 소비자도 시간×좌표 (2,3)이지만 m를 요구한다. 100 mm 변환과 shape 일치만으로 충분한지 설명한다.
  • 수학: 0.12 s를 ms로 바꾸고 곱한 수의 의미를 설명한다.
  • 제어: 목표 2·관측 3·양의 이동은 위치 증가라는 조건에서 목표−관측과 목표 쪽 이동 방향을 적는다.
  • ML: 시연 A/B/C 각각의 연속 프레임이 있다. 새 시연 성능을 볼 때 A의 프레임이 학습/평가 양쪽에 들어간 분할의 문제와 다른 분할 예를 적는다.

처음 답·사용한 도움·수정 이유를 나누고 세 기록 이름 중 하나를 분야마다 붙인다. 보충 후보 한 개와 학습할 내용·변형 과제를 정한다. 모두 독립 수행했다면 반례 하나를 만들어도 된다. 판정에는 네 시도와 이유, 정직한 도움 기록, 근거에 맞는 보충/재확인의 세 요소가 모두 필요하다. 막힌 분야를 숨기거나 총점만 쓰면 활동을 마친 것이 아니다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

네 분야를 이유와 함께 진단하라. 실행은 /envC/bin/python, 설치 대상은 환경 D다. 좌표×시간 (3,2)·mm 자료를 시간×좌표 (2,3)·m로 받을 때 확인할 환경/축/단위는? 0.08 s는 몇 ms인가? 목표 1·관측 3에서 목표−관측과 모형 이동 방향은? 새 사람의 시연 성능을 볼 때 같은 사람 자료만 무작위 프레임 분할한 결과의 한계는?

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

갑은 개발환경·단위를 혼자 풀고 제어는 해설 뒤 수정했으며 ML은 아직 설명하지 못했다. 을은 네 답을 외웠으나 이유를 설명하지 못했다. 총점만으로 준비를 비교할 수 있는가? 분야별 기록을 제안하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

단위 변환은 맞지만 프레임을 나눈 ML 평가의 문제를 설명하지 못했다. 보충 후보와 변형 재확인 과제, 한 번 통과했을 때 주장할 수 있는 범위를 적어라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.