07강. 상태 머신(FSM) 패턴: 복잡한 if-else 지옥 탈출 (2)
"코드가 지저분해지는 건 실력이 아니라 패턴의 부재입니다." 실무 펌웨어 개발자가 전하는 FSM 패턴 도입 꿀팁과 흔히 하는 실수들을 정리했습니다. 신입 시절, 저는 if문을 5단계까지 중첩해서 쓴 적이 있습니다. 결과는 참담했죠. 수정 하나 하면 다른 곳에서 버그가 터졌거든요. 😭 선배에게 한 소리 듣고 배운 '상태 머신'은 제 개발 인생의 …
"코드가 지저분해지는 건 실력이 아니라 패턴의 부재입니다." 실무 펌웨어 개발자가 전하는 FSM 패턴 도입 꿀팁과 흔히 하는 실수들을 정리했습니다. 신입 시절, 저는 if문을 5단계까지 중첩해서 쓴 적이 있습니다. 결과는 참담했죠. 수정 하나 하면 다른 곳에서 버그가 터졌거든요. 😭 선배에게 한 소리 듣고 배운 '상태 머신'은 제 개발 인생의 …
"아직도 if-else 문으로 복잡한 로직을 처리하시나요?" 펌웨어 설계의 꽃이라 불리는 상태 머신( FSM ) 패턴을 통해 스파게티 코드를 깔끔하게 정리하는 아키텍처 설계법을 전수해 드립니다. 반갑습니다, 후배님들! 10년 차 펌웨어 아키텍트입니다. 😊 STM32 실무를 하다 보면 센서 읽고, 모터 돌리고, 통신까지 해야 하는데 코드가 걷잡을 수 없이 복잡해지는 순간…
당신의 버튼 코드는 '견고'한가요? 단순히 동작만 하는 코드가 아니라, 어떤 노이즈에도 끄떡없는 전문가 수준의 버튼 처리 팁을 공유합니다. "분명히 코드대로 짰는데 왜 가끔 버튼이 안 눌릴까요?" 혹은 "왜 제멋대로 눌릴까요?" 솔직히 말씀드리면, 90%는 하드웨어 노이즈와 ISR 설계 미스 때문입니다. 오늘 제가 알려드리는 3가지…
"버튼만 누르면 시스템이 멈춰요!" 인터럽트 함수 내 금기 사항을 배우고, 메인 루프와 협업하는 'Flag 기반 설계' 가이드를 확인하세요. 신입 개발자들이 인터럽트(EXTI)를 처음 배우고 가장 먼저 하는 일이 뭘까요? 아마 버튼 콜백 함수 안에 ` printf `를 넣거나 ` HAL_Delay `를 넣는 일일 겁니다. 결과는? 시스템 먹통이죠. …
당신의 펌웨어가 UART만 쓰면 느려지는 이유! 실무자들이 가장 많이 실수하는 Blocking 방식의 함정과 이를 해결하는 고수의 팁 5가지를 정리했습니다. 솔직히 말해서, 튜토리얼 예제에 나오는 ` printf ` 문구가 여러분의 프로젝트를 망치고 있을지도 모릅니다. 오늘은 제가 현업에서 수백 번 겪으며 정립한 '통신 프로토콜 설계 노하우' 를 아주 쉽게 풀어드릴…
UART 통신, 단순히 printf 만 찍고 계신가요? 하드웨어 의존성을 제거하고 유연한 펌웨어를 만들기 위한 4단계 계층 분리 설계법을 공개합니다. 신입 사원 시절, 저도 ` HAL_UART_Transmit ` 함수 하나로 모든 걸 해결하려 했던 적이 있습니다. 하지만 기능이 늘어날수록 메인 루프가 버벅거리고, 하드웨어를 바꾸면 코드를 다 엎어야 하는 대참사가 일어났죠. 오늘은 그 '스파게티 지옥…
"핀 맵이 다 바뀌었대요!" 라는 청천벽력 같은 소식에도 웃으며 대처하는 법. HAL_GPIO_WritePin 을 직접 쓰는 습관을 버리고, OCP 원칙을 적용한 클린 코드 작성법 3가지를 정리했습니다. 솔직히 말해서, 프로젝트 초반에 짠 코드가 마지막까지 그대로 가는 경우는 거의 없습니다. 핀이 부족해서 다른 칩으로 기능을 넘기거나, 단가 문제로 MCU 기종이 바뀌기…
MCU 핀이 부족해서 LED 연결 방식이 바뀐다면? 프로젝트 막바지에 하드웨어가 변경되어도 당황하지 마세요. HAL 함수를 숨기고 인터페이스를 구축하여 main.c 를 완벽하게 보호하는 실전 설계법을 공개합니다. 후배 여러분, 상상해 보세요. 제품 출시를 한 달 앞두고 하드웨어 팀에서 찾아왔습니다. "핀이 부족해서 LED를 MCU 직접 제어가 아니라 I2C GPIO Exp…