안녕하세요, RCV 연구원 김형준입니다. 기계공학을 전공했고, 4학년 막학기를 앞두고 RCV랩실에 지원하여 2개월동안의 하계인턴과정을 무사히 수료했습니다. RCV 연구원이라는 타이틀을 얻기까지 지난 2개월 동안의 과정들을 타전공생의 관점으로 적어보려고 합니다. 따라서, 이글은 로보틱스, 인공지능, 컴퓨터비전 쪽으로 커리어 전환을 생각하고 있는 분들에게 도움이 될 것입니다. 글의 목적상 RCV 연구실에서 하는 연구의 방향과 학부연구원으로 오게 되면 무엇을 하게 될지는 주안점으로 두지 않겠습니다. 간단히 언급은 하겠지만, 해당 부분이 더 궁금하신 후배님들은 이진수, 정찬호 연구원의 글을 참고하시면 감사하겠습니다.
< 왜 RCV를 택했을까? >
고등학교에서 매년 했던 적성검사에서 3년 연속 기계공학과가 나왔다. 수학, 과학에 흥미가 있었기에 검사 결과에 전적으로 동의했다. 그리고 그 믿음대로 대학에 입학했다. 그러나, 막상 대학에 입학하고 공부를 해보니 이상과 현실이 많이 달랐다. 수학, 과학에 흥미가 있다고 기계공학이 적성에 맞는다고 생각했던 건 너무 단편적인 생각이었다. 만약 나처럼 전공 선택의 갈림길에 선 사람이 있다면 다음과 같은 질문을 하고 싶다.
- 해당 전공과정에서 배우는 전공서적들은 미리 살펴보았는가?
- 해당 전공과정을 마친 졸업생들 혹은 현업자들을 만나보았는가?
- 궁극적으로 하고싶은 포지션(Job position)은 무엇인가?
6년전의 나에게 해당 질문들을 하면 꿀먹은벙어리가 될 것이다. 애당초 해당 고민들을 해본 적이 없으니깐 너무나도 당연한 결과다.
커리어에 대한 고민을 해결 못 하고 2학년을 마친 후 입대했다. 이때 3가지의 목표를 세웠다.
- 건강하게 전역하기
- 영어 콤플렉스 극복하기
- 내가 하고 싶은 일 정하기
해당 목표들을 이루기 위해 계획을 세우고 실천하였다. 우선 건강하게 전역하기 위해 주 3회이상 1회당 45분 이상 운동을 했다. 연등제도와 개인정비시간을 활용하여 영어공부를 했다. 꾸준히 실천하여 1번과 2번 목표에 대해서는 성취를 이루었지만, 하고 싶은 일을 정하는 것은 여전히 어려운 과제였다. 아무런 시도를 해보지 않은 것은 아니다. 우선 사소하더라도 잘하거나 좋아하는 일들을 리스트업했다. 이후, 관련 직무들을 찾아봤다. 해당 직무를 수행하는 것을 상상하며, 어느정도의 행복감을 줄지 생각해봤다. 마지막으로 소거법을 통해 나와 맞지 않는다고 생각하는 직무를 줄여나갔다. 최종적으로 2개의 직무가 남았다.
영어선생님이 되기 위해서는 임용고시를 봐야 한다. 그러나 이 임용고시를 보는데도 자격요건이 있다는 것을 알게 되었다. 교육대학원을 가서 자격요건을 맞추거나 교직이수가 되는 타전공으로 전과를 해야 했다. 현실적인 어려움과 지금까지 쌓아온 커리어와의 연관성을 고려하여 일단 영어는 취미로 남겨두기로 하였다.
앱 개발에 관심이 가게 된 것은 프로그래밍을 좋아하고 스스로 창의적이라고 생각했기 때문이었다. 휴가 때 무작정 Java, Android Studio를 다운받아 간단한 앱 제작을 해보았다. 그 과정에서 느낀 것이 앱 개발을 하기 위해서는 정말 많은 사람 간의 협력이 필요하다는 것이다. 전체적인 프로젝트 설계를 계획하는 플래너, 프론트앤드, 백앤드, 디자이너등 많은 역할이 있었다. 이는 내가 생각했던 이상과 많이 달랐기에 앱개발자는 리스트에서 소거했다.
전역 후 아르바이트를 하여 번 돈으로 뉴질랜드로 워킹홀리데이를 갔다. 커리어에 대해 생각할 시간을 좀 더 가지고 싶었고, 약 2년 동안 공부한 영어를 직접 사용해보고 싶었다. 다양한 사람들을 만나고, 경험하면 좋은 아이디어를 얻을 수 있을거라 생각했다. 매일매일 밖으로 나가 사람들을 만났다. 이 과정에서 전 세계 각지에서 온 정말 다양한 사람들을 만났다. 좋은 경험이 되기는 했지만, 내 진로를 정하는 데 있어서 큰 도움이 되지는 못했다.
군대, 뉴질랜드 워킹홀리데이 포함 3년이라는 시간을 고민했지만, 결론이 나지 않았다. 고민하는 기간이 길어지자 불안감은 커졌다. 그렇다고 섣부른 결정을 하여 후회하는 실수를 반복하고 싶지는 않았다. 시간을 허비하고 싶지는 않았기에 일단 학부 수업을 1년이라도 제대로 공부해보자는 생각을 했다. 다행히 3학년 전공과목들은 좀 더 흥미로웠다. 2학년까지는 계산위주의 역학문제를 다루었지만, 3학년부터는 실제 어떻게 활용할 수 있는지를 배웠기 때문이다. 이 과정을 거치며 내 관심분야를 좀 더 좁힐 수 있었다.
- 컴퓨터 프로그래밍
- 제어공학
- 동역학 및 진동학
- 인공지능
- 구조해석
이 다섯 줄의 정보를 얻는데 4년이라는 시간이 걸렸다. 이 후 4학년 과목들을 해당 과목과 관련된 수업들로 채웠다. 흥미로운 수업들로 구성되니 학업이 증진되었다. 그러나 무슨 직무를 원하는지는 여전히 감이 안 잡히었다. 이와 같은 고민을 해결하기 위하여 LAB들을 수소문했다. 처음에는 사실 LAB실을 들어가 연구를 해야겠다는 생각이 없었다. 그저 연구동향을 보고 싶었을 뿐이다. 그렇게 알게 된 랩들은 다음과 같다.
1. 드론을 제어하는 lab(홍성경 교수님)
2. 로봇을 제어하는 lab(곽관웅 교수님)
3. 구조물을 해석하는 lab(장강원 교수님)
4. 그리고 로보틱스와 컴퓨터비전을 연구하는 RCV
다행히도 해당 랩실 모두에 친구들이 있었다. 많은 대화를 주고받으며, 나에게 가장 맞는 랩실을 알아보았다. 그중 RCV가 내가 원하는 커리어와 가장 일치한다고 생각했다. 사실 Computer vision이라는 분야는 이때 처음 들었다. 이에 Computer vision 관련 정보들을 많이 찾아보았다. 로봇의 눈을 담당하는 Computer vision에 상당한 흥미를 느꼈다. 하지만, Computer vision을 하기 위해서는 석사는 사실상 거의 필수라는 사실을 알게 되었다. 이에 RCV에 지원하게되었다.
< 오면 하게될 일? >
프로그래밍에 익숙하지 않은 타 전공생의 관점으로 말하겠다. 우선 RCV에서 오면 가장 많이 하게 될 일은 코딩이다. 여기서 말하는 코딩이란, 개발자들이 하는 코딩과는 사뭇 다르다. RCV는 연구기관이다. 따라서, ‘정확한 이론’을 바탕으로 코드로 구현하는 것이 중요하다. 코드를 구현함에서는 Python, C, C++이 사용된다. Python은 구현하기 쉬운 언어이지만 속도가 느리다. C와 C++은 이와 반대라고 생각해도 좋다. 2개월 인턴과정에서 처음으로 접한 언어는 C언어 였다. 정확히 말하자면, 입학요건으로 C언어 시험을 봤다. 그러나 인공지능, 파노라마 이미지 만들기, 물체 검출 등의 프로젝트에서는 주로 Python을 사용하였다. 연구자의 입장에서는 Python을 사용할 일이 많다. 이유는 구현이 간편하기 때문이다. 하지만, Python 자체가 C를 기반으로 만들어진 언어이므로, C언어를 제대로 학습하는 것이 필수적이다. 또한, C언어를 공부하면 프로그래밍적 기초지식을 쌓을 수 있다. 그러므로 RCV에 지원하고자 하는 타 전공생들은 C언어에 대한 학습이 우선시 되어야 한다. 사실상 C언어만 잘해도 Python은 쉽게 배울 수 있다. Python과 C언어 둘다 애매하게 하는 학부생보다는 C언어를 잘하는 학생이 좀 더 RCV 인재상에 가까울 것이다. 이유는 발전가능성이 더 크기 때문이다.
코딩이 필수교양이라고 하면, 컴퓨터비전에 관한 이론들은 본 게임이라고 할 수 있다. 알기쉽게 컴퓨터비전이라고 칭하고 있지만, 사실상 컴퓨터비전에도 여러 종목들이 있다. 이에 대한 설명은 구글에 검색하면 잘 나와있다. RCV에서는 컴퓨터비전에 관련되는 거의 모든 분야를 다룬다. 이를 학습하기 위해서는 인공지능, 기계학습, 선형대수, 통계 등의 이론이 중요하다. 수학적인 배경지식이 많으면 유리할 수 있다. 공대생이나 수학, 통계 전공생들은 타전공이라고 할지라도 어느 정도 유사점을 찾을 수 있을 것이다.
< 이상과 현실의 갭? >
RCV는 Robotics & Computer Vision의 약자이다. 그러나 현재로서는 사실상 Robotics는 거의 다루지 않고 있다. 이유는 여러 가지가 있을 수 있겠지만, 가장 큰 이유는 아직 신생랩실이라 안정적으로 자리잡지 못해서이다. 컴퓨터비전이 어느정도 자리잡으면 로보틱스로 연구를 확장할 계획에 있다. 만약 이 글을 읽는 독자가 로보틱스를 주력으로 하고 싶다면 타 랩실을 알아보는게 더 나을 것이다.
기계공학은 수백년에 걸쳐서 어느정도 완성도가 갖추어진 학문이다. 따라서, 더 이상 발전할 가능성이 비교적 작다. 이에 매너리즘에 빠질 수 있다. 반면에 컴퓨터비전은 떠오르는 블루오션이다. 하루에도 엄청난 수의 논문이 쏟아져나온다. 물론 수십 년 뒤에는 판도가 뒤집힐 수 있다. 이 같은 현상에는 장단점이 존재한다. 누군가에게는 ‘기회의 땅’이 될 수 있고, 또 다른 누군가에게는 ‘빠져 나올 수 없는 늪’이 될 수 있다. 아직 밝혀지지 않은 미지의 분야가 많은 만큼 연구할 분야가 광범위하다. 그러나 시대의 흐름에 따라가지 못하면 도태되기 쉽다. 컴퓨터비전 분야에서 연구원으로 일하는 것은 끊임없는 자기계발을 요구로 한다. 오늘날의 전문가가 몇 년 후에는 전문가가 아닐 수 있기 때문이다. 학문의 변화를 따라가며 자신의 연구분야에 몰입하면 기회의 땅이 될 수 있을 것이다.
< 후배를 위한 팁 >
RCV에 진학하고 싶은 사람이 있다면, 곰곰이 생각해보아야 한다. 먼저, 자신이 연구원이 적성에 맞는지 생각해봐야 한다. 이를 위해서는 개발자와 연구원의 차이에 대한 이해가 필요하다. 개발자와 연구원의 차이가 헷갈리는 사람은 이전에 적었던 글인 “8월 1주차 x-diary survey”를 읽고 오는 것을 추천한다. 만약 자신이 연구가 적성에 맞는다면 RCV 추천& 필수 교과과정을 참고하면 좋다. 이를 통해 RCV에서 중요하게 다루는 교과목이 무엇인지 감을 잡을 수 있을 것이다. 이는 RCV 홈페이지에 가면 잘 나와 있다.
단단히 각오하고 도전하라. 새로운 분야를 공부하면 4년의 학부 과정 동안 배운 것들이 생각보다 많다는 사실을 느낄 것이다. 프로그래밍, 컴퓨터비전, 인공지능, 수학, 통계 쪽 지식이 전무 하다면, 쉽지 않은 도전이 될 것이다. 기계공학과를 전공한 사람으로서 가장 힘들었던 점은 프로그래밍이었다. 나름 코딩을 좋아하고 학과 과제로도 코딩을 많이 했었다. 그러나 기계공학과가 하는 코딩과 난이도가 많이 다르다. 코딩을 평소에 싫어하는 사람은 컴퓨터비전쪽으로 진로를 정하는 것을 다시 한번 진지하게 생각해봐야 한다.
충분한 고민을 했음에도 RCV에 관심이 간다면 지원해라. 일단 해보고 적성에 안 맞으면 나가도 늦지 않다. 아무리 많이 보고 들어도 직접 해보는 것만 못한 것 같다. 정말로 관심이 간다면 인턴으로라도 기회를 엿보는 것이 좋다고 생각한다.
김형준 연구원님의 앞길을 응원합니다.
감사합니다. ^-^