개념 정의와 직접 경험을 연결한 결
임베디드 시스템은 특정 기능을 수행하기 위해 하드웨어와 소프트웨어가 통합된 전용 컴퓨팅 시스템입니다. 범용 컴퓨터와 달리 정해진 역할만 수행하도록 설계되고, 자원이 제한된 환경에서 동작합니다.
졸업 프로젝트에서 STM32 마이크로컨트롤러로 센서 데이터를 수집하는 장치를 만들었습니다. PC용 코드를 이식했다가 메모리 초과로 동작이 안 됐는데, RAM이 64KB밖에 없어서 변수 선언 하나하나를 다시 검토해야 했습니다. 자원 제약이 임베디드 개발과 일반 소프트웨어 개발의 가장 큰 차이라는 걸 그때 처음 실감했습니다.
코드가 논리적으로 맞아도 타이밍이 어긋나면 시스템이 오동작하는 경우도 겪었습니다. 임베디드에서는 "언제 실행되는가"가 "무엇을 실행하는가"만큼 중요하다는 걸 배웠습니다.