<p>스스로 '각성'이라고 생각하는 경험담입니다.</p> <p> </p> <p>==========================================================================================</p> <p> </p> <p> <b>3개월 개발기간 중, 2개월을 코딩 한 줄 안하다</b></p> <p> <br></p> <p> <br></p> <p>핸드폰 소프트웨어 개발자에서 <b>차량관련 업무</b>를 해보고 싶어서, 기회가 생겼습니다.</p> <p> <br></p> <p>차량 관련 업무를 시작할때 처음 난관은, CAN 이라는 통신 프로토콜을 이해하는 것이었습니다.</p> <p>다행이 상황이 나쁘지 않아서, 영어로 된 원문까지 필요한 부분을 알려주셨고 이해하게 되었습니다.</p> <p>당시 기술이사님은 '웹사이트의 지식은 정확하지 않다'라는 신념을 가지신 분이었고, 웹사이트를 보면 야단을 치셨습니다.</p> <p>저도 CAN을 인터넷으로 공부하고 있었는데, 다른 직원 분이 인터넷 보면 혼난다며 만류하셨습니다.</p> <p>전 이건 괜찮다고 하였고, 이건 박사님들이 감수하신 논문이라 신뢰 할 수 있는 것이라고 답변을 주었습니다.</p> <p>기술이사님은 신뢰하지 못하는 것이니 잘못 이해할 것을 걱정하신거였지, 논문은 신뢰할 수 있으니 보아도 문제가 안됩니다.</p> <p> <br></p> <p> <b>안된다가 아니라, 왜 안되는 지를 파악하여, 피해가는 답을 찾으면 되는 거죠.</b> </p> <p>당시 기술이사님의 잔소리가 무서워서, 사고가 경직 되신 것 같습니다.</p> <p>기술이사님이 엄하신 분이였으나, 이유없는 공격을 하시지는 않았습니다.</p> <p>기술 수준이 높으셔서, 요구치가 높기는 했습니다.</p> <p> <br></p> <p>팁을 알려드리면, 인터넷으로 국회도서관을 검색하시면, 무료로 볼 수 있는 논문들이 많이 있습니다.</p> <p>논문의 절반은 현재 상황에 대한 설명, 즉 기초이론이 나오며, 이것을 공부하면 편할 때가 많습니다.</p> <p>박사논문은 어렵지만, 석사 또는 학사 논문중에 보고 공부할 만한 것들이 많으니, 필요하실 때 보시면 됩니다.</p> <p>저는 학사학위자이지만, 논문은 웬만한 석사님들 보다 많이 읽었을 겁니다.</p> <p>석사신 분들은 졸업후에 논문을 보지 않으시지만, 전 필요 할때 마다 자주 보았습니다.</p> <p>CAN 통신을 이해하기 위해서 한 달 정도 걸렸고, 회사에서 준 소중한 기회였습니다.</p> <p>모든 디테일한 프로토콜을 다 아는 것은 불가능합니다.</p> <p>평생 CAN 통신을 하신 분들도 다 이해하지 못 하며, 기본적인 흐름을 파악했느냐가 중요합니다.</p> <p>디테일은 필요할 때마다 채워나가야 하는 것이며, 모두 다 알고 업무를 하겠다는 사람은 업무하지 않겠다고 말하는 겁니다.</p> <p>이후 자동차 분야에서 오래 일하신 분들도 CAN통신을 이해를 못하고 있는 것을 많이 느꼈으며, 제가 설명을 해드린 적도 종종 있습니다.</p> <p>물론 실무적으로는 경험을 따라 갈 수 없지만, 이론은 다를 뿐입니다.</p> <p> <br></p> <p>BCM(Bod controller Module) 개발 업무를 맡게 되었는데, 자동차 분야에서는 난이도가 높고 복잡다고 생각하는 분야입니다.</p> <p>BCU라고도 합니다. 모듈과 유닛의 차이일 뿐입니다.</p> <p>BCM은 컴퓨터로 이야기 하면, 메인보드와 비슷합니다.</p> <p>CPU를 메모리, SDD, USB등 다른 주변기기와 독립적으로 만드려면, 중간에 중개를 해주는 장치가 필요한데, 그 역할을 메인보드가 합니다.</p> <p>자동차에서 엔진이 중요한 파트이며, 다른 주변 장치의 영향이 없게 독립적으로 만들기 위해서 BCM을 사용합니다.</p> <p>BCM의 역할이 다양하지만, 중요한 포인트는 엔진의 정보를 공유해주는 매개체라고 할 수 있습니다.</p> <p>엔진의 상태가 중요한 이유는 전원과 관련이 있습니다.</p> <p>자동차가 시동중이면, 전류를 소모해도 크게 문제가 되지 않지만, 시동이 꺼지면 다른 기기들은 전원 OFF 또는 sleep 상태로 들어가야합니다.</p> <p>만약 이런 동작이 원할하게 이루어지지 않으면, 자동차를 방전이 됩니다.</p> <p>고객 불만의 가장 큰 원인 중 하나가 될겁니다.</p> <p>실제적으로는 이것 외에도 주유량 체크, 주행거리 계산등 많은 기능이 있습니다.</p> <p> <br></p> <p>3개월 안에 실질적으로 개발 완료를 하라는 일정을 받았습니다.</p> <p>당시 좀 난처했던것이, 기존 인력과 공동작업이 아닌 단독 개발을 시켰습니다.</p> <p>차량 소프트웨어 처음하는 사람에게, 어려운 분야라고 겁주더니, 혼자 개발하라고 해서, 팀장님께 항의도 했습니다.</p> <p>'항의 한다고 바뀔것이 없다'는 것은 직장인 분이라면 다 아실 겁니다.</p> <p> <br></p> <p>핸드폰 개발하던 사람들은 일을 못한다는 말을, 눈을 마주치며 하시는 분도 있었기에 자존심 문제도 걸려서, 죽기살기로 해 볼 생각이었습니다.</p> <p>회의 시간에 "할 수있냐 없냐?"로 계속 압박이 되었고, 결국 '<b>에라 모르겠다 해보자</b>'가 되었습니다.</p> <p>"언제까지 하면 됩니까?"</p> <p> <b>"그 때 보시죠."</b> </p> <p>이렇게 저의 두 마디의 말로 시작이 되었습니다.</p> <p>차량관련 프로그램 하던 사람도 아니고, 입사한지 얼마 되지 도 못한 사람 하나 두고 '협력하여 어떻게 할까'가 아니라, 압박만 하는 회의 ....</p> <p> <br></p> <p>내가 모르는 것 부터 확인 했습니다.</p> <p>개발 사양을 이해하는데 2주가 걸렸습니다.</p> <p>외국인 개발자가 와서 같이 한줄 한줄 읽어보며, 협의 하였고, 여러 번 읽어 보며 거의 암기할 수준까지 반복 하여 이해하였습니다.</p> <p>하드웨어 부품이 핸드폰용하고 다르기 때문에, 부품데이터 시트와 칩 데이타 시트를 확인하고, 하드웨어 이해를 하는데 2주정도 시간이 걸렸습니다.</p> <p>많이 걸렸다고 생각하시는 분도 있으시겠지만, 메인 칩 데이터 시트만 보통 수백 페이지가 되고, 각 부품데이시트 다 확인하고 이해하는데 걸린 시간이면 빠른 편입니다.</p> <p>이제 소프트웨어 개발에 필요한 것을 확인 시작 했습니다.</p> <p>접해보지 않은 임베디드 OS를 사용하고 있어서, OS 관련 확인하고, 이전에 개발한 프로그램 분석을 하는데, 2주를 보냈습니다.</p> <p>마지막으로 현재까지 확인 한 것들로 소프트웨어를 어떻게 만들지 2주정도 고민했습니다.</p> <p>여기 까지에 대략 8주, 즉 2달이 지났습니다.</p> <p>당연히 코딩한 줄 안하며, 준비만 한 겁니다.</p> <p>2주간은 무식하게 코딩만 했습니다.</p> <p>하드웨어에 맞추어서 필요한 전체 소프트웨어를 구성을 한 후에, 메인 기능을 개발 하였습니다.</p> <p>나머지 2주는 테스트 장비와 물려서, 동작 테스트를 하였습니다.</p> <p>제가 쓰고 나서도 이해되지 않는 속도이긴 한데, 사실입니다.</p> <p>독기로 업무를 한 것이며, 정상상태는 아니었습니다.</p> <p> <b>3개월 개발기간에, 저의 체중이 8Kg이 빠졌습니다.</b> </p> <p>아침식사를 하는 편이라, 하루 3끼를 모두 먹었으며, 잠은 6시간 이상씩은 꾸준히 자며, 규칙적으로 업무만 하는 상황이었습니다.</p> <p>업무 스트레스로 인한 것으로 3개월에 8Kg의 체중 변화를 보인 겁니다.</p> <p>저는 스트레스 받으면, 체중이 증가하는 체질이라고 생각하고 있는데, 저도 극심하게 스트레스 받으면 빠진다는 것을 확인하였습니다.</p> <p> <br></p> <p>월요일 개발 회의에 들어가기전에, 미리 <b>시연 </b>준비를 해두었습니다.</p> <p>회의시간에, 개발완료 된 것과 개발되었으나 테스트 되지 않은 것 그리고 개발되지 않은 부분을 구분하여 브리핑하였습니다.</p> <p>실제로 개발은 거의 완료 된것으로 말씀드렸고, 경험 부족과 장비 부족으로 테스트 되지 않은 것들이 좀 있었습니다.</p> <p>브리핑후 반응이 재밌었습니다.</p> <p>"<b>너 거짓말 하지마.</b>"라고 하드웨어 팀장님께서 말씀 하셨습니다.</p> <p>시연 준비를 해두었기 때문에, 말로 할 필요도 없어서, 저도 받아쳤습니다.</p> <p> <b>"안되는 거 보셨나요? 되는 건 보셨나요? 시연 보시러 같이 가시죠."</b> </p> <p>당시 개발 총책임자이신 임원분과 하드웨어팀, 검증팀 분들을 모시고 시연을 진행하였습니다.</p> <p>'잘했다'나 '수고했다'라는 반응이 아니라, <b>이게 왜 동작하지</b> 라고 고개를 갸우뚱 거리는 분들이 많았습니다.</p> <p>개발 총책임자이신 임원분이 "다음에 무얼 할 것이냐?"라고 물어보셨습니다.</p> <p>"제가 자동차는 처음이라, 검증팀에서 검증을 해서 주셨으면 합니다."라고 답변드렸습니다.</p> <p>검증팀 답변이 재밌었으며, 저도 처음 들어 본 말이 나왔습니다.</p> <p> <b>"왜 이렇게 빨리 개발 했습니까?"</b> </p> <p> <b>"저는 일정 대로 개발한 것 뿐입니다."</b>라고 답변을 주었습니다. </p> <p>검증 준비에 필요한 시간이 1개월이 필요하다는 답변을 받았습니다.</p> <p>기간 내에 못 할 줄을 알고, 준비를 안해 둔것이죠.</p> <p> <b>못 할것 같으면, 일정을 조율해 주셔야지, 못 할 것 같다고 준비도 안해 두셨답니다.</b> </p> <p> <br></p> <p> <br></p> <p>이후에 일어난 일입니다.</p> <p>CAN 관련 업무는 외국에서 담당하였는데, 관련 버그를 수정해야니 개발 중인 프로그램을 보내라고 요청이 왔습니다.</p> <p>"CAN 버그 확인해서 수정 했습니다."라고 회의 시간에 말씀드렸는데, 혼났습니다.</p> <p>"니가 CAN을 어떻게 알아!!"</p> <p>"일단 보내는 드리겠습니다."라고 답변을 드렸고, 버그 수정한 어떠한 것도 받지 못했습니다.</p> <p>이미 수정이 된 것이 맞았으니까요.</p> <p>앞에 개발기간 3개월 중 후반에, CAN 테스트도 가능해서 테스트를 하였는데, 정상적인 동작이 안 되는 것을 확인 했었습니다.</p> <p>오동작 원인이, 변경된 CAN 정보가 적용이 되지 않았다는 것을 확인하여 수정 하였습니다.</p> <p>이 수정에 1주일 정도는 걸렸던 것으로 기억합니다.</p> <p> <br></p> <p>이 회사를 퇴직할 때, 제 스스로 이렇게 말했습니다. </p> <p> <b>"내가 원하는 개발 수준에 이제야 도달을 했다."</b> </p> <p>"소프트웨어로 되어 있으면, 내가 못 할 것은 없다. 이제는 내가 할지, 안할지만 결정하는 문제다."</p> <p>"앞으로 내가 무엇을 계속 할지, 결정만 하면 된다."</p> <p> <br></p> <p>이 이야기는, 자동차 분야를 아시는 분들은 거짓말이라고 하시는 경우를 많이 봅니다.</p> <p>그러나 개인 개발도 아니고, 회사 업무로 진행 한 것이기 때문에, 거짓말을 할 수 없음을 밝힘니다.</p> <p> <br></p> <p>무협지에서 보면 주인공이 특별한 경험을 통하여 '각성'을 하게 되는데, 스스로 이때를 '각성'한 시기라고 생각합니다.</p> <p>이 시기를 거치지 않았으면, 기존 소프트웨어를 모두 지우고 혼자서 다시 개발하는 것은 불가능 했을 겁니다.</p> <p>어려운 일을 할때 저도 된다는 확신을 가지는 것은 아닙니다.</p> <p>'될것 같다'는 가능성에서 시작 할 뿐입니다.</p> <p>참고로 말씀드리면, 이후에 저도 못한다고 말하는 업무를 '할 수있다'는 분들을 많이 보았습니다.</p> <p>스스로 하지 않으신다는 특징이 공통점이라는 것을 알게 되었습니다.</p> <p> </p>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.