후하하핫
5k
2021-12-20 17:22:49
7
975

인공지능 업계(?) 종사자가 되는 방법


인공지능 쪽으로 준비하시는 분들이 많은 것 같아, 이 업계의 생태(?)를 공유해 드립니다. 참고로, 이 분야는 아직 발전하고 있는 상황이고 표준화된 R&R이 정립되지 않았기 때문에 회사마다 쓰는 용어의 차이는 있습니다.


0. Scientist, Engineer, Domain expert


이쪽 업계에서 일하는 세 축은 Scientist, Engineer, Domain expert 로 이야기 할 수 있습니다. 이 세 축을 기준으로 어떠한 점에서 일을 하게 되죠. 예를 들어, 저의 경우에는 Scientist 50% Engineer 30% Domain expert 20% 정도의 역할을 하고 있는데 직함은 Research Scientist 인 식입니다. 즉, 직함만 보고는 실제 원하는 역량이 무엇인지 알 수 없고, 사실 회사 입장에서도 어떤 사람을 뽑아야 할지 모르는 경우도 많습니다.


Scientist 는 과학자입니다. 가설을 세우고, 가설을 증명하기 위한 데이터를 모아서 분석하고 가공하여 의미있는 결론을 도출해 비지니스를 돕거나 새로운 문제를 해결합니다. 주로 이 사이트에서 “인공지능 하려면 석박사 해야 한다” 는 얘기는 Scientist 를 가리키는 말인 경우가 많습니다. 실제로 일을 해보면 석박사가 많지만, 최근에 인공지능 박사에 대한 수요 대비 공급이 굉장히 부족한 상황이기 때문에 석사나 가끔 학사인 분들도 있긴 합니다. 후술하겠지만 Research Scientist와 Data Scientist 를 비교하면 후자의 경우 전자에 비해 학위보다는 경력이 더 중요하다고 생각합니다. 다만 학위 과정에서 배우는 연구 과정이 Data Scientist 가 문제를 푸는 과정이랑 비슷하기 때문에 학위 과정을 마치면 경력처럼 인정해 주는 분위기는 있습니다.


Engineer 는 Scientist와 보조를 맞춰 실제 일이 돌아가도록 하는 역할을 맡습니다. 예를 들어, Scientist가 원하는 데이터가 있으면 그 데이터를 끌어올 수 있는 data pipeline을 구축하는 일, 끌어올 때 속도를 빠르게 할 수 있는 최적화, dash board 개발 등이 Engineer들의 일입니다. 보통 Scientist들이 일하다 이거 해주세요 저거 해주세요 하고 Engineer에게 던지면 Engineer 들이 속으로 욕하면서 해주시는, 그런 식이라고 보시면 됩니다. 큰 연산량과 데이터의 양을 다뤄야 하는 직무이기 때문에 기본적으로 분산 시스템에 대한 이해, 알고리즘에 대한 실력이 있어야 합니다. 그렇기에 개발자 출신, 주로 백엔드에서 넘어오시는 분들이 많습니다.


Domain expert는 특정 문제에 대한 전문가를 의미합니다. 예를 들어 의료 인공지능을 만들 때 의사, 물류에서의 물류 전문가와 같은 도메인에 대한 이해도가 깊은 분들을 의미합니다. 의외로 domain expert가 이 중에서 제일 귀합니다. Domain expertise를 가지면서 data science에 대한 기초가 있으신 분들이 정말 정말 없거든요. 이런 문제 때문에 미국에서 박사 받고 취직 할 때 생명과학이나 화학공학, 기계공학 같이 비 IT 전공인 분들이 코딩 배우고 data science 배워서 제약, 화학, 항공, 로봇 같은 쪽으로 가시는 경우를 꽤 봤습니다.


1. Data XXX vs. Research XXX


또 하나 들어보셨을 법한 직함이 Data Scientist 일텐데요, Research Scientist 라는 직함도 있습니다. Data가 붙으면 보통 새로운 영역의 문제를 풀기보다는 로그 분석 등 입력을 취득하는 방법이 비교적 뚜렷한 정보를 처리해 비지니스 인사이트를 뽑아내는 일을 하는 것 같습니다. (역시 회사마다 다 용어가 다릅니다만, 제가 경험한 것은 그렇습니다.)

