AI 회사에서 소프트웨어 엔지니어는 무슨 일을 하나요?

2022/03/04

⏱ 15mins 
  • 제이미 (콘텐츠 마케터)

    이 글은 <업스테이지 토크 Vol.20. 업스테이지 토크 Vol.20 프론트, 백엔드 개발자가 AI 회사에서 뭐 해요?>를 재구성하여 작성되었습니다.

  • AI 회사에서 소프트웨어 엔지니어들의 역할이 궁금하신 분

    AI 회사(업스테이지)의 소프트웨어 엔지니어 영입 프로세스가 궁금하신 분

    AI 회사의 소프트웨어 엔지니어가 되기 위해 필요한 AI 지식수준이 궁금하신 분

  • AI 회사는 소프트웨어 엔지니어의 위치와 역할은 AI 개발자에 비해 낮다? 이 질문의 답은 ‘NO’입니다. 업스테이지의 휼륭한 AI 제품을 만들기 위해 소프트웨어 엔지니어들이 맡는 중요한 역할 소개는 물론 좋은 소프트웨어 엔지니어의 역량과 필요한 스킬들을 최고의 소프트웨어 엔지니어분들이 직접 알려드립니다.

  • ✔️AI 회사 내 소프트웨어 엔지니어 직무에 대한 오해

    ✔️AI 회사의 소프트웨어 엔지니어가 직접 답해주는 Q&A

    1. AI 회사에 들어가기 위해 소프트웨어 엔지니어로서 갖춰야 할 AI 지식수준은?

    2. AI 엔지니어와의 소통에서 겪는 어려움과 필요한 배경지식 수준은?

    3. AI 기술 개발이 메인이고, 소프트웨어 엔지니어는 서포터 역할을 하나요?

    4. 좋은 소프트웨어 엔지니어가 되기 위해 기울여야 할 노력은?

    5. 좋은 소프트웨어 엔지니어에게 꼭 필요한 역량은?

    ✔️좋은 소프트웨어 엔지니어를 선별하는 업스테이지의 채용 프로세스

 

들어가며

📍AI 회사에서 소프트웨어 엔지니어들은 무슨 일을 하나요?

업스테이지를 포함한 AI 회사에 다니시는 많은 소프트웨어 엔지니어 분들이 한 번쯤 들어봤을 법한 질문입니다. 온라인상에서 자세한 정보를 찾기 힘든 분들을 위해 준비했습니다. 최근 더욱 핫해진 AI 분야로의 커리어 패스를 그리고 계신 개발자분들이라면 주목해보세요. AI 회사에 다니는 소프트웨어 엔지니어와 관련해 여러분의 궁금증과 오해를 해소해드리고, 국내외 탑 IT 기업 출신의 소프트웨어 엔지니어들이 전하는 꿀팁까지 준비했습니다.

AI 회사 내 소프트웨어 엔지니어 직무에 대한 오해

AI 회사를 머릿속으로 그려보세요. 소프트웨어 엔지니어로서 아래와 같은 궁금증과 오해가 떠오르시나요?

👉 AI 엔지니어(AI Research Engineer)가 아닌 개발자는 채용하지 않을 것 같다.

👉 AI 회사에서 소프트웨어 개발자는 중요한 위치를 차지하지 못할 것 같다.

👉 개발자들의 성장을 위한 도전적인 과제가 없을 것 같다.

저희의 답은 ‘아니다’입니다. 왜 그런지 업스테이지의 사례를 들어 설명해보겠습니다.

업스테이지는 ‘AI Pack’이란 AI 제품을 개발하고 있습니다. AI Pack은 AI 기술 도입에 어려움을 겪는 기업들이 손쉽게 AI를 적용할 수 있도록 도와주는 ‘올인원 AI 솔루션'입니다.

AI Pack은 올인원이란 수식답게 AI/ML 모델만을 전달하는 제품이 아닙니다. AI 모델만 전달한다면 AI 모델을 변화하는 환경과 니즈에 맞춰 기업이 직접 운용, 유지보수, 업데이트하는 데 어려움이 생길 수 있죠. 그래서 업스테이지는 기업들이 손쉽게 AI 기술을 내재화할 수 있도록 AI 모델 구동을 위해 꼭 필요한 시스템과 툴들(어느테이션 툴, 서빙 및 데이터 플랫폼 등)을 함께 제공합니다.

그런 시스템과 툴을 기획, 제작하는 역할을 업스테이지의 훌륭한 소프트웨어 엔지니어들이 담당하고 있습니다. AI 모델 개발을 담당하는 AI 모델 개발자와 AI 모델을 실서비스에 도입했을 때 좋은 퍼포먼스를 내는 데 필요한 수많은 시스템과 툴을 담당하는 소프트웨어 엔지니어가 공동의 목표를 향해 함께 일하는 환경을 가지고 있습니다.

