도로 위 안전을 책임지는 일

일을 하며 빛나는 사람들 6

by 두유식빵

인식 개발자를 만나다


mikhail-vasilyev-NodtnCsLdTE-unsplash.jpg


안녕하세요. 자기소개 부탁드립니다.

저는 올해 30살이 된 정현철이라고 하고요. 대학교에서는 로봇 공학으로 석사까지 한 뒤 스타트업에서 1년 정도 일했어요. 지금은 자율주행 자동차에 들어가는 인식 시스템 개발 업무를 하고 있습니다.

로봇 공학을 전공하셨는데, 어릴 때 꿈이 지금 하는 일이랑 관련이 있나요?

‘로봇 공학을 진지하게 파보겠다’라고 생각을 한 것은 군대에서 책을 많이 읽기 시작했을 때부터예요. 그전에는 누가 시켜서 공부했지, 뚜렷한 목적을 가지고 하지 않았거든요. 근데 군대라는 좋은 계기로 사색을 많이 하면서 ‘내가 나중에 무슨 일을 하면 좋을까? 지금 하는 전공이랑 매칭시켜서 노력해 보면 좀 좋지 않을까?’ 해서 그때 딱 몸담고 있는 로봇 공학을 최대한 살려봐야겠다고 생각했어요.

그래서 지금 하는 일과 로봇 공학은 관련이 많아요. 일반적으로 많은 사람들이 로봇을 정의할 때, 센서로 실제 세상을 감지하고 프로세서로 그 정보를 처리해서 액추에이터(actuator)로 실제 물리적인 영향을 주는 걸 로봇이라고 말하는데요. 그렇게 봤을 때 자동차가 로봇 그 자체거든요. 센서로 감지하고 자동차 내부에 있는 보드로 처리한 다음에 실제 바퀴나 브레이크 같은 걸로 영향을 주니까요.

자동차가 로봇 그 자체라니, 새로운 걸 알게 되었네요. 그럼 팀에서 현철님이 집중적으로 담당하는 역할은 무엇인가요?
제가 하는 일은 자동차가 주차하는 시나리오에서 후방에 달린 카메라로 사람을 인식하고 그 사람이 차로부터 얼마큼 떨어져 있는지 거리를 추정한 다음에 ‘이 거리 정도면 위험하니까 자동차가 브레이크를 밟아서 멈춰야 한다’라는 신호를 보내는 시스템에 속해 있어요. 그중에서도 영상을 보고 사람이 있는지 없는지를 판단하고 거리를 추정하는 걸 담당하고 있습니다. 세 종류의 차종에 이미 기술이 적용되어 양산 출시를 앞두고 있습니다. 그래서 양산 차종에 대한 유지 보수나 평가 관리도 담당하고 있습니다.

자율주행 시스템에서 카메라랑 센서에 대해서 알려주실 수 있으실까요?
카메라도 센서의 한 종류예요. 센서가 되게 여러 종류인데 초음파와 같이 거리를 측정하는 게 있고요. 카메라는 영상에 대한 센서고, 레이더는 초음파보다 멀리 측정하는 거리 측정기예요. 센서가 없다는 건 자동차가 세상을 감지할 수 있는 감각 기관이 없는 것과 마찬가지라서 센서는 자율주행을 하기 위한 기본이라고 할 수 있겠네요.

그러면 자율주행에 사용되는 카메라 해상도와 프레임 속도도 꽤 중요하겠네요.
프레임 속도는 매우 중요해요. 프레임이 실시간에 가까울수록 좀 더 빠른 반응 속도를 가질 수 있는데, 프레임에 들어오는 이미지를 처리하는 속도도 중요하거든요. 그 처리 속도에 대한 트레이드오프가 있어요. 일단 기술이 충분히 발전한다고 봤을 때 빠르면 빠를수록 좋아요. 근데 프레임 처리 속도의 한계에 따라서 실시간으로 처리하지 못하고 10 fps나 15 fps 정도로 만족하는 경우도 있고요.


