저는 4년차 정도의 AI 개발자에요. 다양한 도메인에서 AI 기능을 개발하고 서비스화하는 작업들을 진행했어요. 하지만 몇년전까지만 해도 엑셀마저 능숙히 다루지 못할정도로 컴퓨터와 친하지 않았어요.
강의를 하면서 종종 수강생분들에게 이런 질문을 받았어요. 오늘은 강의 수강생분들에 질문에 대한 답변을 포스팅하려고 해요.
"전공이 아닌데 어떻게 AI 혹은 소프트웨어로 커리어를 쌓을 수 있을까요?
오늘은 이 질문에 대해서 저의 경험을 공유해드릴려고해요. 5년 전과 지금은 많이 달라졌고, 제 경험이 정답은 아니지만, 지금 돌이켜보니 그때의 경험이 나름의 가치를 지닌 것 같아요.
✅ 이런 분들이 읽으시면 좋을 것 같아요.
전공이 아니지만 개발자(AI개발자) 커리어를 쌓고 싶은 분
대학원 계획은 없지만 AI 개발자 커리어를 쌓고 싶은 분
개발자가 되기 위해서 어떤 공부를 해야 좋을지 고민이신분
✍🏻 요약
나는 왜 개발자에 관심을 가졌는가?
처음 나의 상태
첫 프로젝트
AI 개발자가 되기 위한 공부들
석사/박사 학위없이 AI 개발자가 될 수 있나요?
선택지를 많이 만들려면
어떤 길을 가시든 응원해요!
나는 왜 개발자에 관심을 가졌는가?
제가 처음 개발에 관심을 가졌던 것은 군복무 시절이었어요. 그 시기의 대부분의 사람들이 그러하듯 저 또한 진로에 대한 고민이 많았어요. 그 당시 전문직이 하고 싶어서 '감정평가사'라는 자격증을 공부할 계획이었어요. 그러던 중 EBS의 한 다큐멘터리를 보게되었어요.
굉장히 놀라웠어요. 13살의 아이가 췌장암키트를 인터넷을 가지고 저렴한 췌장암키트를 개발한 것이었어요. 이때 아직까지 배웠던 것들보다 앞으로 배울게 더 많겠다는 생각을 했어요.
그리고 앞으로 무언가를 처음부터 해야한다면 무엇이 좋을까에 대한 고민을 하였고 그 중 하나가 소프트웨어였어요. 소프트웨어는 소수의 인원으로 큰 임팩트를 낼 수 있는 도구라고 생각했어요. Instagram은 13명의 직원으로 메타(전 페이스북)에게 10억달러에 매각되었어요.
소프트웨어는 굉장히 광범위한 범위에요. 프론트엔드, 백엔드, 인프라, 임배디드, AI 등 다양한 분야가 있고 세부적으로 들어가면 더 다양한 분야가 있어요. 당시에는 아는 것이 없었기 때문에 "소프트웨어"라는 키워드만 막연히 알고 무엇을 해야할지 고민하기 시작했어요.
처음 나의 상태
제대후에 소프트웨어에 대해서 아무것도 아는 것이 없어서 인터넷 검색을 시작했어요. 그 당시 검색을 해보니 이런 내용이 많았던 것 같아요. 돌이켜보면 이 정도의 지식은 그리 큰 도움은 안되었던 것 같아요.
C언어부터해야 기초가 튼튼하다.
파이썬으로 시작해도 좋다.
실제로 저는 C언어 책을 사서 똑같이 따라 해보기도 했는데 동기부여나 큰 도움은 안되었던 것 같아요. 왜 C언어를 사용하는지 모르고 따라만 했기 때문에 효용감을 느끼지 못했어요.
다시 그 시절로 돌아간다면,
아마 비전공자분들도 비슷한 고민을 할 것 같아요. 제가 다시 그 시절로 돌아간다면, 가고 싶은 기업의 채용공고를 보고 어떤 기술스택들을 요구하는지 살펴볼 것 같아요. 그리고 기술스택이 왜 사용되는지 조사해볼 것 같아요. 어떤 기술 스택을 공부하던 결국 "도구"라는 관점에서 바라보면 좋을 것 같아요. 왜 하는지를 이해할 수 있으면 더 잘 익힐 수 있다고 생각하고 있어요.
첫 프로젝트
첫 프로젝트는 App Inventor라는 노코드 도구로 자신만의 앱을 만드는 것이었어요. App Inventor는 웹 브라우저에서 간단하게 앱을 만들 수 있는 노코드 도구에요. 비전공자 대상의 대학교의 교양수업이었고 교수님이 굉장히 열정적이셨어요.
수업은 재밌게 들었지만, 마지막 과제가 자신이 기획한 서비스를 직접만드는 것이었어요. 기억으로 당시 20명정도 되는 학생중에서 마지막에 완성한 학생이 두 명 정도였던 것 같아요. 아무리 노코드를 사용한다고 해도 개발의 벽이 높았어요. 실제로 개발하면서 정신적으로 큰 고통을 받았어요. 개발에 대한 지식이 없으니 왜 안되는지 전혀알 수 없었어요.
당시 기획한 앱은 대학교 친구들끼리 공강시간을 입력하면 공통적으로 비는 시간을 알려주는 앱이었어요. 지금 생각해보면 기초적인 수준의 앱이지만 당시 이것을 구현하는데 데이터베이스가 필요했지만 저는 데이터베이스라는 것을 들어본적이 없었어요. 당연히 에러는 발생했고 구글링을 정말 많이했어요. 아무것도 이해하지 못한채로 하라는 것을 다 하다보니 앱이 동작은 했어요.
비유를 하자면 지뢰찾기 규칙을 모른채로 지뢰찾기 게임을 깬 것과 비슷한 과정처럼 노코드 도구에서 시도해볼 수 있는 시도들을 거의 다 해봤어요. 이 프로젝트를 마치고 소프트웨어를 더 공부하고 싶어서 대학교에서 지원하던 "소프트웨어 연계전공"을 지원하고 공부를 더 했어요.
다시 그 시절로 돌아간다면,
개발하고 있는 영역과 관련있는 것을 공부하면 좋을 것 같아요. 예를 들어 데이터베이스면, 데이터베이스라는 것이 무엇이고 이것이 App Inventor와 어떻게 연동되는지 살펴봤을 것 같아요. 개발하면서 발생한 문제는 공부할 때 중요한 자원이라고 생각해요. 문제가 왜 발생했는지를 정확히 이해하고 다음에 같은 문제가 발생했을 때 효과적으로 해결할 수 있어야 좋은 개발자라고 생각해요.
AI 개발자가 되기 위한 공부들
여러 개발영역중에 AI쪽이 가장 매력적으로 느껴졌어요. 사람이 해야하는 일을 인공지능이 처리한다는 컨셉이 매력적으로 느껴졌고 직업적인 가치도 높을 것이라고 생각했어요.
수학과 딥러닝 공부했던 자료
AI 개발자가 되기 위해서는 수학, 딥러닝, 컴퓨터 공학에 대해서 역량을 쌓아야 했어요. 문과생 출신이었기 때문에 기하백터나 선형대수에 대한 지식이 없었어요. 그래서 인터넷강의를 들으면서 부족한 수학지식을 채웠어요. 몇 가지 들었던 강의를 추천드리면, 아래와 같아요.
선형대수학의 본질(3Blue1Brown, 600만 구독자)
그리고 확률통계에 대한 지식을 채우기 위해서는 아래 강의를 들었어요.
statistic 110: probability (하버드대학 강의)
그리고 딥러닝 지식은 유명한 CS231n을 수강했어요. 강의에서 나오는 예제를 직접 구현해보면서 지식을 많이 쌓을 수 있었어요. 특히 기억나는 것은 프레임워크를 사용하지 않고 직접 딥러닝 모듈들을 구현했던 경험이에요. 구현하면서 어렵긴 했지만 지식이 더 선명해졌어요.
컴퓨터 공학 공부했던 자료
컴퓨터 운영체제는 학생시절에 열심히 공부하지 않았어요. 당시에 딥러닝에 비해서 중요도가 떨어진다고 생각했었는데 큰 오산이었어요. 소프트웨어 업계에서 지속적인 성장을 하려면 컴퓨터 동작에 대한 이해도가 있어야한다고 생각해요.
결국은 나중에 OSTEP라는 교제로 공부했어요. 이런 강의도 있으니 참고해보시면 좋을 것 같아요!
https://oslab.kaist.ac.kr/ostepslides/
컴퓨터 네트워크도 열심히 공부하지 않았어요. 결국에 나중에 공부를 하였어요. 앱을 개발하던, 서버를 개발하던 네트워크 통신은 대부분 발생해요. 지금 여러분이 이 글을 보고 있을 수 있는 것도 통신이 없었으면 불가능해요.
컴퓨터 네트워크는 이 책을 보면서 많이 익힐 수 있었어요. 비교적 쉬운 예시와 그림으로 컴퓨터 네트워크를 쉽게 익힐 수 있어요.
컴퓨터 알고리즘도 중요하다고 생각해요. 저는 취업할때 많은 도움을 받을 수 있었어요. 알고리즘을 공부하기 위해서 책도 봤지만 문제를 많이 풀어본 것이 도움이 되었어요.
다시 그 시절로 돌아간다면,
컴퓨터 기초에 대한 지식을 더 열심히 공부했을 것 같아요. 컴퓨터 공학에 대한 공부는 이미 취업을 한 후에 진행했어요. 업무를 마치고 혹은 주말에 공부를 했는데 학생때 공부하던 것보다 더 힘들었어요. 컴퓨터 공학에 대한 기초적인 학문은 대학교에서 배울 수 있다면 열심히 배우시는 것을 추천드려요. 여러분 커리어에 복리로 도움이 될 것이라고 생각해요!
석사/박사 학위 없이 AI개발자가 될 수 있나요?
위의 질문에 답하기 전에 AI 개발자에 대해서 더 세부적으로 알아보면 좋을 것 같아요. AI 개발자는 크게 두 가지 영역으로 나누는 것 같아요. 연구자 성격이 강한 Research Scientist와 엔지니어링 성격이 강한 Machine Learning Engineer로 나눌수 있어요. Meta를 예로 들어볼게요.
요구사항에 보면 Machine Learning PhD(박사학위)를 가지고 있거나 진행중인 사람을 채용하고 있어요. 연구성격의 작업이 많기 때문에 학위를 요구하고 있어요.
Software Engineer, Systems ML
위의 Job Description은 컴퓨터 공학 학사 학위를 요구하고 있어요. 그리고 높은 수준의 인프라, 컴퓨터 공학 지식을 요구하고 있어요. 이처럼 AI 개발자라고 하더라도 세부적으로 들어가면 서로 일을 대체하기 힘들정도로 업무가 분리되어 있어요.
"석사/박사 학위 없이 AI 개발자가 될 수 있나요?" 이 질문을 수강생분들에게 들었을때 여러가지 생각이 들었어요. 저는 대학원을 가지 않았고 AI 개발자로 취업을 한 케이스에요. 하지만 이는 2019년도의 이야기에요. 지금은 그때와 시장이 많이 달라졌어요. 그때 당시는 AI에 사회적인 관심도 많았고 투자도 적극적인 시기였어요. 하지만 2024년 8월인 지금은 경제상황도 많이 달라졌고 AI 거품에 대한 우려도 많아졌어요.
저는 석사/박사 학위 없이 AI 개발자가 될 수 있다고 생각해요. 그리고 대학원에 가서 공부를 하는 것도 좋다고 생각하고 있어요. (개인적으로 40대전에 대학원에 가서 하고 싶은 공부가 있어요) 하지만 대학원 과정을 고민하기전에 선행되어할 것이 자신이 되고 싶은 것을 자세히 파악하는 것이라고 생각해요. 예를 들어, AI 개발자라는 직책보다는 이 직책에서 요구되는 것이 무엇이고 이것을 왜 사용하는지 이해하는 것이 선행되면 선택하실 때 도움이 많이 되실 것 같아요.
선택지를 많이 만들려면,
시대는 정말 빠르게 변화하고 있고 AI 도메인은 다른 영역보다 더 빠르게 변화하고 있어요. 한달마다 새로운 모델들이 발표되고 더 좋은 성능으로 더 낮은 가격으로 발전하고 있어요. 그리고 ChatGPT 등 LLM의 발전으로 작업 속도 뿐만 아니라 학습속도도 빨라지고 있다는 것을 체감하고 있어요. 게다가 도구들의 발전으로 한팀이 하던 업무를 혼자서도 처리할 수 있는 시대가 된 것 같아요. 실제로 최근에 한 프로젝트에서 프론트엔드, 백엔드를 모두 혼자서 작업했고 큰 무리가 없었어요.
이런 시기에는 선택지가 많아야 안정적이라고 생각해요. 한 가지 컴퓨터 언어만 다룰줄 아는 사람보다는 한달내에 새로운 언어를 가지고 프로젝트를 시작할 수 있는 사람이 기회가 많을 것이라고 생각해요. 대신, 기초지식이 튼튼할수록 새로운 것을 배울 때 더 적은 시간으로 공부할 수 있는 것 같아요. 그리고 배울수록 학습시간이 줄어드는 것 같아요. 마치 복리처럼 시간이 지날수록 더 적은 시간으로 더 높은 학습력을 가질 수 있다고 생각해요.
어떤 길을 가시든 응원해요!
자신이 공부했던 분야가 아닌 다른 분야로 도전하는 것은 항상 어렵고 망설여지는 것 같아요. 저는 이럴때 너무 먼 미래를 바라보는 것보다는 눈앞에 있는 작은 과제에 집중하는 경향이 있어요. 눈앞에 과제를 잘 해결하면 다음 길이 열린다고 생각했어요. 새로운 분야를 공부하는게 쉽지 않겠지만, 하나씩 하나보면 언젠가 원하시는 결과를 얻으실것이라고 생각해요!
댓글
의견을 남겨주세요