[그림 1]은 AI Pack 구성에 관한 간략한 요소들을 나타낸 이미지입니다. 하나의 패키지로 모든 요소를 담아 전달하는 게 AI Pack의 핵심이라 앞서 소개해 드렸습니다. 회색 박스의 ML Code를 제외한 나머지 박스들이 업스테이지의 소프트웨어 엔지니어분들이 담당하시는 개발 영역입니다. 그래서 하나의 AI 제품이 나오기까지 소프트웨어 엔지니어의 역할도 매우 중요하답니다.

[그림 1] AI Pack 제품 개발 내 소프트웨어 엔지니어의 역할

AI Pack과 AI Pack을 만드는 데 소프트웨어 엔지니들의 역할에 대한 더 자세한 설명은 [Upstage Talks] 프론트, 백엔드 개발자가 AI 회사에서 뭐해요?를 통해 확인해보세요!

이제 앞선 질문에 하나하나 답해드리겠습니다.

📍궁금증 1. AI 엔지니어(AI Research Engineer)가 아닌 개발자는 채용하지 않을 것 같다.

👉 NO! AI 연구자뿐만 아니라 AI 제품을 구현하기 위해선 훌륭한 ‘소프트웨어 엔지니어’가 필요하며, 해당 직무를 담당하는 분들을 적극적으로 채용하고 있습니다.

📍궁금증 2. AI 회사에서 소프트웨어 개발자는 중요한 위치를 차지하지 못할 것 같다.

👉 NO! 모든 회사가 그렇듯, 모든 구성원이 중요합니다. 각자의 자리에서 맡은 역할을 해나가며, 타 팀과 독립적이지만 유기적으로 업무를 진행합니다. 업스테이지가 일하는 방식인 Upstage Way에도 이런 가치가 잘 반영되어 있습니다! 하나의 완벽한 제품을 만들어 내기 위해 AI 연구자와 개발자는 물론 프로덕트 디자이너, 그 외 많은 유관 부서와 수평적인 관계 속에서 함께 일하고 있습니다.

📍궁금증 3. 개발자들의 성장을 위한 도전적인 과제가 없을 것 같다.

👉 NO! 개발자들은 서비스 측면에서 고객에게 좋은 가치를 전할 수 있는 제품을 함께 만들어 갑니다. 제품의 편리한 기능과 최적의 성능을 구현하기 위한 여러 업무를 담당해가며 개인 성장과 커리어 성장을 동시에 달성할 수 있습니다.


AI 회사의 소프트웨어 엔지니어가 직접 답해주는 Q&A

지금부터는 업스테이지의 소프트웨어 엔지니어분들이 AI 회사의 업무와 소프트웨어 엔지니어 역량에 대한 궁금증을 Q&A 형식으로 풀어드립니다.

📍 Q1. AI Product를 만들기 위해서 소프트웨어 엔지니어가 가져야 할 AI 지식 수준은 어느 정도인가요?

👉 AI/ML에 대한 배경지식이 없으셔도 무관합니다. 그러나 기초 용어와 개념 이해가 있으시다면 업무가 한층 편해집니다. AI 회사에 지원하고 싶지만, AI 이해가 부족하고 관련 백그라운드가 없으셔서 고민하고 계신가요? 그렇다고 해서 지원을 망설이실 필요는 없습니다. AI 회사라 할지라도 소프트웨어 엔지니어에게 요구되는 자질은 ‘엔지니어링에 대한 지식과 숙련도’입니다. AI 기술에 대한 흥미와 관심이 있다면 입사 후에도 충분히 지식을 쌓아갈 수 있습니다. 업스테이지는 매주 ‘모두가 이해할 수 있는 AI 스터디와 세미나’를 진행하고 있습니다. 개발자, 전략팀, 마케팅팀 등 모두가 함께 즐겁게 AI 공부를 해나가고 있습니다.

📍 Q2. AI 에 관한 배경지식이 없으면 AI 엔지니어와 소통에 어려움을 겪나요?

👉 위의 질문에 이어 답하겠습니다. AI 엔지니어분들과 소통할 때, AI 관련 개념이나 개발 프로세스에 관한 이해가 부족하다면 당연히 어려움을 겪을 수 있습니다. 이건 분야를 막론하고 동일할 것입니다. 그럴 때 가장 중요한 건, 모르는 것을 바로바로 물어볼 수 있는 적극적인 자세입니다.

실제 현장에서의 어떤 지식이 필요할까 궁금하신 분을 위해 조금 더 이야기해보겠습니다. ML 기술을 만드는 팀과의 협업이 잦은 만큼, 데이터셋이 무엇인지 정도의 배경지식과 ML 기술에 대한 기초 개념을 학습해보시는 건 어떨까요? 기초 개념만 익히고 들어와도 커뮤니케이션 문제가 확연히 줄어들 거라 생각해봅니다. 학습 능력과 배움과 성장에 대한 자세만 있다면, AI 분야에서도 본인 직무를 충분히 수행하실 수 있을 것입니다.