해상도도 물론 중요해요. 그리고 필드 오브 뷰(Field of view)라고 카메라가 볼 수 있는 각도가 있거든요. 카메라 하나로 충분한 영역을 볼 수 있냐 없냐 그런 게 단가에 큰 영향을 미쳐서 프레임도 중요하고 해상도도 중요하고 화각도 중요합니다.

실제 주행 데이터는 어떻게 수집하나요?
저희는 수집된 데이터를 처리하는 일을 하는데, 요즘 딥러닝 같은 학습 데이터가 필요하다 보니까 데이터 수집 자체도 되게 중요한 업무 중 하나예요. 저희도 외주를 맡겨서 학습 데이터를 수집하고 있습니다. 차를 리워크해서 저희가 카메라를 따로 장착하고, 영상을 취득할 수 있게 장비를 세팅을 마치고 가이드와 함께 외주 업체에 맡겨서 이쪽 코스를 돌아서 몇만 장 취득해 달라는 식으로 주문하고 있어요. 그 데이터를 받아서 학습에 사용할 수 있게 라벨링하는 작업도 다 외주로 맡겨요. 그래서 라벨링 작업에도 돈이 엄청 많이 들어요.

혹시 그런 업체를 차려볼 생각은 안 해봤나요?
그게 진짜 캐시카우인 것 같긴 한데 완전 노가다의 영역이거든요. 사람이 일일이 눈으로 보고 마우스 딸깍하면서 고치는 거라서 돈은 잘 벌겠지만 제 취향은 아니라 일단 생각을 안 하고 있습니다.

업무에서 가장 큰 기술적인 도전은 무엇이었나요?

제가 담당하고 있는 이 기술을 처음으로 양산하기 전에 현지 평가를 위해 북미에 출장을 갔어요. 그때 문제가 있었어요. 카메라가 사람이 아닌 객체를 잡았는데 이게 차에 달려오는 것처럼 착각해서 오제동을 한 거죠. 급하게 해결해야 할 이슈였는데 제가 거리 추정과 객체 인식에 관한 담당자라 해결을 맡아야 했어요. 그때 기술적으로 제일 큰 도전을 했었네요.

팀 단위로 일을 할 텐데 현철님이 다른 팀원들과 협업하는 방식, 그리고 협업할 때 중요하게 생각하는 점을 알려주세요.
협업할 때는 의사소통 잘하는 게 제일 중요하죠. 각 팀이 맡고 있는 컴포넌트가 있거든요. 그래서 서로 다른 팀과 협업하기 위해선 ‘이 컴포넌트는 입력 데이터가 이거고 출력 데이터가 이거다’라는 인터페이스가 정해지고 정확히 전달되어야 해요. 무언가 잘못되고 있는데 너희 팀의 입력이 잘못돼서 그런 게 아니냐라는 걸 이제 제일 많이 서로 따지고 들어요.

그리고 제가 자율주행 시스템에 들어가는 모든 걸 혼자 개발하는 게 아니라 그중 일부분만 담당해서 작업하기 때문에 하나의 컴포넌트만 가지고는 하나의 기능이 될 수가 없어요. 이 기능을 발전하기 위해서는 모든 팀이 다 협업을 잘해야 하죠. 참고로 저는 기가 막히게 소통을 잘합니다.

다른 팀과의 협업을 위해서 대면으로 회의를 많이 하나요?
대면 회의를 주기적으로 하지는 않아요. 그때그때 일이 있으면 바로 메일을 쓰거나 자리로 찾아가 그냥 바로 샤우팅 공지하는 게 낫더라고요.

버그나 센서 오작동이 발생했을 때 문제를 어떻게 진단하고 해결하나요?
진단하고 해결하는 것도 되게 중요한데 저희 같은 경우는 디버깅이라고 하거든요. 디버깅 코드나 동작 같은 것에 잘못된 게 있을 때 어디가 잘못됐는지, 어떻게 잘못됐는지 이런 걸 판단하는 건데 개발자 관점에서 그런 걸 검증하는 게 크게 두 가지 정도 크게 있어요.

