OpenCV 비전 실무20장 · 교육 콘텐츠 설계와 종합 실습11 / 21← 이전목차다음 →MetaContents

20장. 교육 콘텐츠 설계와 종합 실습

수업 자료 묶기와 공유

이사할 때 상자마다 "주방 - 그릇", "욕실 - 수건"처럼 적어 두면 새집에서 바로 찾습니다. 상자 맨 위에 "깨지기 쉬움, 이쪽이 위"라는 안내문을 붙이면 옮기는 사람도 실수하지 않습니다. 수강생에게 나눠 줄 자료도 칸을 나눠 담고, 맨 위에 안내 파일을 둡니다.

data, code, answers, README 의 네 칸을 나란히 놓은 비교 그림

그림의 네 상자가 수업 자료 묶음의 칸입니다. 여기서 이삿짐 상자가 폴더이고, 상자 위의 안내문이 README.md 입니다. 아래 띠의 requirements.txt 는 "이 짐을 풀려면 드라이버와 망치가 필요합니다"라는 쪽지와 같습니다. 비유와 다른 점도 있습니다. 이삿짐은 한 번 옮기면 끝이지만, 수업 자료는 수강생 서른 명이 저마다의 PC 에서 같은 결과를 얻어야 합니다. 그래서 버전과 씨앗을 함께 적습니다.

묶음의 짜임

자리넣을 것이 교안에서는
data/연습 그림, 그림을 만든 코드data/ 와 tools/make_data.py
code/단계별 시작 코드code/chNN/ (실습 코드를 원고에서 뽑은 것)
answers/정답 마스크, 정답표, 채점 코드solutions/ 의 프로젝트 풀이
README.md목표, 준비, 실행 순서, 라이선스와 출처과목의 README.md 와 "읽기 전에"
requirements.txt패키지 이름과 버전setup.md 의 버전 표

라이선스와 출처 표기

자료라이선스적을 것
OpenCVApache 2.0 (1장)회사 제품에도 쓸 수 있다. 라이브러리 이름과 라이선스를 적는다
ultralytics (YOLO)AGPL-3.0 (18장)고쳐서 서비스로 내놓으면 코드를 공개해야 한다. 수업 자료에 그렇게 적는다
직접 그린 가상 그림내가 정한다"OpenCV 로 그린 가상 그림"이라고 밝힌다
공개 데이터(AI Hub 등)데이터마다 다르다약관의 재배포 허용 여부를 보고, 출처와 이용 조건을 적는다

결과를 공유하는 법

나눌 곳무엇을형식
보고서결과 표와 전후 그림, 결론 문단csv, png, 문서
발표한 장 요약 그림과 숫자 하나png 한 장
수강생학습지(문제 그림과 빈칸), 자료 묶음png, zip
다른 강사자료 묶음과 채점 기준표zip, README

짧은 예시

지금 PC 에 깔린 패키지 버전을 읽어 requirements.txt 에 들어갈 줄을 만듭니다. 파일로 쓰는 것은 실습 5에서 합니다.

Python
from importlib.metadata import version   # metadata: 설치된 패키지의 이름·버전 정보

for pkg in ["opencv-python", "numpy", "matplotlib", "pandas"]:
    # == 은 "꼭 이 버전"이라는 뜻이다. >= 로 쓰면 "이 버전 이상"이다
    print(f"{pkg}=={version(pkg)}")

나눠 주기 전 확인 목록

주의할 점

  • 가상환경 폴더(.venv)는 묶음에 넣지 않습니다. 수강생 PC 에서 requirements.txt 로 새로 만듭니다(1장).
  • 버전을 적지 않으면 몇 달 뒤 새 판이 나와 함수 이름이 바뀌었을 때 실습이 깨집니다. 수업에서 확인한 버전을 적어 둡니다.
← 이전 절20장 · 평가와 채점 기준표(루브릭)다음 절 →20장 · 과정 전체를 잇는 종합 실습