안녕하세요
공대출신에 잠깐 떠낫지만 그래도 개발직군에 종사하는 직장인입니다.
최근 AUTOSAR를 공부하는데, Event라고 해야하나... HW 추상화를 시킨 SW단계에서
Event관련 API를 제공할 때 Return 값으로 이벤트값을 전달하는 방식과 Reference로 값을 전달하는 두 방식을 모두 제공하는걸 보고
문득 굳이 차이? 장단점? 을 찾으면 무엇이 있을까... 고민하다가 여러분들의 의견이 궁금하여 질문?을 남깁니다.
예를들어 어떠한 이벤트가 Boolean값을 전달한다고 쳤을 때 받는쪽에서
1. Receive함수의 Return type이 Boolean인 API
2. Return type은 RET_RESULT(함수 실행 결과, EX: RT_SUCCESS) 이고, 인자값으로 Boolean변수를 reference로 넘기는 방식의 API
인데요, Receiver는 일반적인 EventHandler방식과는 다르게,
Runnable이라고 별도 스레드? 식으로 발생한 이벤트의 값을 polling으로 체크하는듯 합니다.
AUTOSAR처럼 하드웨어에 가깝고 그 동작에 대한 처리가 중요한 플랫폼에서 굳이 return value로 이벤트를 전달하는 방식을 제공하는 이유가 좀 궁금해졌습니다.
(왜냐면, Event의 전달 실패도 차량의 동작에 있어서는 매우 중요한 이슈가 될 수 있기 때문에...)
현재 강의를 진행하시는 분께 여쭈어봐도 "보편적인 C 에서 제공하는것과 같다"라는 말씀들 들었는데요,
굳이 따지자면 Reference방식은 변수가 둘(리턴값, 이벤트값)을 사용하기에 "상대적으로" 메모리 값이 많이 필요하다 정도가 떠올랐습니다.
하드웨어의 발전으로 사실 상기 이유는 크게 와닿진 않은데... 혹시 "굳이" 두 방식을 나누어 쓰는 이유가 있을까요?
여러분들의 의견 및 혹시 알고계신분들의 지식을 나누어주시길 바랍니다.
감사합니다.