임베디드 소프트웨어를 개발하다 보면 여러 하드웨어 컴포넌트의 상태를 종합하여 특정 조건이 만족할 때만 메인 처리 태스크를 구동해야 하는 시나리오를 자주 마주합니다. 예를 들어 시스템 진입 전 A 센서, B 센서, C 센서의 초기화 데이터가 모두 정상적으로 수집되었을 때만 후선 연산 알고리즘을 실행해야 하는 경우가 대표적입니다.이를 이진 세마포어(Binary Semaphore)로 구현하려고 하면 센서 개수만큼 세마포어 객체를 생성해야 하고, 처리 태스크 내에서 여러 세마포어를 순차적으로 획득하는 복잡한 대기 루프를 짜야 하므로 코드가 지저분해지고 데드락의 위험성도 커집니다. 이러한 다중 조건 동기화 문제를 비트 단위 연산으로 깔끔하게 해결해 주는 인터페이스가 바로 이벤트 그룹(Event Group) 혹은 ..