개발자

C 언어에 소홀한 엔지니어링 교육... 임베디드 위기로 이어진다

지구빵집 2012. 10. 22. 12:00
반응형



C 언어에 소홀한 엔지니어링 교육... 임베디드 위기로 이어진다.


키워드:임베디드  C 언어  프로그래밍  컴퓨터  엔지니어링 

George Leopold

EE Times1


미국의 엔지니어링 교육 품질에 대한 우려가 커지면서 임베디드 시스템 프로그래밍과 관련된 대학 컴퓨터 과학 과목들의 함량부족과 같은 특정 문제에 대한 관심이 늘고 있다.


문제가 특히 심각한 것은 임베디드 프로그래밍 기술이 의료용 장치로부터 민간 항공기에 이르는 모든 것에 사용되는 안전하고 신뢰성 있으며 미션 크리티컬한 시스템들의 개발을 위한 기초이기 때문이다.


비평가들은 임베디드 프로그래밍의 공백을 가져온 책임 중 상당부분을 대학 컴퓨터 과학부로 돌리고 있다. 이들이 알고리즘과 데이터 구조의 설계 및 분석 방법과 같은 따분한 과목 대신 자바와 같은 최신유행 프로그래밍 언어 쪽으로 커리큘럼을 돌리는 경향을 보여왔기 때문이다. New York University의 명예교수이자 소프트웨어 툴 벤더인 Adacore사의 CEO인 Robert Dewar 씨는 임베디드 분야의 공백에 대한 최근의 글에서 대학들은 자신들의 컴퓨터 과학 입문 과목에서 가르치는 프로그래밍 언어들에 대해 재고해야 한다고 주장했다.




“솔직히 말하자면, 파스칼이나 에이다, C 또는 C++와 같이 프로그래밍 입문 코스에 사용되던 기존의 언어들 대신 자바를 채택한 것은 교육학적으로 한 단계 퇴보를 의미했다. 많은 대학들이 자바로 전환한 이유는 ‘거기에 일자리가 있었기 때문’이다. 하지만 아이러니컬하게도, 결과적으로는 스펙만 뛰어날 뿐 기술 수준은 피상적이어서 보다 폭 넓고 깊은 재능을 갖춘 해외의 경쟁자들에게 일자리를 뺏기는 프로그래머 세대들을 양산한 것인지도 모른다”고 그는 주장했다.


그러나 일부 임베디드 프로그래밍 전문가들은 Robert Dewar 씨가 프로그래밍 공백의 심각성에 대해 충분히 얘기하고 있지 않다고 생각한다. 임베디드 프로그래밍 관련 서적의 필자로 유명한 Michael Barr 씨와 같은 임베디드 프로그래밍 에반젤리스트들은 단순히 문제를 강조하는 수준을 넘어서서 한 주 내내 직접 참여하는 ‘임베디드 소프트웨어 부트 캠프’와 같은 운동을 통해 점점 더 심각해지고 있는 프로그래밍 공백을 채우고자 애써왔다. 하드웨어를 C나 C++ 언어로 제어한다든가 보다 정형적인 장치 드라이버들을 작성하는 것과 같은 기술들에 초점을 맞추는 이러한 캠프의 주된 원동력은 “[미국] 대학에서는 훌륭한 펌웨어 교육이 이루어지고 있지 않다”는 Barr 씨의 결론에서 나왔다.


“내가 발견한 한 가지 공통분모는 학생들이 C 프로그래밍 언어를 모르면 학과 시간에 제대로 해나갈 수가 없다는 것”이라고 그는 인터뷰에서 얘기했다. “C의 모호한 부분들까지 알아야 한다는 게 아니라, C의 기본적인 구문론을 알아야만 한다는 얘기다.”


자바로 시작해서 컴퓨터 과학이나 공학 학위를 받은 이들은 “근본적으로 이러한 내용들에 접근할 수가 없다”고 그는 덧붙였다. “상황이 이 모양으로 엉망이 되고 있는 것은 바로 그 때문이라고 나는 생각한다.”


대학의 컴퓨터 과학 프로그램들이 C를 버리고 자바 프로그램으로 옮겨 타는 추세는 일부 코드 자키들에게는 이익이 되겠지만, 중요한 하드웨어 인터페이스를 개발하는 소프트웨어 엔지니어들의 구직 전망을 개선하는 데는 상대적으로 별 도움이 되지 못하고 있다고 Barr 씨는 주장했다.


