티스토리 뷰

한달동안 정말 많은 일이 지나갔다. 석사 첫학기도 그냥 어영부영 보내고, 한달을 보내긴 보낸건가 싶었는데.. 금새 시간이 흘러간 거 보면 아마 남은 6개월도 금방 지나갈 듯 하다. 아무튼 이번학기에 수강한 과목이 학부 컴파일러 수업과 대학원 과정에 있는 실시간 시스템 수업이었는데, 처음 컴퓨터 관련 수업을 배운 거 치고는 많이 배웠던 것 같다. 무엇보다도 실시간 시스템 수업은 기존에 전자공학에서 다루던 하드웨어 시스템 설계와 맞물려서 흥미로운 주제를 다뤘었던 것 같다. 물론 성적이 썩 좋지는 않지만..

 사실 막연하게 임베디드 시스템에 대해서 설명해보라고 하면 아직도 개념이 불분명하다. 우리가 사용하는 일반적인 성격의 pc 와는 다르게 특정분야에만 쓰이고, 성능보다는 시간의 개념이 더 중요한 시스템이라고만 정의한다고 생각했었다. 엄밀히 말하면 잘 모르고 임베디드 시스템을 공부하려고 했었던 듯 했다..

 그와중에 좋은 기회가 되서 관련 서적을 읽게 되었다.



이 책도 역시 Oreilly사의 출판된 Making Embeded Systems 의 번역서이다. 그런데 번역서 답지 않지 않게 읽기에 어색한 구문이나 문장이 없었고, 실제 LED를 켜보는 예제와 함께 소개하고 있어서 재미있게 읽을 수 있었다. 일단 기본적인 전제를 두자면 이 책은 우리가 전형적으로 알고 있는 실습책이 아니다. 무조건 코드만 코드만 보고 따라하는 그런 책이 아니라 코드의 일부를 소개하면서 독자가 직접 방향을 설정해나가는 방식으로 진행되고 있다. 솔직하게 나는 전반적인 임베디드 시스템을 설계하고 싶어서 이책이 끝날때쯤이면 근사한 시스템을 만들 수 있겠지 라는 생각을 했었는데 책을 읽으면서 그런 것은 전혀 없었다. 

 하지만 읽다보면서 설계시 어떤 부분을 놓치고 있었는지 그런 부분을 되짚어볼 수 있었던 좋은 기회였다고 생각한다. 예를 들어 스위치의 on/off 부분 설계시 막역하게 빵판에 스위치만 설치하고 회로적으로 설계하는 게 아니라, 과전류에 대한 보호 차원에서 풀업이나 풀다운 저항을 다는 기법이라던가, 혹은 디바운싱에 대한 고려를 소프트웨어 측면에서 고려해서 작성하는 방법을 소개하는 부분에서는 여타 실습책과는 다른 내공이 느껴졌다. 

 그리고 일단 개인적으로는 시스템 설계에 필요한 블록 다이어그램이 많이 첨부되어 있어서 모듈의 동작 흐름이 어떻게 되어가는지를 잘 알 수 있었다.



 책 사이사이에는 아래와 같은 임베디드 시스템 설계자로 취직할 때 나올 수 있는 인터뷰에 대한 소개를 매 챕터별로 제시하고 있다. 



가령 프로젝트 수행시 발생할 수 있는 문제에 대한 대처라던가 생활에 필요한 간단한 시스템 설계는 어떤식으로 주어지고 어떤식으로 답변해야 되는지에 대한 모범 답안이 제시되어 있다. 너무 시스템 설계에 대한 내용만 나오다가 간간히 쉬어가는 코너로 삽입되어 있다. 

 이 책을 얼핏보기에는 양이 매우 적어보인다. 왠지 시스템 설계 전공책을 보면 보통 천 페이지가 넘어가고, 각장에는 알 수 없는 데이터 시트들이 담겨 있어서 거부감이 많이 들곤 했었는데 이 책은 필수적인 내용만 담고 있다. 그래서 하드웨어나 소프트웨어에 대해서 어느정도 자신이 있다고 생각하는 독자에게는 분명 새로운 도전이 될 만한 서적이라고 생각한다. 그러나 양쪽에 대한 기본적인 지식은 조금 필요할 것 같다. 너무 회로에 대한 지식없이 무작정 덤비기에는 책 내용에서 다루는 지식들이 소프트웨어 측면이나 하드웨어 측면 양쪽을 동시에 아우르는게 많다. 그렇기 때문에 책을 읽으면서 이해가 안가는 경우라면 조금 더 찾아보면서 진행하면 더 많이 배울 수 있는 좋은 방법이 되지 않을까 한다. 

 참고로 나도 이 책을 읽으면서 뭔가를 하나 만들어볼 기회가 있어서 시도해봤다.



부품들 중에 보면 맥박수를 측정 할 수 있는 것이 있다. 그걸 라즈베리 파이 상에 올려놓은 RTOS Kernel 과 묶어서 Health Care 도구를 설계하려고 했었다. 그런데 설계하면서 보니까 라즈베리파이의 입출력을 담당하는 GPIO에서는 디지털 값만 읽을 수 있게끔 되어 있었다. 즉 맥박 측적기의 출력은 analog output으로 나오는데 그걸 고려하지 않고 이것저것 시도해보다가 조금 시간을 낭비한 케이스였다.. 아마 이 책을 조금더 일찍 읽고 미리 고민을 해봤다면 이런 번거로움은 없었을까 하는 생각을 해본다.  

댓글