정적 검증과 동적 검증인데요. 정적 검증은 말 그대로 코드상에 있는 데이터의 타입이나 최댓값, 최솟값 같은 걸 보고 말이 되는지, 변수나 함수의 정의가 명시적으로 되어 있는지를 판단하는 거예요. 동적 검증은 코드가 문제없다고 판단됐을 때 실제로 입력 파라미터에 가상의 값을 넣어보면서 이게 잘 동작하는지 안 하는지를 보는 거예요. 여기서 잘못되었다 하면 그때 수정하면 되고요. 근데 이 검증 방법들이 특정한 툴을 이용해야 하고 시간도 제법 소요되어서, 일상에서는 사람이 직접 돌려보고 안 되면 바로 고쳐보고 이런 거죠. 저는 또 코드 동작뿐만 아니라 영상에 대한 인식 작업을 하니까 인식 결과를 보기 위한 디버깅 툴을 따로 만들어 사용도 하고 있어요.

현철님이 생각하는 안전한 기술은 무엇인가요?
소비자와 그 제품 자체의 안전이 1순위고, 2순위는 이 제품으로 인해 영향받을 수 있는 모든 것이에요. 다른 보행자가 될 수 있고 길가에 도로나 표지판이나 이런 게 될 수 있는데 그런 게 보장되어야 안전한 기술이라고 하거든요.


사실 안전한 기술을 만들 수 있는 완벽한 알고리즘은 존재하지 않고 각자의 판단 기준으로 ‘이 정도면 문제없겠다’라는 게 있어요. 그래서 저희도 평가할 때 ‘인식 정확도가 100%를 찍어야 한다’ 이런 건 없고, 100%에 가까운 99% 그게 딱 최선의 기준인 것 같아요.


직접 개발한 코드가 실제 차량에 적용됐을 땐 어땠나요?
너무 뿌듯했죠. 특히 실생활에 적용되고, 많이 팔리는 종류인 자동차다 보니까요. 그리고 안전에 완전히 직결되니까 ‘사람들이 걱정 없이 탈 수 있는 것에 기여했다’라는 그런 뿌듯함이 굉장히 컸죠.

이 일이 나랑 잘 맞는다 싶었던 순간은 언제였어요?
저는 워라밸을 따질 때 최대한 일과 삶을 분리하고 싶었거든요. 근데 태생적으로 일이 삶인 것 같은 사람인가 봐요. 늦게 출근하고 저녁 먹고 늦게 퇴근도 하고 이런 게 제 생활 패턴에 잘 맞아요. 다 같이 고생해서 하나의 목표를 향해 달려가는 그런 느낌이 좋더라고요. 학부생 때부터 대회 활동을 준비하면서 같이 밤새거나 데모나 평가가 다음 날일 때 함께 밤새워서 테스트하던 게 좋았어요.

지금까지 회사에서 있었던 웃긴 에피소드 같은 게 있나요?
웃긴 에피소드라기보다는 그래도 즐거운 걸 뽑자면 저는 회사 사람들이랑 롤을 많이 하는데요. 이게 진짜 가뭄의 단비 같은 존재예요. 다들 게임하는 걸 좋아해서 회식하면 술을 많이 마시기보다는 그냥 PC방 가서 새벽 1~2시까지 같이 게임을 하거든요. 뭔가 주말에 회사 사람들끼리 등산 가는 것과 비슷하지 않을까라는 느낌도 있는데 일단 저는 굉장히 행복합니다.

개발하면서 뿌듯했던 순간은 언제인가요?
아까 말한 북미에서 발생한 그 이슈를 해결한 거요. 제가 재작년에 썼던 논문에 있는 걸 적용해서 해결했거든요. 그때 제가 학술적으로 이루어낸 뭔가가 실제 업무에도 적용되어서 문제를 해결할 수 있구나라는 그런 뿌듯함을 많이 느꼈어요.

연구한 내용을 실제로 적용해서 성공했다니, 너무 멋지네요. 그래도 개발하다가 멘붕온 상황도 많을 것 같은데 그럴 땐 어떻게 극복하나요?

