개발자의 삶은 많이 고단한 것 같다. 급격히 변하는 시대에 익혀야 할 것도, 알아야 할 것도 많기 때문이다. 특히 리눅스 개발자로 뛰어들게 되면 그 과정부터 결코 만만치 않다는 것을 느끼게 된다.
리눅스의 코드를 보면 그 방대한 코드와 구조에 압도되곤 한다. 단순히 C 언어만을 안다고 리눅스 코드가 눈에 들어오는 것도 아니고, 요즘에는 파이썬, C++, Rust 등의 코드도 익혀야 하기 때문에 코드를 해석하는 속도가 무척 더디다.
처음 Yocto를 접했을 때, 다른 개발자가 짜 놓은 코드를 참고해 대충 돌아가게 코드를 만들기는 했지만, 왜 이렇게 해야 하는지, 어떤 순서로 실행되는 것인지 종잡을 수가 없었다. 이를테면 리눅스 드라이버를 작성하는데 'SRC_URI에 upstream의 주소를 적고 do_compile에 컴파일이 될 수 있도록 코드를 넣고, do_install에서 배치를 한다' 정도가 아는 것의 전부인 때도 있었다. 사정이 이렇다 보니 원하는 기능 개선이나 새로운 아이디어를 반영한다는 것은 뒷전으로 밀리고, 좁은 배경지식의 바운더리 안에서 코드를 맞춰 짜는 웃픈 일들이 벌어지고는 했다.
개발자라면 자신이 원하는 대로 구조를 잡고 코드를 만들어야 한다. 때문에 당시 나와 같은 수준의 개발자라면, 그런 웃픈 일이 생기지 않게끔 Yocto에 대한 지식을 늘릴 책임이 있다고 생각한다.
당시의 나와 같이 Yocto를 잘 알지 못해 좌절하는 사람이 있다면, 다시 한번 찬찬히 시간을 내서 Yocto에 대한 기본 개념과 사용법을 익힐 시간이라고 말해주고 싶다. '인생은 실전이다'라는 인기 유튜버의 책에서 좋아하는 문구가 있다. '나이 먹는 것을 걱정하지 말고, 너무 늦게 시작했다는 것도 걱정하지 말고 '똑바로 못하는 걸' 걱정하자. 세상에는 늦은 때란 없다. 세상에는 '완성'과 '미완성'만 있을 뿐이다."