📍 Q3. AI 기술이 메인인 회사에서 일하면서 소프트웨어 엔지니어가 서포터 역할이라고 느끼신 적 있으신가요?

👉 그런 고민과 걱정은 하지 않으셔도 됩니다. 서비스 개발에 참여해보신 분이라면 아실 테지만, 한 팀이 메인이고 나머지가 메인을 서포트하여 제품을 완성하는 경우는 드문 경우입니다. 팀마다 주어진 역할이 온전히 수행될 때, 비로소 좋은 프로덕트가 나오게 됩니다. AI Pack의 예시를 들어보겠습니다. AI 모델이 AI Pack의 핵심 부분이기도 하지만 그 외로 여러 인프라와 시스템 등이 함께 서빙되어야만 합니다. AI Pack의 온전한 가치가 전달되기 위해선 소프트웨어 엔지니어의 역할도 매우 크다고 할 수 있습니다.

또한, 업스테이지를 포함한 AI 회사에서 소프트웨어 엔지니어가 담당하는 일이 다른 분야에서도 동일하게 해온 일입니다. 앞으로도 해나갈 일이기도 하죠. 그래서 AI 회사이기에 그간 전혀 접해오지 못한 새로운 업무가 주어지거나 소프트웨어 엔지니어로서 새로운 역량이 요구되지 않습니다.

📍 Q4. 좋은 소프트웨어 엔지니어가 되기 위해서는 어떻게 노력을 기울여야 할까요?

👉 개발자는 코딩이란 활동을 통해 본인의 퍼포먼스나 성과를 만들어 냅니다. 그래서 코딩은 무조건 많이 해봐야 합니다. 알고리즘을 푸는 코딩뿐 아니라 실제 현업에 도움이 될만한 코딩을 해보는 것이 도움이 됩니다. 예를 들어, 유명 서비스를 똑같이 구현해보는 Cloning을 해본다거나, 본인이 관심 있는 분야에 관한 오픈 소스 프레임워크를 잡아 깃헙 트래킹을 통해 소스 코드를 이해해보는 것도 하나의 학습 방식일 수 있습니다. 일종의 쉐도잉 학습을 통해 본인이 몰랐던 패턴을 이해하고 학습해보는 방식이 코딩 실력 향상에 도움이 되리라 생각됩니다.

📍 Q5. 그외 좋은 소프트웨어 엔지니어에게 요구되는 역량이 있을까요?

👉 커뮤니케이션 역량입니다. 좋은 커뮤니케이션 스킬이란 함께 일하는 동료들에게 신뢰를 줄 수 있는 초석과도 같습니다. 회사 내에서 명확하고 원활한 의사 전달은 여느 직무를 막론하고 매우 중요하죠. 팀원들과 서로 상충하는 의견들을 해결할 때, 낯선 AI 개념에 대해 타 부서의 동료들에게 물어봐야 할 때. 여러 상황에 어떻게 대처하느냐가 좋은 개발자냐 아니냐의 판단 기준일 수도 있을 것 같습니다. 어떻게 커뮤니케이션하느냐에 따라 얻을 수 있는 정보의 양과 질이 달라질 수도 있기 때문이죠.

커뮤니케이션 스킬을 높이는 데 좋은 창구 중 하나는 개발자 커뮤니티입니다. 커뮤니티 참여를 통해 다양한 개발자와 소통, 발표 경험을 쌓아가며 개발자로서의 커뮤니케이션 역량을 높일 수 있겠죠. 게다가 커뮤니티 내에서 다양한 양질의 지식과 정보를 오가기 때문에 개인 성장에도 도움이 될 것입니다. 실제로 많은 업스테이지 개발자분들도 다양한 커뮤니티에서 활발히 활동하고 있습니다.

좋은 소프트웨어 엔지니어를 선별하는 업스테이지의 채용 프로세스

📌 서류 심사

서류 심사에선 지원자가 참여한 프로젝트와 연구 및 대회 참여 이력 등의 이력 사항을 확인합니다. 신입 채용에 있어 나이와 학력 제한은 없습니다. 합법적으로 일할 수 있는 연령이면 나이 제한이 없으며, 학력도 무관합니다. 현재 함께 일하는 동료는 학부생부터 20년 이상 경력의 시니어까지 다양합니다.

📌 코딩 테스트

코딩 테스트에선 지원자의 문제해결 능력, 기본 코딩 실력, 자료 구조화 알고리즘의 이해 수준을 파악합니다. 과제를 통해 정량적 실력을 평가합니다. 훌륭한 실력을 갖춘 소프트웨어 엔지니어인지를 확인하는 대다수의 IT 회사와 유사한 방식의 테스트입니다.

