임베디드 면접 용어 사전
면접 태도·시나리오

설계 트레이드오프

베어메탈/RTOS, 폴링/인터럽트처럼 정답이 조건에 달린 선택. "조건을 먼저 세우고" 답하는 것이 요령이다.

임베디드 설계에서 하나를 얻으면 하나를 잃는 관계들. 면접에서 "왜 그렇게 했나"를 물을 때 이 축으로 답한다.

주요 축

① 성능 vs 전력

  • 클럭을 올리면 빠르지만 전류가 늘어난다 (동적 전력 ∝ f × V²)
  • 배터리 기기는 "필요할 때만 빠르게" (DVFS, 슬립 활용)
  • 평균 전류가 아니라 "에너지"로 생각한다
    • 빨리 끝내고 자는 것이 천천히 오래 하는 것보다 나을 수 있다 ★

★ "race to sleep" — 클럭을 올려 빨리 끝내고 깊은 슬립에 들어가면 총 에너지가 더 적을 수 있다. 직관과 반대라 면접에서 좋은 답이 된다.

② 메모리 vs 속도

  • 룩업 테이블 — : 플래시를 쓰고 계산을 없앤다
  • 실시간 계산 — : 메모리를 아끼고 CPU를 쓴다

sin() 계산 : 수백 사이클 256엔트리 테이블 : 512바이트 + 몇 사이클

③ 유연성 vs 결정성

동적 할당, 가상 함수, RTOS → 유연하지만 예측이 어렵다 정적 할당, 직접 호출, 베어메탈 → 경직되지만 WCET 계산 가능

하드 실시간일수록 결정성 쪽으로

④ 개발 속도 vs 최적화

HAL 라이브러리 : 빠르게 만들지만 크고 느리다

  • 레지스터 직접 — : 작고 빠르지만 시간이 걸리고 이식성이 낮다

  • 프로토타입은 HAL, 병목만 직접 최적화

⑤ 비용 vs 성능

  • MCU 등급을 낮추면 단가가 내려간다
  • 10만 대 양산이면 개당 500원 차이가 5000만 원
  • 소프트웨어 최적화에 투입할 공수와 비교해 판단한다

단가 차이 × 수량 vs 엔지니어 공수 — 이 계산을 할 줄 아는 것이 양산 경험자의 특징이다.

⑥ 안전성 vs 복잡도

  • 검증 코드, 이중화, MPU, 워치독 → 안전하지만 코드가 늘고 검증 부담
  • 위험 분석(FMEA)으로 필요한 곳에만 집중

⑦ 신뢰성 vs 응답성 (통신)

  • 재시도·ACK — → 확실하지만 느리다 (TCP, I2C)

  • 재시도 없음 — → 빠르지만 유실 (UDP, 일부 CAN 메시지)

  • 늦은 데이터가 무가치하면 재전송은 손해

면접에서 답하는 방식

❌ 나쁜 답변 "FreeRTOS를 썼습니다."

✅ 좋은 답변 "응답 요구가 1ms인 제어 루프와 100ms 주기의 통신·UI가 섞여 있어

  • 슈퍼루프로는 제어 주기를 지킬 수 없었습니다.

  • 인터럽트만으로 나누는 방법도 검토했지만 통신 처리에 블로킹 대기가

  • 많아 상태 머신이 지나치게 복잡해질 것으로 판단해 RTOS를 도입했습니다.

  • 대가로 태스크 스택 때문에 RAM이 6KB 늘고, 우선순위 역전을 고려해야

  • 했습니다. 스택은 워터마크로 실측해 조정했고, 공유 자원에는 뮤텍스를 써서

  • 우선순위 상속이 동작하게 했습니다."

구조

  • ① 무엇이 문제였나 (제약)
  • ② 어떤 대안을 검토했나
  • ③ 왜 이것을 골랐나 (판단 근거)
  • ④ 무엇을 잃었나 (대가 인식) ★
  • ⑤ 그 대가를 어떻게 관리했나

★ ④가 핵심이다. 대가를 말하지 않으면 "장점만 아는 사람"으로 보인다. 모든 선택에 대가가 있음을 아는 것이 경험의 증거다.

"정답이 없는 질문"에 답하는 법

  • "RTOS를 쓰는 게 좋을까요?"
  • "상황에 따라 다릅니다"만으로는 부족하다
  • "이런 조건이면 A, 저런 조건이면 B" 로 기준을 제시한다

판단 기준을 제시하는 것이 좋은 답변이다.

자주 나오는 질문

"인터럽트와 폴링 중 무엇을 쓰겠습니까?" "RTOS를 쓸까요 베어메탈로 갈까요?" "동적 할당을 써도 될까요?" "이 기능을 하드웨어로 할까요 소프트웨어로 할까요?" "C++를 임베디드에 써도 될까요?"

전부 트레이드오프 질문이며, 한쪽을 단정하면 감점이다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 면접 시나리오·트러블슈팅 — 종합·트레이드오프(베어메탈/RTOS)·저전력·STAR