그에 반해 Research 가 붙으면 아직 풀리지 않은 문제나 어떤 문제를 풀어야 할지 모르는 상황인 경우가 많습니다.

예를 들어서 최근에 네이버에서 내놓은 자연어 처리 모델을 연구하시는 연구자분들의 영어 직함을 붙이자면 Data Scientist 보다는 Research Scientist 가 맞습니다. 쿠팡 같은 곳에서 어떻게 사용자들이 좋아할만한 물건을 위로 띄워줄까를 고민하시는 분들은 Data Scientist로 보시면 될 것 같습니다.


그럼 누가 돈을 더 많이 받느냐가 궁금하실텐데… 회사 성격에 따라 다릅니다만 Data Scientist 가 성과를 가시적으로 보여주는게 용이할 수 있습니다. 고객들이 머무르는 시간이 늘었다던지, MAU가 증가했다던지 하는 비지니스와 직결된 지표를 보여줄 수 있으니까요. 그에 반해 Research Scientist 들은 논문이나 특허를 몇편/몇건 냈는지, 혹은 풀고자 하는 연구 대상의 성공 지표, 다른 연구자들 사이에서의 질적 평가 등 조금 더 먼 미래를 보고 일하는 경우가 많습니다.


2. 인공지능 쪽으로 가려면 어떻게 해야하나?


가장 중요한 능력은 소통 능력입니다. 사람들과 잘 지내는 능력도 중요하지만, 글을 쓰고, 시각화를 하고, 프리젠테이션을 하고, 수식을 이해하는 등의 기술적인 소통 능력이 필요합니다. 이게 되는 사람이 생각보다 개발자 출신 중에 잘 없어서 저희 회사도 채용에 고민이 많은 상황입니다.

어떻게 이런걸 배울 수 있냐, 라고 물어보신다면 저는 (여러분들은 싫어하실 수 있는…) 대학원을 추천합니다. 대학원에선 당연하다 시피 저런걸 해오기 때문에, 저는 회사에서 업무적으로 적응하는데는 그렇게 어렵지 않았던 것 같습니다.


그 외의 기술적인 능력으로 보면, 일단 Science, Engineer, Domain expert 세 역량 모두 최고는 아니라고 하더라도 기본은 있어야 일을 할 수 있습니다.

Scientist로서의 기초 역량을 위해서는 Data Science, Machine Learning, Deep Learning 관련한 코스를 하나씩 들어보시고 선형대수와 통계에 대한 기초는 갖고 있으시면 좋습니다.

Engineer를 위해서는 코딩과 더불어 탄탄한 CS 지식을 준비하셔야 합니다. 좋은 개발자로서 밟아야 하는 커리어를 밟으시면 Engineer가 되는데 문제가 없습니다. (단, Research Engineer 의 경우 특수한 기술을 요구하는 경우가 있습니다. 예를 들어 Robotics Research Engineer면 수학에 대한 백그라운드가 강해야 한다던가 하는 식으로요.)

Domain expertise를 쌓는 것은, 저도 참 이게 어려웠는데, 교양을 많이 쌓으면 유리한 것 같긴 합니다. 다른 분야 돌아가는 얘기 궁금해 하고, 책 보고, 뜬금없이 이 분야 저 분야 강의 들어보고… 기초 과학 과목들 (물리, 화학, 생물) 에 대한 기본적인 이해를 갖추면 최소한의 이해는 할만 한 것 같습니다. (근데 솔직히 이 부분은 제가 못하는 부분이라 딱 방법을 드리긴 어렵네요)


어떻게 경력을 쌓을지가 궁금하시다면, 일반적으로 Kaggle을 추천하긴 합니다. 다만 저는 정형화 된 문제를 푸는 것보다 세상에 없는 문제를 발견해서 푸는 사람을 좀 더 쳐주기 때문에, 어떤 분야이든 firm 한 논증을 통해 제출한 좋은 학회에 실린 논문이 더 매력적인 것 같습니다.


3. 마치며


오늘은 인공지능 업계의 직업군에 대한 이야기를 해보았는데, 궁금하신 점이 있으시면 댓글 주세요. 제가 아는 선에서는 정보를 공유 하겠습니다.

