According to a document from 2026-06-16, 네 기존 2년 커리큘럼의 핵심은 기초 1~6개월: 리눅스·Git·Python·C·자료구조·컴퓨터구조·운영체제·이산수학, 기본 7~12개월: 디지털논리·임베디드·STM32·M5Stack·ESP-IDF·LVGL·CMake·OpenCV, 심화 13~18개월: 수학·ML/DL·NLP/RAG·Upstage 문서 AI·LangGraph·네트워크·Docker·보안, 실전 19~24개월: EdgeCanvas MVP 구현으로 정리되어 있다. 또한 EdgeCanvas의 핵심은 문서 이해 → 하드웨어 제약 추출 → LVGL 코드 생성 → 빌드 → 플래시 → 카메라 검증 → 실패 시 자가수정이고, 기술스택에는 Python, C/C++, CMake, Bash, LangGraph, LangChain, Pydantic, LVGL, arm-none-eabi-gcc, ESP-IDF, ST-Link, OpenOCD, OpenCV, Pillow, v4l2, pytest, Docker 등이 포함된다.
그래서 공식문서 커리큘럼은 교재 커리큘럼과 똑같이 짜면 안 된다. 공식문서는 “처음부터 끝까지 읽는 책”이 아니라, 개념을 구현 기준으로 검증하는 기준서로 써야 한다.
아래는 2년 동안 공식문서만 기준으로 따라갈 수 있게 만든 커리큘럼이다.
공식문서는 세 종류로 나눠서 봐야 한다.
종류 예시 읽는 목적
언어·도구 공식문서 Python, Git, Bash, GCC, CMake, Docker, pytest 실제 개발환경과 자동화의 기준
하드웨어·임베디드 공식문서 STM32H747I-DISCO, STM32CubeH7, ESP-IDF, M5Stack CoreS3, LVGL 실물 보드에서 동작하는 코드의 기준
AI·비전·에이전트 공식문서 OpenCV, Upstage, LangGraph, Pydantic, PyTorch, scikit-learn, DeepStream, YOLO, ONNX Runtime EdgeCanvas/AegisEdge의 지능형 파이프라인 기준
그리고 수학, 자료구조, 운영체제 이론처럼 “벤더 공식문서”가 없는 영역은 MIT OpenCourseWare 같은 대학 공식 공개자료를 공식문서에 준하는 자료로 둔다. MIT 6.006은 알고리즘과 자료구조, MIT 18.06은 선형대수, MIT 18.05는 확률통계, MIT 6.1810은 운영체제 설계와 시스템 프로그래밍을 다룬다.
목표
이 단계에서는 EdgeCanvas를 바로 만들지 않는다. 목표는 공식문서를 읽고 개발환경, 언어, 빌드, 시스템 기초를 직접 확인하는 능력이다.
기존 커리큘럼에서도 기초 단계의 목표는 리눅스 터미널, Git, Python CLI, C 메모리, 자료구조, 컴퓨터구조·운영체제 기본, 상태머신 구현으로 잡혀 있다.
1개월차: 리눅스 / 터미널 / Git
봐야 할 공식문서
Linux man-pages는 Linux 커널과 C 라이브러리 인터페이스를 사용자 공간 프로그램 관점에서 문서화한다. 따라서 /dev/video0, /dev/ttyUSB0, chmod, open, read, write, fork, exec 같은 시스템 감각을 익히는 데 가장 직접적이다. Git은 Pro Git 공식 온라인 문서에서 Getting Started, Git Basics, Git Branching 등을 체계적으로 제공한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas는 단순 Python 앱이 아니라 Docker, 빌드, 플래시, 카메라 장치, 시리얼 포트, 환경변수, GitHub 배포를 다룬다. 기존 정리에서도 리눅스는 빌드, Docker, 플래시, 서버, 엣지 환경 때문에 EdgeCanvas와 AegisEdge 모두 필수로 분류되어 있다.
실습 산출물
official-docs-lab/
linux/
file_permission.md
device_files.md
bash_exit_code.md
git/
branch_merge_rebase.md
scripts/
setup_env.sh
check_devices.sh
통과 기준
chmod, chown, ln -s, grep, find를 설명하고 쓸 수 있다.
PATH, .env, shell variable, environment variable 차이를 설명할 수 있다.
Git branch, merge, rebase, tag를 설명할 수 있다.
/dev/video0, /dev/ttyUSB0 같은 장치 파일이 왜 중요한지 설명할 수 있다.
2개월차: Python 공식문서 기반 자동화
봐야 할 공식문서
Python 공식 튜토리얼은 Python 언어와 시스템의 기본 개념을 소개하는 공식 입문 문서이고, 공식 Python 문서는 버전별 문서·튜토리얼·가이드를 제공한다. pytest 공식문서는 빠르게 테스트를 작성하고 실패 이유를 assertion 출력으로 확인하는 흐름을 제공한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 API 호출, JSON 스키마 처리, 빌드 명령 실행, 로그 수집, Vision-in-the-Loop 실행, LangGraph 노드 구현은 Python 중심이다. 기존 커리큘럼에서도 2개월차는 Python CLI, JSON, subprocess, logging, pytest를 목표로 잡았다.
실습 산출물
edgecanvas-cli/
edgecanvas_cli/
main.py
config.py
run_command.py
logger.py
tests/
test_run_command.py
examples/
ui_request.json
통과 기준
JSON 파일을 읽고 검증한다.
subprocess.run()으로 gcc --version, cmake --version, python --version을 실행한다.
실행 결과를 JSON 로그로 저장한다.
pytest로 성공/실패 테스트를 10개 이상 만든다.
3개월차: C / GCC / Make 공식문서
봐야 할 공식문서
GCC 공식문서는 GCC가 C, C++, Objective-C, Fortran 등 여러 언어를 위한 컴파일러 컬렉션이라는 점과 옵션·경고·진단 체계를 제공한다. GCC Warning Options 문서는 각 경고가 어떤 옵션으로 제어되는지 설명한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas가 생성할 최종 코드는 Python이 아니라 MCU에서 동작하는 LVGL C 코드와 펌웨어다. 기존 정리에서도 C는 LVGL/MCU 펌웨어의 기반으로 EdgeCanvas 필수도 5로 분류되어 있다.
실습 산출물
c-official-lab/
pointer.c
struct_widget.c
bit_flags.c
Makefile
docs/
gcc_warnings.md
compile_vs_link.md
통과 기준
-Wall, -Wextra, -Werror를 설명할 수 있다.
컴파일 오류와 링크 오류를 구분한다.
구조체로 LVGL 위젯 비슷한 데이터를 표현한다.
비트 연산으로 레지스터 플래그를 흉내 낸다.
4개월차: 자료구조 / 알고리즘 공식 공개자료
봐야 할 공식 공개자료
MIT 6.006은 계산 문제의 수학적 모델링, 자료구조, 알고리즘 패러다임, 성능 측정과 분석 기법을 다루는 공식 공개강의다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 UI는 위젯 트리이고, LangGraph는 상태 그래프이며, 빌드·검증 루프는 상태 전이와 큐로 표현된다. 기존 정리에서도 자료구조는 상태머신, 트리, 그래프, 파서 때문에 EdgeCanvas와 AegisEdge 모두 필수로 분류되어 있다.
실습 산출물
ds-algo-lab/
widget_tree.py
graph_workflow.py
bfs_dfs.py
build_retry_queue.py
통과 기준
UI 위젯 트리를 JSON으로 표현한다.
parse → generate → build → verify → fix 상태 그래프를 만든다.
BFS/DFS를 설명하고 구현한다.
retry queue를 만든다.
5개월차: 컴퓨터구조 / ARM Cortex-M / CMSIS / STM32 Reference Manual
봐야 할 공식문서
Arm 공식 문서 포털은 Arm IP와 소프트웨어에 대한 기술 문서를 제공한다. CMSIS는 Arm Cortex-M 기반 프로세서에 대한 벤더 독립적 하드웨어 추상화 계층으로 시작했고, CMSIS-Core는 Cortex-M 디바이스의 기본 런타임과 프로세서 코어·주변장치 접근을 제공한다. ST의 STM32H747/757 문서 페이지는 datasheet, errata, RM0399 reference manual 등을 제공한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas는 데이터시트와 레퍼런스 매뉴얼에서 RAM, Flash, 핀맵, 클럭, 디스플레이 인터페이스를 추출해야 한다. 기존 정리에서도 컴퓨터구조는 MCU, 메모리, 레지스터, 인터럽트 때문에 EdgeCanvas 필수도 5로 분류되어 있다.
실습 산출물
architecture-docs/
arm_cortex_m_summary.md
cmsis_core_summary.md
stm32h747_memory_map.md
stm32h747_peripheral_map.json
통과 기준
Flash, SRAM, peripheral register, memory-mapped I/O를 구분한다.
NVIC, SysTick, vector table을 설명한다.
STM32H747의 메모리 맵 일부를 JSON으로 옮긴다.
RM0399에서 GPIO, RCC, LTDC 관련 절을 찾을 수 있다.
6개월차: 운영체제 / 시스템 프로그래밍 / 이산수학
봐야 할 공식 공개자료
MIT 6.1810은 운영체제 설계와 구현, 가상메모리, 파일시스템, 스레드, 컨텍스트 스위치, 커널, 인터럽트, 시스템 콜, IPC를 다룬다. MIT 6.033은 소프트웨어·하드웨어 시스템 공학, 복잡성 제어, OS, 네트워크, 보안, fault tolerance, atomicity 등을 다룬다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas는 Python에서 외부 빌드 명령을 실행하고, 카메라 장치와 시리얼 포트를 열고, Docker에서 재현 가능한 환경을 만들어야 한다. 운영체제 개념이 없으면 “왜 권한 오류가 나는지”, “왜 장치 파일이 안 보이는지”, “왜 subprocess가 실패했는지”를 이해하기 어렵다.
실습 산출물
os-system-lab/
process_subprocess.md
device_file_camera.md
file_descriptor_demo.py
state_machine_theory.md
통과 기준
process, thread, file descriptor, system call을 설명한다.
/dev/video0 권한 문제를 해결하는 절차를 문서화한다.
상태와 전이를 이용해 EdgeCanvas workflow를 설명한다.
목표
이 단계는 실물 보드에 HMI를 띄우고, 카메라로 검증하는 능력을 만든다. 기존 2년 커리큘럼에서도 기본 단계 목표는 디지털논리, 임베디드, STM32, M5Stack, ESP-IDF, LVGL, CMake, OpenCV를 통해 실물 보드에 HMI를 띄우고 카메라로 검증하는 능력으로 정리되어 있다.
7개월차: 디지털논리 / GPIO / 통신버스 / 보드 회로도
봐야 할 공식문서
STM32H747I-DISCO User Manual은 이 보드를 Arm Cortex-M7/M4 dual-core 기반 STM32H747XIH6 개발 플랫폼으로 설명한다. M5Stack CoreS3 공식 문서는 CoreS3 장치와 플래시/개발 절차를 설명한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas가 보드 프로필을 자동화하려면 단순히 “STM32 보드”라고 알면 안 된다. LCD가 어떤 인터페이스인지, framebuffer가 어디에 있어야 하는지, touch가 I2C인지 SPI인지, 플래시는 어떤 도구로 하는지 알아야 한다.
실습 산출물
board-profiles/
stm32h747i_disco.hardware.md
m5stack_cores3.hardware.md
interfaces/
gpio.md
i2c.md
spi.md
uart.md
통과 기준
STM32H747I-DISCO의 LCD, touch, SDRAM 연결을 설명한다.
M5Stack CoreS3의 LCD, touch, camera, flash, PSRAM 정보를 정리한다.
보드 프로필 JSON 초안을 만든다.
8개월차: STM32CubeH7 / HAL / LL / BSP / STM32CubeProgrammer
봐야 할 공식문서
STM32CubeH7는 STM32H7 MCU 애플리케이션 개발에 필요한 임베디드 소프트웨어 구성요소를 하나의 패키지로 제공하고, STM32CubeH7 GitHub에는 CMSIS, HAL/LL 드라이버, BSP, 미들웨어와 예제가 포함된다. STM32CubeProgrammer는 GUI와 CLI 버전으로 제공되며, 프로그래밍 자동화와 스크립팅을 지원한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas가 생성한 C 코드는 단독으로 보드에서 돌지 않는다. BSP, clock, SDRAM, LCD init, linker script, startup code가 맞아야 한다. 기존 정리에서도 단순 C 코드가 아니라 보드 초기화, 클럭, SDRAM, LCD controller, touch, linker script, flash layout까지 맞아야 한다고 정리했다.
실습 산출물
stm32-official-lab/
cubeh7_examples.md
hal_ll_bsp_summary.md
stm32_flash_cli.md
generated_board_profile_stm32h747i_disco.json
통과 기준
HAL, LL, BSP 차이를 설명한다.
STM32CubeProgrammer CLI 명령 구조를 설명한다.
STM32H747I-DISCO LCD 예제가 어디 있는지 찾는다.
플래시 자동화 dry-run 절차를 문서화한다.
9개월차: ESP-IDF / M5Stack CoreS3 / esp_lvgl_port
봐야 할 공식문서
ESP-IDF Get Started 문서는 ESP-IDF 앱을 개발, 빌드, 플래시, 모니터링하는 흐름을 안내한다. ESP-IDF는 idf.py -p PORT flash monitor처럼 빌드·플래시·모니터링을 하나의 흐름으로 수행할 수 있다. Espressif의 esp_lvgl_port는 LVGL을 Espressif LCD와 touch driver와 함께 쓰도록 돕는 컴포넌트다.
읽는 순서
EdgeCanvas 연결
STM32와 ESP32-S3는 완전히 다른 빌드·플래시·초기화 흐름을 가진다. EdgeCanvas는 이를 board_profile로 추상화해야 한다. 기존 정리에서도 STM32와 ESP32-S3를 동시에 지원하려면 보드별 빌드·플래시·LVGL 초기화 템플릿을 따로 가져가야 한다고 정리되어 있다.
실습 산출물
esp32-official-lab/
espidf_build_flash.md
m5stack_cores3_profile.json
esp_lvgl_port_summary.md
scripts/
flash_m5stack.sh
통과 기준
idf.py build, idf.py flash, idf.py monitor를 설명한다.
ESP-IDF component dependency 구조를 설명한다.
M5Stack CoreS3용 보드 프로필 JSON을 만든다.
ESP-IDF와 STM32CubeH7 빌드 흐름 차이를 표로 정리한다.
10개월차: LVGL 공식문서 집중
봐야 할 공식문서
LVGL 공식문서는 디스플레이, 입력 장치, 폰트, drawing, widget, style, event, scrolling 등 LVGL의 핵심 모듈을 다룬다. LVGL의 기본 흐름은 driver 초기화, lv_init(), display/input device 생성, UI 생성, lv_timer_handler() 반복 호출로 설명된다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 산출물은 LVGL 초기화 루틴, 위젯 트리, 이벤트 핸들러 C 코드, UI 에셋 C 배열이다. 기존 정리에서도 LVGL은 최신 한국어 단행본보다 공식문서가 1순위이고, 목표는 JSON으로 표현한 UI를 LVGL C 코드로 바꾸는 내부 규칙을 만드는 것이라고 정리되어 있다.
실습 산출물
lvgl-official-lab/
docs/
lvgl_object_model.md
lvgl_event_model.md
lvgl_image_pipeline.md
schema/
ui_schema.json
generator/
json_to_lvgl_c.py
generated/
screen_main.c
통과 기준
label, button, image를 C 코드로 생성한다.
style과 event handler를 분리한다.
JSON 위젯 트리를 LVGL C 코드로 변환한다.
이미지 리소스를 LVGL에서 사용할 수 있는 형태로 변환하는 흐름을 설명한다.
11개월차: CMake / Arm GNU Toolchain / OpenOCD / ST-LINK / esptool
봐야 할 공식문서
CMake는 소스 코드 빌드를 관리하는 도구이고, CMake Tutorial은 CMake가 해결하는 공통 빌드 시스템 문제를 단계별 예제로 설명한다. Arm GNU Toolchain은 Arm 아키텍처용 C, C++, Assembly 프로그래밍을 위한 오픈소스 도구 모음이다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 자가수정 루프는 빌드 실패를 읽고 수정해야 한다. 따라서 컴파일 에러, 링크 에러, 플래시 에러를 구조화해야 한다. 기존 실전 계획에서도 21개월차 목표는 generated C project → build → binary → flash → serial log로 잡혀 있다.
실습 산출물
build-flash-official-lab/
cmake_minimal/
toolchain_arm_none_eabi.cmake
parse_gcc_log.py
parse_cmake_log.py
flash_stm32.md
flash_esp32.md
통과 기준
CMake configure, build, install 개념을 설명한다.
cross compile과 native compile 차이를 설명한다.
GCC error/warning을 JSON으로 파싱한다.
STM32와 ESP32 플래시 명령을 추상화한다.
12개월차: OpenCV / Pillow / V4L2 공식문서
봐야 할 공식문서
OpenCV Python Tutorials는 이미지 처리, feature detection, video analysis, camera calibration, object detection 등을 다룬다. OpenCV VideoCapture 공식 튜토리얼은 카메라에서 프레임을 캡처하고 cap.read()로 프레임을 읽는 흐름을 설명한다. Contours 문서는 threshold 후 contour를 찾아 shape analysis와 object detection에 활용하는 방식을 설명한다. Template Matching은 template image 위치를 큰 이미지에서 찾는 방법이다. Pillow는 Python 이미지 처리 기능을 제공하는 라이브러리로, 파일 포맷 지원과 이미지 처리 기능을 제공한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 Vision-in-the-Loop는 고급 자율주행 비전이 아니라 LCD 화면이 요구사항대로 떴는지 검증하는 테스트 자동화다. 기존 정리에서도 OpenCV는 Vision-in-the-Loop 검증과 AegisEdge 영상분석 양쪽에 핵심으로 분류되어 있다.
실습 산출물
vision-official-lab/
capture_camera.py
detect_screen_region.py
compare_template.py
compare_color.py
vision_report.json
통과 기준
USB 카메라에서 프레임을 읽는다.
LCD 영역을 crop한다.
기준 이미지와 template matching을 수행한다.
화면 검은색/흰색 죽음 상태를 감지한다.
PASS/FAIL 리포트를 만든다.
목표
이 단계에서는 문서 이해와 자가수정 Agent 설계 능력을 만든다. 기존 커리큘럼에서도 심화 단계는 선형대수, 확률통계, ML/DL, NLP, RAG, Upstage 문서 AI, LangGraph, 네트워크, Docker, 보안을 다루는 단계로 되어 있다.
13개월차: 선형대수 / 확률통계 / 평가 공식 공개자료
봐야 할 공식 공개자료
MIT 18.06은 행렬 이론과 선형대수를 다루며, 시스템 방정식, 벡터공간, determinant, eigenvalue 등을 포함한다. MIT 18.05는 조합론, 확률변수, 확률분포, Bayesian inference, hypothesis testing, confidence interval, linear regression 등을 다룬다. scikit-learn은 모델 fitting, preprocessing, model selection, evaluation 등을 제공하는 머신러닝 라이브러리다.
읽는 순서
EdgeCanvas 연결
Vision-in-the-Loop의 판정 일치율, 색상/위치 오차, threshold, 평가 지표, AegisEdge 객체탐지 평가에 필요하다. 기존 커리큘럼도 이 연결을 명시하고 있다.
실습 산출물
math-evaluation-lab/
pixel_error_metric.py
confusion_matrix_for_vision.py
pass_fail_statistics.ipynb
통과 기준
PASS/FAIL 100개 결과로 accuracy, precision, recall을 계산한다.
UI 요소 위치 오차를 픽셀 단위로 계산한다.
threshold를 바꾸면 FP/FN이 어떻게 변하는지 설명한다.
14개월차: 머신러닝 / 딥러닝 공식문서
봐야 할 공식문서
scikit-learn 공식문서는 supervised/unsupervised learning, model selection, model evaluation 등을 체계적으로 제공한다. PyTorch 60 Minute Blitz는 tensor, autograd, neural network, image classifier 학습을 목표로 하는 공식 튜토리얼이다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas는 모델을 직접 학습하지 않아도 되지만, Vision 판정과 AegisEdge 객체탐지를 평가하려면 ML/DL의 기본을 알아야 한다. AegisEdge가 YOLO/ONNX/DeepStream으로 확장되면 필수다.
실습 산출물
ml-official-lab/
sklearn_classifier.py
pytorch_image_classifier.py
evaluation.md
통과 기준
train/validation/test를 구분한다.
overfitting을 설명한다.
작은 이미지 분류 모델을 학습한다.
평가 지표를 정리한다.
15개월차: Transformer / NLP / RAG 공식문서
봐야 할 공식문서
Hugging Face LLM Course는 LLM과 NLP를 Transformers, Datasets, Tokenizers, Accelerate, Hub 생태계와 함께 학습하도록 구성되어 있다. Transformers 문서는 transformer model의 기본부터 다양한 task 응용까지 안내한다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 데이터시트 해석은 문서 이해 문제다. 기존 실전 계획도 데이터시트 PDF/Markdown → Document Parse → Information Extract → MCU hardware schema → validation report를 첫 MVP로 둔다.
실습 산출물
rag-official-lab/
split_datasheet_markdown.py
simple_retrieval.py
structured_extraction_schema.py
extraction_failure_cases.md
통과 기준
문서를 chunk로 나눈다.
retrieval 결과를 근거와 함께 출력한다.
JSON structured output을 검증한다.
hallucination과 extraction error를 구분한다.
16개월차: Upstage Document AI / Solar / VARCO 공식문서
봐야 할 공식문서
Upstage Document Parse API는 복잡한 문서를 구조화된 HTML 또는 Markdown으로 파싱한다고 설명되어 있다. Upstage Information Extract는 scanned images, PDFs, Office files, rotated pages, 500+ page documents 등 다양한 문서에서 데이터 추출을 지원한다고 설명한다. Universal Information Extraction API는 템플릿이나 재학습 없이 구조화 데이터를 추출하는 API로 설명된다. NC AI 공식 페이지는 VARCO를 콘텐츠 워크플로우를 통합하는 차세대 AI 엔진으로 소개한다.
읽는 순서
EdgeCanvas 연결
구현제안서상 EdgeCanvas는 Document Parse와 Information Extract로 레지스터 맵, 핀맵, 클럭 트리, 타이밍 제약을 JSON 스키마로 추출한다. 기존 정리에서도 MCU 데이터시트 전체를 읽는 것이 아니라 필요한 정보만 안정적으로 뽑아야 한다고 정리되어 있다.
실습 산출물
upstage-official-lab/
parse_datasheet.py
extract_mcu_schema.py
schemas/
mcu_schema.json
board_profile_schema.json
reports/
extraction_quality_report.md
통과 기준
데이터시트 1개를 Markdown/HTML로 변환한다.
MCU 관련 필드 10개 이상을 JSON으로 추출한다.
Pydantic validation을 통과한다.
사람이 검토한 정답과 차이를 기록한다.
17개월차: LangGraph / LangChain / Pydantic 공식문서
봐야 할 공식문서
LangGraph Graph API 문서는 nodes와 edges를 조합해 상태가 시간에 따라 진화하는 복잡하고 반복적인 workflow를 만들 수 있다고 설명한다. LangChain tools 문서는 tool을 모델이 호출할 수 있는 유틸리티로 설명하고, tool 입력은 모델이 생성하고 출력은 다시 모델에 전달되는 구조라고 설명한다. Pydantic은 Python에서 가장 널리 사용되는 데이터 검증 라이브러리라고 공식문서가 설명하며, model validation은 지정된 type과 constraint에 맞는 model instance를 만드는 과정으로 설명된다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas의 핵심은 LangGraph 상태머신 기반 self-healing agent다. 기존 정리에서도 LangGraph는 입력 수신부터 실기 검증까지 전 구간을 상태머신으로 제어하고, 실패 시 코드 생성 단계로 재진입하는 자가수정 루프를 실행하는 구조로 정리되어 있다.
실습 산출물
langgraph-official-lab/
state.py
graph.py
nodes/
parse_datasheet.py
extract_schema.py
generate_lvgl.py
build.py
verify.py
fix.py
schemas/
workflow_state.py
통과 기준
parse → extract → generate → build → verify → fix 루프를 mock으로 구현한다.
조건부 edge로 PASS/FAIL 분기를 만든다.
Pydantic으로 state schema를 검증한다.
실패 시 최대 retry 횟수를 제한한다.
18개월차: Docker / GitHub Actions / 보안 공식문서
봐야 할 공식문서
Docker 공식문서는 Docker를 시작하는 데 필요한 자료를 제공하고, Dockerfile은 컨테이너 이미지를 만들기 위한 text-based document라고 설명한다. Docker Compose는 여러 컨테이너 애플리케이션을 정의하고 실행하는 도구로 설명된다. GitHub Actions 공식문서는 CI/CD를 포함한 workflow를 저장소에서 자동화할 수 있다고 설명한다. OWASP Top 10은 웹 애플리케이션 보안을 위한 표준 awareness document로 설명된다.
읽는 순서
EdgeCanvas 연결
EdgeCanvas는 외부 PDF 입력, 코드 생성, 파일 쓰기, 빌드 실행, API 키 사용을 모두 수행한다. 즉 보안은 나중 문제가 아니라 architecture 단계에서 들어가야 한다. 기존 정리에서도 보안은 API 키, 코드 생성, 외부 문서 입력 때문에 EdgeCanvas 필수도 4로 분류되어 있다.
실습 산출물
deployment-security-official-lab/
Dockerfile
docker-compose.yml
.github/workflows/test.yml
.env.example
security_checklist.md
safe_subprocess.py
통과 기준
Docker로 동일한 CLI가 재현 실행된다.
GitHub Actions에서 pytest가 돈다.
API key를 코드에 하드코딩하지 않는다.
외부 명령 실행은 allowlist로 제한한다.
보안 체크리스트를 만든다.
목표
이 단계에서는 공식문서를 “읽는 것”이 아니라 필요한 공식문서로 돌아가며 EdgeCanvas MVP를 완성한다. 기존 실전 단계 목표도 EdgeCanvas MVP, AegisEdge 확장 프로토타입, 기술문서, 포트폴리오로 잡혀 있다.
19개월차: 데이터시트 → JSON
기준 공식문서
Upstage Document Parse
Upstage Information Extract
Universal Information Extraction
Pydantic Models / Validators
STM32H747/757 datasheet
RM0399 Reference Manual
M5Stack CoreS3 docs
ESP32-S3 technical reference
구현 목표
PDF / Markdown / HTML
→ Document Parse
→ Information Extract
→ Pydantic validation
→ MCU hardware schema
반드시 확인할 공식문서 포인트
Upstage API request/response
output format
schema extraction
validation error
STM32 memory / pin / clock / peripheral
M5Stack flash / PSRAM / display / camera
ESP-IDF target information
산출물
edgecanvas/
parsers/
schemas/
board_profiles/
stm32h747i_disco.json
m5stack_cores3.json
reports/
extraction_report.md
20개월차: JSON → LVGL C 코드
기준 공식문서
LVGL Learn the Basics
LVGL Widgets
LVGL Styles
LVGL Events
LVGL Images
LVGL Display/Input device
CMake
GCC
구현 목표
UI requirement
→ UI schema
→ LVGL widget tree
→ C source generation
반드시 확인할 공식문서 포인트
lv_init()
display creation
input device
label/button/image API
style API
event callback
image data
lv_timer_handler()
산출물
edgecanvas/
ui_schema/
generators/
lvgl_c_generator.py
templates/
generated/
dashboard.c
21개월차: 빌드 / 플래시 자동화
기준 공식문서
CMake Tutorial
Arm GNU Toolchain
GCC docs
STM32CubeH7
STM32CubeProgrammer CLI
ESP-IDF Build / Flash / Monitor
esptool
OpenOCD
구현 목표
generated C project
→ build
→ parse error
→ flash
→ serial log
반드시 확인할 공식문서 포인트
CMake configure/build
cross compile toolchain file
include path
link error
map file
STM32 flash CLI
ESP-IDF flash monitor
산출물
edgecanvas/
builders/
cmake_builder.py
espidf_builder.py
flashers/
stm32_cubeprogrammer.py
espidf_flasher.py
logs/
22개월차: Vision-in-the-Loop
기준 공식문서
OpenCV VideoCapture
OpenCV threshold
OpenCV contours
OpenCV template matching
Pillow Image
V4L2 docs
구현 목표
camera
→ LCD region crop
→ expected UI comparison
→ PASS/FAIL
→ report
반드시 확인할 공식문서 포인트
cv.VideoCapture
cap.isOpened()
cap.read()
cv.cvtColor
cv.threshold
cv.findContours
cv.matchTemplate
crop/resize
color comparison
산출물
edgecanvas/
vision/
capture.py
lcd_region.py
compare_layout.py
compare_color.py
report.py
23개월차: LangGraph Self-Healing 통합
기준 공식문서
LangGraph Graph API
conditional edges
persistence/checkpoint
LangChain tools
Pydantic validators
pytest fixtures
Docker
GitHub Actions
구현 목표
extract schema
→ generate code
→ build
→ flash
→ verify
→ failed?
→ fix
→ retry
→ report
반드시 확인할 공식문서 포인트
state schema
node function
edge
conditional routing
retry count
checkpoint
tool execution
build evaluator
vision evaluator
산출물
edgecanvas/
graph/
state.py
workflow.py
conditions.py
evaluators/
fixers/
tests/
24개월차: 통합 / 문서화 / AegisEdge 확장
기준 공식문서
EdgeCanvas 통합:
Docker
GitHub Actions
pytest
CMake
LVGL
STM32CubeH7
ESP-IDF
Upstage
LangGraph
OpenCV
AegisEdge 영상분석 확장:
NVIDIA DeepStream
Ultralytics YOLO11
ONNX Runtime
OpenCV
Docker
DeepStream은 USB/CSI camera, video file, RTSP stream을 입력으로 받아 AI와 computer vision으로 환경 이해를 위한 insight를 생성하는 streaming analytics toolkit이다. Ultralytics YOLO11 문서는 object detection, segmentation, classification, pose 등 작업과 train/predict/export 흐름을 제공한다. ONNX는 머신러닝 모델을 표현하기 위한 open format이고, ONNX Runtime은 다양한 기술 스택에서 inference를 가속하는 production-grade AI engine으로 설명된다.
산출물
edgecanvas/
README.md
docs/
architecture.md
official_docs_map.md
board_profile.md
security.md
benchmark.md
examples/
stm32_demo/
m5stack_demo/
docker/
tests/
reports/
aegisedge-prototype/
capture/
inference/
events/
api/
dashboard/
AegisEdge 명세는 아직 별도로 확인되지 않았으므로, 여기서는 엣지 AI / 영상분석 / 카메라 기반 이벤트 추론으로 가정한다. AegisEdge가 실제로 다른 구조라면 이 트랙은 조정해야 한다.
영상분석 트랙
공식문서 순서
목표
USB/RTSP camera
→ OpenCV preprocessing
→ YOLO inference
→ ONNX export
→ DeepStream pipeline
→ event JSON
→ Docker deployment
DeepStream reference application은 GStreamer 기반이며 camera, RTSP input, encoded file input, multi stream/source를 지원한다고 공식문서가 설명한다.
로봇 연동 트랙
ROS2는 EdgeCanvas 본체의 1순위는 아니다. 기존 정리에서도 ROS2는 AegisEdge가 로봇과 연결되거나 EdgeCanvas가 서비스 로봇 HMI와 연동될 때 학습하는 후순위로 분리했다.
공식문서 순서
ROS2 공식문서는 topic, service, action이 노드 간 데이터 교환 인터페이스라고 설명하고, service는 synchronous request/response, action은 feedback을 포함하는 long-running task에 적합하다고 설명한다. Gazebo 문서는 ROS와 Gazebo 버전 조합을 안내하고, ROS2와 Gazebo가 서로 데이터를 주고받도록 연동할 수 있음을 설명한다.
멀티에이전트 / 도구연동 트랙
공식문서 순서
이 트랙은 대회 초기 구현보다 후속 제품화에 가깝다. EdgeCanvas 대회 구현은 먼저 데이터시트 → LVGL → 빌드 → 플래시 → Vision 검증을 완성해야 한다.
우선순위 공식문서 왜 보는가 단계
1 Python docs Agent, API, 자동화, subprocess 기초
2 Git / Pro Git 버전관리, 협업, 포트폴리오 기초
3 Linux man-pages 장치파일, 프로세스, 시스템콜 기초
4 GCC / Make C 컴파일, warning, 빌드 오류 기초
5 MIT 6.006 자료구조, 그래프, 상태머신 기초
6 Arm / CMSIS Cortex-M, 인터럽트, 메모리맵 기초~기본
7 STM32H747I-DISCO / RM0399 실제 타깃 보드 기준 기본
8 STM32CubeH7 / HAL / BSP 보드 초기화와 드라이버 기본
9 ESP-IDF / M5Stack CoreS3 휴대 타깃 보드 기준 기본
10 LVGL HMI 자동생성의 핵심 기본
11 CMake / Arm GNU Toolchain 펌웨어 빌드 자동화 기본
12 OpenCV / Pillow / V4L2 Vision-in-the-Loop 기본
13 MIT 18.06 / 18.05 비전·AI 평가 수학 심화
14 scikit-learn / PyTorch ML/DL 기본과 평가 심화
15 Hugging Face docs Transformer/RAG 이해 심화
16 Upstage docs 데이터시트 문서 AI 심화~실전
17 LangGraph / Pydantic Self-Healing 상태머신 심화~실전
18 Docker / GitHub Actions / pytest 재현성, 테스트, 제출 심화~실전
19 OWASP / KISA API 키, 코드생성 보안 심화~실전
20 DeepStream / YOLO / ONNX AegisEdge 영상분석 선택 심화
21 ROS2 / Gazebo 로봇 연동 선택 심화
공식문서는 “읽었다”가 아니라 “구현 기준으로 바꿨다”가 중요하다.
매주 반복 루틴
요일 할 일
월 공식문서의 개요/Getting Started 읽기
화 API reference에서 함수·명령어·옵션 확인
수 최소 예제 실행
목 예제를 EdgeCanvas 구조에 맞게 변형
금 실패 로그 정리
토 README / notes 작성
일 다음 주 공식문서 목록 갱신
문서 읽을 때 항상 남길 것
docs-notes/
source_name.md
version.md
why_needed.md
commands.md
api_summary.md
edgecanvas_mapping.md
failure_cases.md
각 공식문서마다 아래 질문에 답해야 한다.
기초, 1~6개월
Linux man-pages
→ Git / Pro Git
→ Python docs
→ pytest
→ GCC / Make
→ MIT 6.006
→ Arm / CMSIS
→ MIT 6.1810
목표는 개발환경, 언어, 자료구조, 시스템 기초다.
기본, 7~12개월
STM32H747I-DISCO
→ RM0399
→ STM32CubeH7
→ STM32CubeProgrammer
→ ESP-IDF
→ M5Stack CoreS3
→ LVGL
→ CMake
→ OpenCV
목표는 실물 보드에 HMI를 띄우고 카메라로 검증하는 것이다.
심화, 13~18개월
MIT 18.06 / 18.05
→ scikit-learn
→ PyTorch
→ Hugging Face
→ Upstage Document Parse
→ Upstage Information Extract
→ LangGraph
→ Pydantic
→ Docker
→ GitHub Actions
→ OWASP / KISA
목표는 문서 이해, 평가, 자가수정 에이전트, 배포, 보안이다.
실전, 19~24개월
Upstage + Pydantic
→ LVGL generator
→ CMake / STM32 / ESP-IDF build
→ OpenCV Vision-in-the-Loop
→ LangGraph Self-Healing
→ Docker / GitHub Actions
→ AegisEdge optional track
목표는 데이터시트 → JSON → LVGL C 코드 → 빌드 → 플래시 → 카메라 검증 → 자가수정 리포트다. 이 목표는 기존 2년 커리큘럼의 최종 요약과도 일치한다.
지금 바로 시작한다면 순서는 이게 가장 현실적이다.
그다음에:
최종적으로 말하면, 공식문서 기준 커리큘럼의 중심축은 LVGL이나 LangGraph 하나가 아니라 “공식문서로 검증 가능한 파이프라인”이다. 즉, Linux/Python/C/GCC로 개발환경을 만들고, Arm/STM32/ESP-IDF/LVGL로 실물 HMI를 만들고, OpenCV로 검증하고, Upstage/LangGraph/Pydantic으로 문서 이해와 자가수정 루프를 만들고, Docker/GitHub Actions/OWASP로 재현성과 보안을 확보하는 순서가 가장 객관적으로 맞다.