📌 동료 인터뷰

동료 인터뷰에선 컴퓨터 사이언스(CS) 지식을 중점적으로 알아보고자 합니다. 또한 이전에 참여했던 프로젝트 또는 CS 관련 경험에 관한 대화를 나누게 되죠. 지원자가 풀어낸 문제와 그 문제를 해결하기 위한 논리와 방식을 잘 전달할 수 있는지에 대한 부분도 함께 보게 됩니다. 추가로 주니어라면 컴퓨터가 어떻게 동작하는지에 대한 기초적인 CS 이해 질문도 있을 수 있습니다.

📌 화이트 보드 인터뷰

화이트보드 인터뷰에 드리는 문제는 2차 코딩 수준과 유사하거나 쉬운 문제를 드립니다. 저희가 궁금한 점은 지원자가 문제를 푸는 과정입니다. 문제 풀이 과정에서 면접관과의 커뮤니케이션 능력, 문제 접근 방식 등을 확인하게 됩니다. 이전 질문에서 다룬 커뮤니케이션 능력이 좋은 소프트웨어 엔지니어의 자질이란 부분과 일맥상통하겠죠?

추가로, 시스템 디자인 테스트 관련 질문에 대해서도 간략히 말씀드려보겠습니다. 우선 지원자별로 차이가 있을 수 있습니다. 외국에서 일반화되어 가고 있지만, 국내에서 아직은 생소한 개념인 듯합니다. 그래서 2차 화이트보드 인터뷰 과정에서 ‘화이트보드 코딩 + 시스템 디자인'을 섞어 여쭤보기도 합니다. 주니어의 경우, 역량 평가에 대한 어려움이 있어 여러 이력 사항과 역량을 고려하여 테스트 여부를 결정한다는 점 참고 부탁드립니다.

📌 최종 면접

최종 단계는 컬쳐 인터뷰와 대표 인터뷰입니다. 시니어라면 프로젝트 리딩 경험과 동료 매니징 경험을 여쭤봅니다. 지원자의 기술적 역량과 참여 프로젝트는 앞서 확인했기에 팀 전체를 매니징할 수 있는 사람인지를 중점으로 보게 됩니다. 업스테이지가 바라는 인재상과 문화에 적합한지, 업스테이지의 성장에 기여할 수 있는지, 회사와 지원자 간의 핏을 확인하는 자리라고 생각해주시면 될 것 같습니다.

(면접 프로세스는 지원자마다 다를 수 있습니다. 대략적인 프로세스에 대한 이해를 돕기 위한 참고용 설명입니다)


마치며

지금까지 AI 회사에서 소프트웨어 엔지니어가 하는 일, 그리고 업스테이지 소프트웨어 엔지니어들과의 Q&A를 통해 소프트웨어 엔지니어에 관한 이모저모를 알아보겠습니다. AI 회사라 할지라도, 소프트웨어 엔지니어는 한 회사의 구성원으로서 매우 중요한 역할을 담당한다는 점을 확인하실 좋은 기회가 되셨길 바랍니다. 엔지니어링 능력, 커뮤니케이션 능력, 그리고 배움의 자세만 있다면, AI의 문, 업스테이지의 문은 언제나 활짝 열려있습니다.

위 콘텐츠는 업스테이지 토크 <업스테이지 토크 Vol. 20 프론트, 백엔드 개발자가 AI 회사에서 뭐 해요?>를 통해 영상으로 확인할 수 있습니다. 블로그에서 미처 확인하지 못한 업스테이지가 만드는 AI Pack에서 소프트웨어 엔지니어가 담당하는 일, 프론트엔드와 백엔드의 역할 구분, AI 회사에서 사용하는 개발 및 공유 툴, 업스테이지 소프트웨어 엔지니어가 추천하는 책과 콘텐츠, 업스테이지의 채용 기준 등 더욱 풍성한 내용을 함께 알아보세요.



  • 업스테이지는 ‘Making AI beneificial’이란 미션 아래, AI로 더 이로운 세상을 만들어가기 위해 OCR Pack, 추천 팩 등의 AI 제품을 개발하고 있습니다. 업스테이지에는 아마존, 다음, 네이버, 카카오 등 유수의 기업 출신의 열정 가득한 뛰어난 소프트웨어 엔지니어분들이 함께하고 있습니다. 그들과 함께 새로운 커리어 성장의 기회를 지금 바로, 경험해보세요! 선 지원, 후 고민!

    영입 중인 공고 바로가기

    업스테이지 홈페이지 바로가기

 
Previous
Previous

AI 회사에서 프로덕트 디자이너는 무슨 일을 하나요?

Next
Next

서비스 향 AI 모델 개발하기 EP.4 AI 모델 개발을 위한 효율적인 AI 팀 구성법