13
9
  • 댓글 7

  • Minsu Chae
    196
    2021-12-20 17:30:55

    "일반적으로 Kaggle을 추천하긴 합니다"

    진짜 공감되는 부분이라 표시했습니다.


    책보고 공부하는 사람들이 가장 큰 착각하는 것이 스스로 모든 걸 다 할수 있는 것으로 착각하는 것이지요.

    책에선 따라하기 쉽게 어느 곳에서 데이터를 구할 수 있는지, 그 데이터의 항목이 무엇이며 전처리 관련하여 설명도 해주지요.

    거기에다가 어느 정도 성능이 보장된 모델로 수행을 하구요.


    실제는 데이터 가공부터가 시작이지요.

  • 꽁손
    319
    2021-12-20 17:32:06

    오 감사합니다..

    기계학습을 하면서 대학원을 알아봐야하나 고민중인데 도움되는글 감사합니다.

  • MADELITE
    1k
    2021-12-20 17:48:22

    몇 가지 질문이 있습니다.

    1. 글에서 아래와 같은 문구가 있는데

    Research Engineer 의 경우 특수한 기술을 요구하는 경우가 있습니다.

    기술을 요구하는 원인은 Research Scientist와 소통해야 하기 때문인가요? 제가 들은 바로는 AI 모델을 사용한 서비스를 개발할 경우 AI 모델에 대한 이해가 있는 인원을 선호한다고는 들었는데 다른 이유가 더 있는지 궁금합니다.

    2. 이 질문은 이 글과 관계가 있을 수도 없을 수도 있는 얘기인데 경력직을 채용할 때 현재 기업과 완전히 커리어 방향성이 일치하는 지원자가 많은 편인지 궁금합니다. 신입 지원과 달리 경력직 이직의 경우 지원자가 이전 직장에서 하던 일이 꽤 많은 영향을 줄 거라고 생각하거든요. 가고 싶은 곳과 커리어 방향성이 일치하지 않는 지원자가 있는지, 만약 그런 지원자가 있다면 그 지원자가 합격할 수 있는 방법은 무엇인지 궁금합니다. 이것은 정해진 답이 없는 부분이라고 생각합니다. 가볍게 의견을 주시는 것만으로도 감사합니다.

    좋은 글 잘 읽었습니다.

  • 후하하핫
    5k
    2021-12-20 18:05:23

    1. 글에서 아래와 같은 문구가 있는데

    Research Engineer 의 경우 특수한 기술을 요구하는 경우가 있습니다.

    기술을 요구하는 원인은 Research Scientist와 소통해야 하기 때문인가요? 제가 들은 바로는 AI 모델을 사용한 서비스를 개발할 경우 AI 모델에 대한 이해가 있는 인원을 선호한다고는 들었는데 다른 이유가 더 있는지 궁금합니다.

    -> 두가지 이유가 생각이 나네요.

    1) 생각보다 구현 디테일에서의 개선 방안이 있을 때가 있습니다. 일반적으로 Scientist들이 코딩 고수는 아닐 수도 있기 때문에, 구현 세부적인 성능 개선안에 약할 수 있습니다. 당장 떠오르는 예로는 알고리즘 하나를 CUDA로 작성하면 빠를 것 같은데, Scientist 가 알고리즘은 아는데 구현은 약할 수 있습니다. 이때 엔지니어가 알고리즘을 효율적인 구현으로 옮길 수 있으면 너무 좋죠. 이때 알고리즘을 이해해야 효율적으로 구현할 수 있겠죠?

    2) 새로운 문제를 풀어야 하는 상황은 아니지만 그렇다고 모든 프로그래머가 다 알지는 못하는 내용을 구현해야 하는 상황이 있습니다. 예를 들어서 Robotics 에서 로봇의 arm이 특정 위치를 향하도록 조인트들을 회전 시켜줘야 할 때 inverse kinematics (IK) 라는 방법을 사용하는데, IK는 연구자 입장에선 이미 정립된 이론이니 굳이 자기가 손대면 시간만 더 걸리는 상황일 수 있습니다. 이럴 때 엔지니어가 IK를 공부해서 짤 수 있으면 굉장히 좋죠.


    2. 이 질문은 이 글과 관계가 있을 수도 없을 수도 있는 얘기인데 경력직을 채용할 때 현재 기업과 완전히 커리어 방향성이 일치하는 지원자가 많은 편인지 궁금합니다. 신입 지원과 달리 경력직 이직의 경우 지원자가 이전 직장에서 하던 일이 꽤 많은 영향을 줄 거라고 생각하거든요. 가고 싶은 곳과 커리어 방향성이 일치하지 않는 지원자가 있는지, 만약 그런 지원자가 있다면 그 지원자가 합격할 수 있는 방법은 무엇인지 궁금합니다. 이것은 정해진 답이 없는 부분이라고 생각합니다. 가볍게 의견을 주시는 것만으로도 감사합니다.


    일반적으로 수요에 비해 공급이 부족한 상황에서는 커리어 체인지를 하며 오시는 분들이 많습니다. 예를 들어, 초기에 data scientist를 뽑을 때는 프로그래머 출신들이 수학 조금 배워서 오는 경우가 정말 많았습니다.

    이럴 땐 네 가지 정도를 얘기할 수 있을 것 같은데요,

    1) 전 직장에서 지금 지원하는 자리로 이어지는 스토리를 만들어 줄 필요가 있습니다. 그냥 찔러보는게 아니라, 예전부터 여기에 관심이 많았지만 나는 그땐 준비가 안되었었고 XX 같은 지식이 도움이 될 것이라고 여겨 일단 여기에서 경력을 쌓았다… 하는 식으로요.

    2) side project / udemy nano-degree / open source project 참여 등과 같이 퇴근 후에 따로 공부하시고 일해보신 내용이 지원하시는 새로운 직무와 비슷하면 큰 도움이 됩니다. 이건 찐 관심이거든요.

    3) 내가 아는 사람이 그 회사에 있으면 도움이 됩니다. 수요에 비해 공급이 없는 상황에선 누구라도 뽑아야 할텐데, 그땐 “얘가 이걸 아직 잘 알진 못해도 기초 탄탄하고 애는 착해” 이렇게 말해주며 추천해 줄 사람이 있으면 좋죠. 생각보다 회사에서 채용공고를 올리는게 부담되는 일일 수 있기 때문에 (어떤 프로젝트를 하는지 알려야 하고, 회사 입장에서 그 프로젝트에 대한 이해도가 어떤지 밝혀야 하는 등…) 내부 추천을 통한 채용이 많기도 합니다. 솔직한 제 의견은 경력 쌓고 나서는 웬만하면 내부 추천으로 가는게 여러모로 상호간에 도움이 되기 떄문에 이 방향을 제일 추천합니다.

    4) 일단 연봉을 낮춰서라도 관련 직무를 할 수 있는 곳에 들어간 후에 옮기시는 것도 방법입니다. 실제로 미국으로 오시는 분들이 이런 전략을 많이 씁니다.

  • 산들바람_
    3k
    2021-12-20 22:05:15

    혹시.. 국비지원 6개월하고 바로 최전선으로 뛰어들어 막 알파고 같은거 개발하는건 가능할까요 ?

  • 후하하핫
    5k
    2021-12-20 22:09:53

    @산들바람_: 어느정도 진지하게 여쭤보신 것인지 파악은 안되지만, 진지하게 여쭤보셨다고 가정하고 써봅니다.

    인공지능 업계의 가장 큰 어려움 중 하나는 인프라, 데이터 수집을 할 수 있는 여건과 처리를 하기 위한 서버 자원이 많은 회사가 잘할 수 있는 여지가 많다는 것입니다. 즉, FAANG이 인공지능을 잘할 확률이 높다는 것이고, 그런 최전선의 AI를 하고 싶으면 FAANG에 가야 합니다.

    안타깝게도 FAANG은 전세계의 개발자들이 다 가고 싶어하기 때문에, 공채를 뚫고 가려면 엄청난 경쟁을 이겨야 하고, 추천을 통해 들어가는 방법이 가장 가능한 방법인데 이 인맥을 국내에서 만드는게 쉽지 않습니다. (이게 국내에서 FAANG을 가기 어려운 이유 중에 하나입니다)

  • OKKY
    3k
    2022-01-01 02:39:32
    해당 게시물은 관리자에 의해 사는얘기에서 칼럼로 이동 되었습니다.
  • 로그인을 하시면 댓글을 등록할 수 있습니다.