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