32 kB는 검증 결과가 아닌 문제의 조건입니다
FOSDEM 2026의 Go networking on microcontrollers 발표자는 Patricio Whittingslow입니다. 행사 소개의 32 kB는 자원이 작은 장치를 설명하는 맥락입니다. 특정 펌웨어 전체가 그 안에 들어간다는 빌드·최대 사용량 검증표는 아닙니다.
받은 영상 검토에는 자동 자막과 일부 프레임 관찰이 있으나, 이 글은 슬라이드 전체와 영상·오디오를 독립 검증한 결과가 아닙니다. 아래 판단은 행사 소개, 고정 커밋의 README·TCP 풀 구현, TinyGo 문서를 직접 대조한 범위입니다.
1 kB와 2 kB는 같은 버전의 같은 측정값이 아닙니다
lneto의 c518b7e7 README는 약 1 kB, 7350c29e README는 약 2 kB를 적습니다. 둘 다 Ethernet·IPv4·UDP·DHCP·DNS·NTP 범위를 설명하는 수치입니다. 이를 TCP·HTTP·드라이버·런타임·애플리케이션까지 합한 RAM으로 바꾸어 인용하지 않습니다.
라이브러리가 OS나 goroutine을 요구하지 않는다는 것과 프로그램 전체가 할당·스케줄링을 하지 않는다는 것도 다릅니다. 장치 입출력, 초기 설정과 상위 코드의 선택이 추가 비용을 결정합니다.
연결 수와 버퍼 크기를 먼저 곱합니다
7350c29e의 newTCPPool은 연결별 송신·수신 버퍼 크기를 더한 뒤 연결 수만큼 공간을 만듭니다. 가령 5개 연결에 송신 2,048 B와 수신 2,048 B를 설정하면 버퍼만 20,480 B입니다. 이는 구현식에 넣은 계산 예이며 특정 보드의 실행 결과가 아닙니다.
연결 객체, 타임스탬프, 사용자 자료와 큐도 별도 공간을 씁니다. 버퍼 합계만으로 총 RAM이나 최대 heap 사용량을 정할 수 없습니다. 초기화 때 만드는 공간과 패킷 처리 중의 추가 할당도 나누어 봅니다.
프로토콜·연결 수 고정 → 버퍼 용량 계산
런타임·드라이버·스택 추가 → 전체 빌드 크기
동일 부하의 최대 사용량 → 목표 RAM과 비교
컴파일러 보고와 실행 중 최대치를 나눕니다
TinyGo의 -size 보고는 예약된 스택 공간을 포함합니다. -size=full의 패키지별 분류는 인라이닝 등으로 정확히 나뉘지 않을 수 있습니다. -print-allocs=.는 heap 할당 지점을 찾는 컴파일러 진단이지 실행 중 최대 사용량 계측이 아닙니다.
비교 기록에는 보드·컴파일러·커밋·최적화 설정, 활성 프로토콜과 연결 수, 버퍼·스택 크기, 시험 부하와 관측 방법을 함께 남깁니다. 이 글에서 프로젝트를 설치·빌드·보드 실행하거나 네트워크 성능을 측정하지 않았습니다.