"의사, 유튜버 보다 개발자." 과거로 돌아간다면 어떤 직업을 가질 것인가, 최근 한 설문조사 결과가 흥미롭다(인크루트, 23.2.23). 여기서 직장인 응답자 886명 중 84.3%가 현재 직업에서 다른 직업으로 바꿀 생각이 있다고 답했다. 그중 개발자(26%)가 가장 많았으며, 다음으로 유튜버(9.4%), 의사(7.4%) 등이 꼽혔다. 직업 만족도 관련해서는 업무와 처우 모두 불만족스럽다는 답변이 38.6%나 됐다. 그 이유는 낮은 연봉과 인상률(47.4%), 미래가 불안정한 직업(21.9%), 업무가 적성에 안 맞음(17.5%) 등이었다. 그렇다면 과연 개발자는 그 대안이 될까. 과거 열악한 근무환경에 부족한 처우로 IT 업계를 기피하지 않았나. 팬데믹이 끝나고 호황을 누리던 테크 기업의 감축 소식도 연이어 들려온다. "그럼 도대체 이게 무슨 일이지?" 아마 최근 광풍처럼 몰아닥친 챗GPT의 인기가 영향을 준 듯했다. 실제 "개발자 신규채용 40%가 AI... 기업들 없어서 못 뽑는다(아시아경재, 23.03.06)"고도 했다. 네이버, 카카오, 쿠팡 같이 알려진 큰 회사가 아니라면 해외에서라도 개발자들을 모셔와야 할 판이다. 반편, AI 기술이 소프트웨어 개발자, 웹사이트 개발자, 컴퓨터 프로그래머, 코딩 작성자, 데이터 과학자 등이 하는 업무를 시간이 지날수록 대체할 것이라는 전망도 있다(국민일보, 23.02.15). 결국 이런 새로운 기술을 리더 하는 '개발자 중의 개발자'만이 '살아남을 것'이란 건 어렵지 않게 예측해 볼 수 있다. 그것은 AI(인공지능)든 다른 분야든 다르지 않다. 생성과 소멸을 반복하는 것이 직업 트렌드라고 하지만 그 본질은 변하지 않는 것이다. 그렇다면 개발자의 본질은 뭘까.
첫 직장에서 개발자를 처음 접했다. 벌써 강산이 두 번 바뀌고도 남을 시간이다. 하지만 그때도 개발자의 존재감은 대단했다. 당시 대기업 통신장비 시험부서에서 일했다. 생산 라인에서 만든 제품을 출하 전 시험하고 불량품을 가려내 수리하는 것이 주 업무였다. 시험부서 특성상, 새로 개발한 초도 물량이라든지, 양산 전 시제품을 접할 기회도 많았다. 이때 어김없이 등장하는 사람들이 개발자였다. 개발자들은 신제품을 만들어, 일하는 판을 완전 바꿔놓기도 했다. 제품이 조금 인기를 얻어 수주량이 늘면, 생산 라인은 밤낮없이 돌아갔다. 한 부서가 하루 아침에 새로 생기거나 없어지기도 했다. 조금 과장하면, 개발자는 무에서 유를 만들어내는 신(?) 같은 존재였다. 이 '생산의 신'이 조그만 오류라도 낸다면 그야말로 한바탕 난리가 났다. 며칠 동안 만든 물량 전체를 수거해 폐기하거나, (그건 그나마 다행이다) '부품 갈이'를 통해 다시 멀쩡한 척 재생시켜야 했다. 시험부서에는 기판을 산더미 같이 모아 놓고, 일일이 그 안의 롬 같은 전자칩을 바꿔 끼운다고 애를 먹었다. 장치의 소프트웨어 버거 등 근본적 에러를 수리하기 위해서였다. 개발자들이 검증을 위해 직접 현장에 왕림하는 경우도 있었다. 고참 선배들이 에러 리포팅이나 신규 시험방법을 전수받기 위해 위해 개발실을 다녀오기도 했다. 신입사원 입장에서는 그것조차 부러웠다. 그러다, 직장 생활에 회의가 든 어느 순간, 이 개발자의 존재가 새삼 다르게 다가왔다. 뭔가 롤 모델 같이 느껴졌을까. 전 공장을 쥐락펴락하며 프로젝트를 주도하던 개발자처럼 '자신만의 뭔가'를 스스로 만들고 실현할 능력을 갖추지 못하면, 언젠가 기업의 부속품 같이 단 물 다 빠지면 내쳐질 것 같은 불안감에 휩싸이곤 했다. 이것이 자신의 능력치에 비해 명성도, 보수도, 꽤 괜찮았던 첫 직장을 떠나는 계기가 됐다.
개발자는 누구이고 어떤 일을 하는가. 개발자라고 하면 모든 분야 개발자를 말한다. 하지만 보통 소프트웨어, 게임 개발자 등을 먼저 떠올릴 수 있다. 영어로는 디벨로퍼(developer)다. 이 용어는 우리나라에서 주로 부동산 영역에서 많이 사용한다. 디벨로퍼는 부동산을 새로운 용도로 개발하는 업체로, 땅 매입부터 기획, 설계, 마케팅, 사후관리까지 총괄한다. 그럼 주요 관심사인 소프트웨어 개발자는 무슨 일을 할까. 아래 한국소프트웨어산업협회 자료에서 그 개념을 한눈에 파악할 수 있다. 소프트웨어 기술자는 많은 일을 하는데, 그중에서도 핵심이 소프트웨어를 개발하는 개발자라고 할 수 있다. 소프트웨어 개발에는 UI/UX개발, 응용 SW개발, 시스템SW개발, 임베디드SW개발 등이 있다. 아마 인력이 많지 않은 작은 기업에서는 이 중 여러 일들을 개발자가 홀로 처리하는 경우도 왕왕 있을 것이다.
개발 관련 일은 1번 사업관리부터 24번 농림어업 분야 직무 중 20번 정보통신 분야에 속한다. 여기에는 정보기술, 통신기술, 방송기술 3가지 중분류가 있다. 이 중에서 소프트웨어 개발은 정보기술(02.정보기술개발) 영역이다. 세분류로는 응용소프웨어부터 보안, 빅데이터, loT 등 16개가 있다. 그런데 지금 핫한 AI는 이 정보기술개발이 아니라 인공지능 영역에 별도로 구분되어 있다. 여기에는 플랫폼구축, 서비스기획, 모델링, 서비스운영관리, 서비스구현, 학습데이터구축 등 7가지 세분류가 있다. 그중에서도 애플리케이션 개발은 서비스구현에 속한다. 애플리케이션 개발자가 어떤 일을 하고, 무엇을 배워야 하는지는 아래 개요를 참고할 수 있다.
사실 이 정도만 봐도 비전공자는 머리가 지끈거릴 것이다. 그렇다, 개발자는 아무나 하는 것이 아니다. 개발자가 되는 것은 분명 특별한 직업적 능력이 필요하다. 하지만 자기 직업, 삶과 일의 개발자가 되는 것은 누구나 가능하다. 원하는 뭐든 다 만들어낼 수 있다는 개발자 정신만 있으면 된다. 이것은 퇴사를 거듭하며, 적성 개발자, 직무 개발자, 직업 개발자로 이어졌다. 자신이 직업 분야에서 챗GPT 같은 인공지능이 되었다고 생각해 보자. 자기에게 꼭 맞는 일과 직업생활을 찾아주고, 그것을 실현할 자신만의 구체적인 경력경로까지 짜주는 것이다. 원하는 직업 목표를 말하는 대로 척척 이뤄주는 AI 같은 능력이 있다면 얼마나 좋을까. 이런 바람에서 인공지능 애플리케이션 개발자의 업무처리 방식을 조금 더 들여다봤다.
위 직무표준을 보면, 인공지능서비스 애플리케이션 개발은 "비즈니스로직을 구현하고 플랫폼, 모델, 인터페이스를 연동하는 응용 소프트웨어를 개발하는 능력이다."라고 정의하고 있다. 여기서 핵심은 비즈니스 로직 구현이다. 나머지는 그것을 시스템에 연동하는 것이다. 이 자료에 따르면, 인공지능서비스 로직 구현은 전통적인 소프트웨어 개발 방식과 큰 차이가 있다. 인공지능서비스 로직 구현 과정에는 모델, 학습, 재학습 등의 과정을 통해 인공지능서비스가 비즈니스 목표를 지속적으로 달성하도록 안정화한다.
출처: NCS학습모듈_인공지능서비스 애플리케이션 개발
개인의 직업개발도 모델, 학습, 재학습의 과정을 거친다. 모델이란 진짜 자신이 원하는 직업적 목표, 또는 해결할 문제를 명확히 하는 것이다. 그것을 위해서는 먼저 주변 환경과 자신에 대한 이해가 필요하다. "적을 알고 나를 알면 백전무패"라는 말처럼, 자신의 처지와 적성을 분명하게 알아야 자기한테 꼭 맞는 일을 찾을 수 있다. 그래서 첫 직장에서는 '적성 개발자'가 되었다. 돈을 벌기 위해 일찍 큰 기업에 취업했지만 적성이 맞지 않았다. 그래서 전공을 전자공학에서 외국어로 바꿨다. 단조로운 일상을 극복하기 위해 세계를 무대로 신나게 할 수 있는 일들을 찾았다. 학습은 일경험을 쌓는 단계다. AI가 모델을 구현하기 위해 대량의 학습 데이터를 쌓는 것과 같다. 직접 경험해보지 않으면 결코 알 수 없는 부분이 있다. 그래서 두 번째 직장에서는 '직무 개발자'가 되었다. 새로 생긴 작은 공공기관이었는데, 여러 사람을 만나며 일경험을 쌓았다. 새로운 사업을 개발하고 처음 하는 일들의 매뉴얼을 만들면서 다양한 직무 이해를 높일 수 있었다. 일경험은 인턴이나 봉사, 개인 프로젝트 등 취업 전 활동을 통해서도 쌓을 수 있다. 가끔 채용면접을 볼 때 직원들 못지않은 '괴물 포트폴리오' 지원자들에 놀라곤 했던 기억이 난다. 재학습은 직장 등에서 일하다가 아니다 싶은 부분을 수정해 다시 도전하는 것이다. 아무리 좋은 직장이나 일도 막상 자신이 해보면 맞지 않는 경우가 있다. 최근 챗GPT를 탑재한 검색 엔진 '빙'이 괴기스러운 대답을 쏟아내는 바람에 수정 작업에 들어간 바 있다. 국내 AI 챗봇 이루다도 수년 전 혐오 발언 등으로 서비스를 중단하고, 재학습 과정을 거쳐야 했다. 직업 생활에서도 이런 오류는 종종 생긴다. 방대한 학습과 모델링 과정을 마쳤다 하더라도 현실은 다를 수 있기 때문이다. 퇴사는 이 단계에서 거치는 필수 과정이 된다. 경력경로의 마지막은 '직업 개발자'가 되기로 했다. 창직가가 되어, 어떤 직장도 줄 수 없는 자기 직업의 미래를 직접 설계해보고 싶었기 때문이다.
혹시 '퇴사의 시간'을 보내고 있는가. 그렇다면 경력개발을 위한 자신만의 '커리어 해커톤'을 열어보는 건 어떨까. 궁극의 직업 생활을 찾고, 자신의 '직업 인공지능'을 완성하기 위해서다. 그럴 때 비로소 누군가의 개발자 정신은 모두의 퇴사 정신이 될 수 있을 것이다.