그런 경우가 정말 많은데요. 정말 제가 능력이 부족해서 처리하지 못할 땐 전문가를 찾아가는 수밖에 없고요. 뭔가 답이 보일 것 같은데 손이 꼬이거나 머리가 잘 안 돌아가서 안 된다 싶을 때는 진짜 그냥 그게 해결될 때까지 매달려 있어요. 포기하기에는 자존심이 상하고 그러면 진짜로 계속 부딪혀 보는 그런 타입이에요. 그렇게 하고 다음 날 재택 신청해서 잠을 보충하죠.

평소 운전하면서 다닐 때 눈여겨보게 되는 것들이 있나요?
운전은 운전을 안 할 때보다 사용자를 더 안전하고 빠르게 목적지에 도달하게 하는 게 목표니까 일단 안전이 최우선이죠. 그래서 제가 운전할 땐 다른 차들이나 보행자와 충돌하지 않는 데 제일 신경을 써요. 그리고 또 자율주행 시스템을 개발하다 보니 ‘이런 환경에서는 이런 게 더 필요하지 않나?’ 이런 걸 유심히 보게 돼요. 지금 제가 타고 있는 차가 옵션이 많이 없는 편이라 많은 걸 비교할 수는 없지만 그래도 그런 걸 좀 보려고 노력하는 편이에요.

이 일을 할 때 현철님만의 기준이라든지 원칙 혹은 철학 같은 게 있나요?
일단 양산해 나가고 있는 기술은 무조건 어떤 상황에서든 강건하게 동작해야 해요. 여기에서 진짜 체계적이고 많은 평가 과정이 필요한데, ‘이 기준들을 다 통과해야만 내가 만든 코드를 세상에 내보내겠다’ 이런 철학이 있죠.

그러면은 퇴근 후나 주말에 어떤 식으로 리프레쉬하세요?
평일에는 제가 늦게 일어나요. 한 8시나 8시 반쯤? 그리고 10시까지 출근하고, 회사에서 저녁을 먹고 8시나 9시쯤 퇴근해서 집에 오면 10시 이내거든요. 그러면 사실 별로 할 수 있는 게 없어요. 게임을 하는 정도.


그래도 지난주부터는 헬스장을 등록해서 일주일밖에 안 됐지만 네 번은 갔어요. 밤에 사람 없을 때 가는 걸 좋아해서 이틀에 한 번씩 가는 걸 목표로 하고 있죠. 운동하니 스트레스가 그래도 좀 풀리더라고요. 주말에는 여자친구 만나서 같이 놀고 하루는 본가에 가서 엄마가 해주는 밥 많이 먹으면서 숨 쉬고. 딱 그렇게 일주일을 루틴으로 하는 것 같습니다.


현철님에게 일이란?
저는 일을 되게 중요하게 생각해요. 퇴근하면 일은 딱 끊고 인간관계라든지 이런 거에 좀 집중하는 게 좋지만, 일로서 자아실현을 많이 하는 편이거든요. 제 능력을 세상에 기여할 수 있는 거라고 생각하기 때문에 일은 저에게 되게 큰 것입니다.

일하면서 더 배우고 싶은 기술이 있나요?
딱 입사할 때는 말단이어서 시키는 일만 하고 그랬는데 지금은 후임이 두세 명 정도 생겨서 제가 업무를 배분하고 관리해야 하는 입장이 된 거예요. 이 정도 되니까 역시 관리자는 쉽지 않다는 생각이 들면서 ‘짬 좀 먹었구나. 관리 능력도 키워야겠다.’ 이런 생각을 요즘 많이 합니다.

앞으로 어떤 개발자가 되고 싶어요?
저는 임베디드 개발자, 인식 개발자이거든요. 제가 상품을 만드는 데 일단 한 부분을 담당하고 있는 거니까 ‘내가 만든 것을 실제로 소비자가 이용했을 때 문제가 없었으면 좋겠다.’ 이걸 목표로 하고 있어요. 문제가 생겨도 적어도 내 문제는 아니어야 한다는 거죠. ‘나는 잘못 없으니 너희가 잘 봐라.’ 이렇게 당당하게 말할 수 있는 능력을 갖는 게 목표입니다.



keyword
이전 05화산업재해를 승인받는 일