진행은 느릴 테지만 언제까지고 지속해보고 싶은 개인적인 공부를 시작해보려고 한다. 이 포스팅은 다소 '오버'로 보일 수는 있으나 그 시작을 알림과 동시에, 초심을 기억하고자 남기는 글이다.
임베디드 개발자라면 리눅스 커널을 정말 잘 이해하고픈 욕심이 다들 있을 것이다. 하지만 그 길은 대개 고되고 어렵고 또 외로워서, 많은 사람들은 적당한 선에서 타협하고 중간에 공부를 포기하고 만다.
이것을 비단 개인의 의지박약 때문이라고만 치부할 수 없는 이유는 우리 개발 업계 환경에 있기도 하다. 제품 통합(Integration)과 양산에 모든 에너지를 쏟다 보니 업체 솔루션을 가져다가 포팅하기 바쁘거나, 이슈가 생기면 이때도 역시 업체를 푸쉬해서 이슈 클로징을 빨리 시키는 것만이 훈장처럼 여겨지기도 한다. 이런 인식이 지배적인 상황에서 집요하게 커널을 붙잡고 앉아 있는 개발자에게 월급 줄 고용주는 많지 않을 것이다. 이런식으로 오랜 시간 경력을 쌓은 개발자라 해도 개발 능력의 한계가 분명히 보일 것임은 슬프지만 너무나도 뻔하다.
이런 개발 업계 환경에 노출되어 길러진 개발자들은 이슈 핸들링이나 일정 타겟팅에는 더욱 탁월해져서 관리자인지 개발자인지 애매모호한 테크트리를 타게된다. 하지만 제품 양산 측면에는 크게 무리는 아니어서 먹고 사는 데는 지장이 없을 수도 있다. 다만 언제까지고 소모될 존재일 뿐이라는 것이다. 더 큰 문제는 그들 중 내 안에 여전히 무언가 뜨겁게 타오르고 있다고 느끼는 사람들이다. 그들이 느끼는 감정은 짐작컨대 '현타' 그 자체일 것이다.
사실 리눅스 커널을 모두 이해하고 자유롭게 다루는 것은 불가능하다. 소위 수많은 천재들이 기여하여 여전히 다듬어지고 있는 진행형 작품이기 때문이다. 그런데도 나는 왜 이걸 공부해야겠다고 마음먹었을까?
1. 개인적인 호기심
리눅스에 대한 호기심이 있었지만 업무 영역에서 실제 프로젝트를 할 기회는 주어지지 않았다. (정말 아쉬운 대목이다)
하지만 이제라도 초보 개발자의 호기심 어린 마음으로 시작해보려고 한다. 더 배워나갈 것이 있다는 희망을 품고 계속 나아가는 것이다. 언제나 희망을 품고 사는 인생은 행복하다.
2. 어쨌든 나는 개발자
운영체제를 공부한다는 것은 Processor를 공부하는 좋은 방식이다. 이 둘을 연결 지을 수 있는 것은 제반 지식이 필요하지만 어깨 너머로 주워들은 지식들을 모두 끌어모아 하나씩 완성해 간다면 못할 일도 아니다. 앞으로 개발자로 쭉 남고 싶은 나의 바람은 이것을 강력한 무기로 삼아 이루어질 수 있지 않을까?
본 스터디 포스팅은 모두 공개로 진행할 예정이다. 사실 내 블로그는 90%가 비공개 글인 점으로 미루어보면 소심하고 대담한(?) 결심이 아닐 수 없다. 스터디 포스팅 중 저작권에 위배되거나 문제 소지가 있는 글은 댓글로 알려주시면 감사하겠다. 그럼 언제까지도 지속하고픈, 그리고 천천히 진행될 스터디를 시작해 보자.