위기의 먹구름, 다가오고 있나?


의료용 장치 및 기타 임베디드 시스템용의 소프트웨어 설계가 전문분야인 Michael Barr 씨는 임베디드 프로그래밍 부문의 함량부족 문제를 해결하는 데 있어서 별다른 진전이 보이지 않고 있다고 말했다. 자신이 진행하고 있는 부트 캠프와 IEEE와 같은 엔지니어링 그룹으로 하여금 이 문제를 해결하게 하려는 별도의 노력을 제외하고는 말이다. Maryland에서 5월 초에 개최될 예정인 다음 번 임베디드 부트 캠프에 참가하는 프로그래머들이 미국 전역은 물론 벨기에, 캐나다, 멕시코 및 터키로부터 온다는 사실은 임베디드 프로그래밍이 중요하게 다뤄지고 있지 않음을 보여준다. “이러한 현상이 나타나는 이유는 간단하다. 세계 어디에도 이런 행사가 없기 때문”이라고 Michael Barr 씨는 주장했다. 그는 임베디드 프로그래밍을 가르치기 위한 자신의 직접적인 접근 방법이 바로 대학의 현행 컴퓨터 과학 과목에 결여되어 있는 부분이라고 말했다.


그는 자신의 부트 캠프에 대한 반응이 다양했다고 말했다. “알고는 있었지만 어떻게 사용해야 할 지 몰랐던 지식을 덕분에 내 것으로 만들 수 있었다”에서부터 “누군가가 20 년 전에 이런 것을 가르쳐 주었다면 좋았을 텐데!”에 이르기까지 말이다.


임베디드 에반젤리스트답게 Michael Barr 씨는 벤 다이어그램을 이용해 컴퓨터 엔지니어링 에코시스템 내에서의 임베디드 소프트웨어 프로그래밍의 현재 상태와 어째서 훌륭한 펌웨어 교육이 이루어지고 있지 않은지를 설명하고 있다.


어째서 대학 컴퓨터 과학부가 C 언어 기반의 임베디드 프로그래밍 기술을 가르치는 데 소홀하게 되었는지에 대한 설명은 다양하다. 관측통들은 자바 프로그래밍의 유행과 함께 연구 보조금의 추구도 또 다른 이유로 들고 있다. 이 때문에 경륜 있는 엔지니어링 및 컴퓨터 과학 교수들이 사실상 교실을 떠나고 있다는 것이다. 또 다른 이유는 임베디드 프로그래밍 팀들이 대부분 작기 때문에 (예를 들어 하드웨어 디자이너 한 명과 소프트웨어 엔지니어 몇 명으로 구성되는) 이 학과가 컴퓨터 과학부 졸업생들에게 많은 구직 기회를 만들어주지 못하고 있다는 현실이다.


반면에 우주항공과 같은 산업 분야의 비교적 몇 안 되는 보다 큰 규모의 임베디드 프로그래밍 프로젝트들은 대개 보다 오래 된 기술들에 집중한다. “그러한 프로젝트는 너무나도 보수적이고 프로세스 지향적인 작업 환경을 갖기 때문에 대부분의 소프트웨어 엔지니어들의 관심을 끌지 못한다”고 Michael Barr 씨는 말했다.


C와 같은 임베디드 프로그래밍 언어들에 대한 교육이 계속해서 뒤처질 경우 위기가 닥쳐오게 될 것인지에 대한 관측통들의 의견은 분분하다. 임베디드 시스템 소프트웨어 전문가인 Robert Dewar 씨의 글에 대해 한 엔지니어는 다음과 같이 비평했다: “문제해결 능력이 '최우선적인' 기술이다. 언어에 대한 특정한 지식은 중요하지 않다. 그런 것은 배우면 된다. 이 분야에서 특정한 지식은 유통기한이 짧다.”


그러나 Michael Barr 씨는 C 프로그래밍 과목의 부재와 이 언어에 능통한 소프트웨어 엔지니어들의 대부분이 나이 지긋하다는 사실은 이것이 “어떤 시점에서 일종의 위기로 다가올 것”임을 의미하지 않을까 우려하고 있다. 그 이유는 “이러한 상황이 냉장고로부터 자동차, 스마트폰 그리고 보다 나은 의료 장치에 이르는 모든 것에 영향을 미칠 것이기 때문”이라고 그는 덧붙였다.



반응형