공학의 두 축은 공학의 기능을 디자인하는 영역과 하드웨어 구현영역으로 거칠게 나눌 수 있다. 두 영역의 전문가들은 보통 상대방 영역의 깊이있는 이해를 갖기힘든데, 예를 들면, 통신분야에서 학부과목인 '신호 및 시스템'과 '회로이론'을 바라보는 각 분야의 시선이다. 이 둘은, 두 영역의 핵심 기둥이라고 할만한데, 상대방의 핵심기둥을 작고 초라하게 생각하는 경우가 가끔씩 있다(별로 할 것도 없잖아요, 금방 배우지 ...등등으로). 그런데 가끔 이 두분야를 모두 아우르면서 특별한 전문성을 갖는 공학분야들이 있는데, 그 중 하나가 시스템 엔지니어링이다. 

컴퓨터 구현을 흔히 받아들여 사용하는 '아키텍처' 개념보다, 훨씬 구체적이고 다양하면서 실무적이고 생각지도 못하게 최신 성과를 반영해 계속 업데이트되는 영역이, 시스템 엔지니어링이었다.

요새 유행하는 머신러닝과 딥러닝도 알고리즘 개발같은 설계영역과 이를 실제 컴퓨터언어로 구현하는 영역이 있다. 머신러닝과 딥러닝 세미나와 수업을 간간히 들으러 다니다 보니까, GPU얘기를 꾸준히 듣게 되는데, 원래는 컴퓨터 그래픽 표현을 좀 더 수월하게 할 목적으로 탄생한 GPU가 유사한 계산과정을 겪는 머신러닝 영역에 활발히 활용되고, 한걸음 더 나아가 훨씬 딥러닝계산에 적합한 GPU들이 새롭게 디자인되는 지경에까지 이르게 된다고 한다. 

많은 시간은 아니었지만 기회가 생겨, 좀더 근원적인 접근인 GPU 설계 측면에서 딥러닝을 바라보고 이와 유사하게 분산시스템도 적용할 수 있다는 말을 들으면서 눈이 좀 트이는 느낌이 들었다.















그런 시스템 엔지니어링 분야를 가장 친절하고 체계적으로 소개한 것이 위 책이다. 카네기 멜론 대학에서 이 책을 교재로 진행하고 있는 수업도 있고 구글링하면 관련 자료들이 꽤 뜬다. 

이 컴퓨터 시스템공부를 해보려면 기본 선수과목은 리눅스, C언어, 운영체제이론 등인거 같다. 예전에 잠깐씩 보고 말았던 리눅스 책들이, 굉장히 흥미롭게 다가왔다. 
















운영체제나 컴퓨터 구조도 마찬가지다.
















확실히 자연과학분야가 직관적인 그림을 그리기에는 약간은 수월한 것에 비하여, 공학분야는 어떻게 연결되고 구성되는지 직관적으로 전체 그림을 짜기가 어려운 거 같다. 두 분야의 교집합이 적지 않지만, 처음부터 끝까지 자연현상을 설명하는 자연과학과 공학적인 목적에 좀 더 부합하는 의도와 관점을 갖는 공학은 생각보다 결이 많이 달라 보인다. 거기다 그 공학적인 개념들은, 다시 사람마다 쉽게 받아들이는 정도도 영역도 달라서, 공학의 분야의 작업들이 갖는 특유의 효율성을 깨닫는 것이 중요한 과제이면서 재미인거 같다. 



댓글(0) 먼댓글(0) 좋아요(5)
좋아요
북마크하기찜하기 thankstoThanksTo