시스템 프로그래밍 프로젝트 종료.

만만하게 봤던 리눅스 시스템프로그래밍 과제가 어제 비로서 끝났다. 이로써 올 한해 나의 프로젝트도 마무리 되었다. 올 한해 내게 생소했던 분야에 대해서 나의 자만심이 여실히 들어났던 그런 한학기간의 프로젝트가 아니었나싶다. 


OS프로젝트를 하며 테스트 OS인 NachOS를 다루면서 뮤텍스나 세마포어를 알게되고, 이를 실제로 구현하고.. 리눅스 커널 프로그래밍에선 포크에서부터 인터프로세스간의 작업을 다루고, 파이프라인과 리다이렉션 등을 처리하면서 OS시간에 배웠던 다양한 부분들에 대해 보다 더 심도있게 알았다고 해야하나.. 솔직히 fork() 개념 익히느라고 너무 힘들었다. 자원이 나눠지는 시점과 signal에서 어느 시점에서 event handler가 pid를 받아서 관리를 해줘야 하는지.. 


약간 아쉬운 것은 왜 굳이 다루기 쉬운 Win32나 COM은 학부에서 다루지 않으면서 리눅스 프로그래밍만 다루는 것인지 이건 약간 개인적으로 의구심이 들 수 밖에 없었다. 내생각엔 약간 사회적 풍토인 것 같은데, Stanford나 버클리 등의 학부 커리큘럼을 보면 윈도우 시스템 프로그래밍 관련 과목은 나름대로 있다. 그렇다고 리눅스가 없는것도 아니지만 말이다. 리눅스 시스템을 공부하는 것만이 우리 사회에서는 보다 더 시스템 개발자로서 인정을 해줄까, 


그래서 대학 학부가 그런가보다. 사회에서 다루지 못할 것을 다루는 것. 그게 아무래도 학부때 해야하는 일인가보다. 하긴 이번기회를 통해 내가 주로 사용하는 OS인 MAC OS X에 대해 보다 더 깊은 이해를 할 수 있었고, 터미널 창이 더 친숙해졌다. 덕분에 SBT를 돌리는데 IDEA를 사용하지 않고도 가능하게 됬으니 이런 부분에선 칭찬해 줄 만하겠다.


의미없는 행동은 없다. 모든게 나의 선택의 결과이다. 이렇게 나는 또하나의 3학년 프로젝트를 종결한다. 아마 내년에는 올해만큼의 프로젝트는 진행하지 않을 것 같다. 아니, 올해만큼 내가 생소한 분야에 대한 프로젝트를 진행하지는 않을 것 같다. 3학년까지는 정말 다양한 분야를 접해보면서 과연 내게 맞는 것이 무엇인지를 확실하게 알 것만 같았다. 아무래도 그게 시스템 프로그래밍은 아닌 것 같지만, 그래도 분산처리 시스템에 대한 내 관심사는 올한해 크게 증폭되었다. 


AI수업을 통해 얻은 Data Mining지식, OS와 리눅스 프로그래밍을 통해 얻은 병렬처리나 실질적 시스템 OS구조에 대한 지식. 이런것들이 결국 내가 웹을 개발하는데에 있어서 “최적화” 된 back-end와 서비스를 구축하고 사용자가 입력한 데이터에 대해 개인화된 빅데이터 분석을 통해 자신에게 필요한 것들을 보다 더 명확하게 가져다 줄 수 있는 그런 처리가 될 것이라 생각한다. 거기에 이어서 front부분의 여러가지 기술이 조합된다면, 비로서 그때 웹서비스 개발자로써 나 자신이 보다 명확하게 완성될 수 있을 것이다. 그렇게 나 자신의 기술과 역량을 명확하게 해 나가는 것이 인생의 목표일 것이다.