[개안뽑] ㉗ElasticSearch 쓰는 방식으로 본 한국 개발자 vs. 해외 개발자

pabii research
자기가 하고 싶은 일이 '기술을 써 봤다'는 자랑이 아니라, 
회사에서 필요한 기능을 효율적으로 해 줄 수 있는 것이어야 한다는 사고 방식이 장착 안 된 경우가 너무 많아
사업 목적을 이해하고, 회사가 필요한 것에 맞춰 선제적으로 대응할 수 있어야 진짜 고급 개발자
개발 플랫폼들을 다양하게 써 본 경험은 피상적인 능력치에 불과해

기업을 만드는 이유가 뭘까? 그냥 남 밑에서 일하기 싫으니까 창업하는건가? 아니면 자기가 만들고 싶은 상품, 시장에 없는 상품인데 시장에서 수요가 있을 것 같은 상품을 만들어 낼 수 있는 능력이 있기 때문일까? 그런 능력과 열정이 있는데, ‘왕관을 쓰려면 그 무게를 이겨내야 한다’는 표현 속에 함축된 어려움을 모두 극복해낼 수 있는 의지까지 갖추고 있기 때문일까?

그간 개발자들을 뽑아보면서, 좀 더 넓게는 디자이너와 기획자까지 범위를 넓혀서 자칭 ‘기술직’에 있다고 하시는 분들에게서 공통적으로 느낀 건데, 이분들 중 많은 숫자가 ‘내가 하고 싶은 일’에 대한 관심이 매우 높은 편이다. 대학 동기들 중 압도적인 대다수가 그저 남들이 보기에 그럴듯한 직장을 갈려고 했었는데, 나처럼 딱 이런 종류의 일자리를 찾겠다며 1개 직군에 일점사를 하는 경우가 드물었던터라 처음에는 참 신기하고, 반갑고 그랬었다.

그런데, 시간이 지나면서 이 분들이나 나 같은 사람들이나, 회사가 원하는 것을 해야된다는 책임감이 약하고, 내가 하고 싶은 일에 지나치게 치중하는 경우들이 많다는 것도 알게 됐다. 그저 공무원들처럼 하루하루 시간만 보내고, 안 짤리기만 바라고 있는 직군들이 자기 발전이 0에 수렴한 채로 직장을 다니는 것에 비하면 훌륭한 자세라고 생각하지만, 반대로 자기가 하고 싶은 것만 찾기 때문에 회사가 잘 돌아가도록 만들기가 매우 어렵다. 즉, 또 다른 의미에서 회사 직원으로 월급 받는 값을 못 하는 사람들인 것이다.

개발자-안-뽑음_202312
개발자-안-뽑음_202312

회사가 필요한 일 vs. 자기가 하고 싶은 일

보통 회사가 필요한 일을 수익을 창출하는 일이라고 하면, 직원들이 하고 싶은 일은 몰래 숨어서 놀고, 일도 안 하지만 정작 연봉은 많이 받고 싶은 일이라고 하면 될까? 군대식 용어로 ‘땡보’에 해당하는 가벼운 업무를 하면서 고액 연봉을 받고 싶은 사람들의 심리야 충분히 이해가 되는데, 개발자들이 회사 사정에 전혀 맞지 않는 고급 언어로 고급 개발을, 회사가 쓸 일이 없는데도 불구하고 만들고 싶다고 고집을 피우는 장면을 볼 때마다

차라리 그만둔다고 그러지 왜 저렇게 앞뒤 꽉 막힌 소리들을 할까

는 생각을 안 할 수가 없다.

사실 회사에 그 어떤 직원을 뽑아도 자기가 하고 싶은 일을 나만큼 미루고 참고 있는 인력은 없을 것이라고 꽤나 장담할 수 있다. 난 수리통계학 훈련도가 전세계 상위 0.01% 수준인 인재들이 풀어내는 문제들을 사업에 적용해볼려고 창업을 한 사람인데, 그간 내가 가장 가까이 간 사례는 SIAI에서 MSc AI/Data Science 교육 과정의 시험 문제를 만들었던 것에 불과하다. 한국에서 제대로 풀어내는 사람 1명 찾기 힘들다는 것을 시간이 지나면서 깨닫는 중이지만, 정작 글로벌 명문대의 학부 3~4학년 수준에 불과한 문제들인데, 그 문제 만드는게 한국 귀국해서 내가 가장 머리를 복잡하게 쓴 업무였다.

근데, 개발자들을 뽑아놓으면 회사에 트래픽이 1억, 10억이 되어야 쓸 의미가 있는 개발 플랫폼(자기네들은 ‘기술’이라고 부르더라)들을 써야된다고 주장한다. 자기가 그걸 써 보고 싶은데, 다른 회사들은 그걸 안 쓰고, 나는 그런 도전을 하는 인간이니까 여기에 찾아온 거겠지? 근데, 나도 그걸 쓰고 싶은 욕심만 있는 상태지, 회사 사정이 그걸 쓸 수가 없다. 좀 더 넓게 보면, 한국 전체에 그런 개발 플랫폼을 쓸 만한 사업체를 꾸리는 곳이 아예 없다는 생각도 든다. 한국 인구가 고작 5천만에 불과하잖아?

그런 분들은, 자기가 그런 ‘기술’을 쓰고 싶으면 회사에서 그 ‘기술’이 왜 필요한지를 설득해야 되는데, ‘안 시켜주면 나간다’ 정도가 그 분들의 사고 방식이다. 정작 그 ‘기술’을 써서 만든 상품으로 어떻게 시장에 팔아야 되는지를 같이 고민해주는 경우는 한번도 못 봤다. 내가 하고 싶은 일을 못하고 있다는 이유로 대표가 그러니까 당신들도 그렇게 참고 기다려라고 할 자격은 없다고 생각하지만, 최소한 회사에 왜 그게 필요한지 설득하는건 개발자 직군에 있는 당신들이 해야하는 일 아닌가? 내가 이걸 해야한다며 떠 먹여줘야 하나?

내 기준엔 양심도 없이 자기가 하고 싶은 것만 찾는 이기적인 인간인데, 아마 그들의 눈에 나는 자기들의 눈높이를 못 맞춰주는 무능한 대표일 것이다.

하고 싶은 일을 시켜주는 회사에 못 갔으면 타협해야 하지 않나?

고급 ‘기술’이라고 불리는 소수 정예들 전용의 개발 언어에만 한정되는 사건이 아니다. 일반적인 개발 언어를 쓰고 있어도 회사에 필요한 기능이라는 것이 있고, 그 기능 개발에 투자할 수 있는 인적, 물적 자원이라는 한계가 있다.

그런데, 저런 욕심이 있는 분들 중에 학습 속도가 내 눈높이를 맞춰줄 수 있는 인력이 과연 한국에 몇 명이나 될까? 그 학습 시간동안 회사는 월급도 주고, 다른 업무들을 다 지연시켜야 하는데, 왜 당신들의 학습 속도를 다 맞춰줘야 하지?

보통 기업들이 개발자를 위시한 ‘기술직’을 뽑을 때

  • XXXX라는 업무 해 봤냐?
  • 업무 할 때 X, Y, Z라는 사건들에 어떻게 대응했냐?

라는 질문들을 통해 ‘즉시 전력감’인지 아닌지를 판단할 것이다.

왜들 저렇게 인력의 잠재력을 바탕으로 채용을 하지 않을까, 왜 같이 성장하려고 하지 않을까, 기업들이 너무 이기적이다고 생각했는데, 교육 비용을 뽑아낼 수 있는 인력이 정말 희귀하고, 교육 비용을 뽑아낼 수 있는 업무도 매우 피상적인 업무들인 ‘개발 라이브러리’ 갖다 붙이기 정도 밖에 없더라. 학습 속도가 너무 느리고, 학습을 할 수 있는 깊이가 매우 얕기 때문이다.

우리 SIAI에 조교로 있던 한 학생이 있던 직장에서 Data Scientist가 되기 위해 열심히 공부하겠다길래 뽑았던 Y대 DS 석사 출신이 선형대수학을 공부하겠다고 해 놓고는 정작 ‘이상한 코딩 학원’, ‘이상한 코딩 교재’를 보고 있길래 질책했던 경험담이 공유된 적이 있다. 자기는 ‘비전공자 출신이기 때문에 그런거 안 봐도 된다’고 했다던데, DS석사 출신이 선형대수학을 모르는데 뽑힌 것도 기적이고, 뽑혔으면 양심있게 선형대수학을 공부했어야 된다고 생각하는데, 다른 한편으로는 채용을 잘못한거라고 밖에 볼 수 없다. 뽑아봐야 ‘교육 비용’이 엄청나게 들어가는데 정작 교육의 성과가 나올 확률이 0인 인력이기 때문이다.

저런 인력들이 MIT에서 AI/Data Science 박사 공부를 5년, 포닥을 3년씩 하고 결국은 고급 논문이 안 나와서 학계에 남는거 포기한 다음에 구글, 마소, 오픈AI 같은 글로벌 최상위 기업에서 인류 최고의 도전을 하고 있는 분들과 엇비슷한 눈높이로 고액 연봉을 요구하고, 중요한 업무를 하고 싶다고 주장하는 것은 웃음 포인트일까, 아니면 비난 포인트일까?

월급주는 회사가 필요한 능력을 못 갖췄으면, 자기가 하고 싶은 방향이 아니면, 알아서 그만둬야 되는거 아닌가? 그 능력을 갖추기 위해서 이를 악물고 노력하고, 회사의 목표와 자신의 방향을 일치시킬 수 있도록 회사에 필요한 내용들을 제안하고, 자기 스스로도 바뀌어야 할텐데, 그런 기업 문화, 인재 문화가 한국에서는 굉장히 보기 드문 일이다.

개인화된 서구식 기업 문화, 기업 이름 기준의 한국식 기업 문화

영미권이라고 해서 대기업의 높은 입사 난이도를 뚫은 것의 가치가 낮은 것은 아니다. 그렇지만, 한국처럼 대기업을 들어갔다는 이유로 자기가 우월하다고 생각하는 ‘기술직’ 직원들은 그렇게 많지 않다. 자기 능력이 부족해서, 다른 길을 보게 되어서 1년 남짓 안에 그만두는 비중은 ‘일반직’보다 ‘기술직’으로 가면 갈수록 더 높아진다. 능력자들이 굳이 딱딱한 기업문화 속에 오래 있는 경우도 드물다.

자기PR이 강한 사회인만큼, 회사에서 어떤 신규 사업을 한다고 그러면 회사에 필요한 내용이 뭘지에 대해서 스스로 고민하고, 적극적으로 제안하는 경향이 일반적이기 때문에, 누가 시켰으니까 “까라면 까야 된다”는 사고 방식은 상대적으로 덜하고, 내 이름이 올라가서 오랫동안 기록에 남는 만큼, 자기 이름을 걸고 일을 해야 커리어를 키울 수 있다는 사고 방식도 잠재 의식 수준에 내재되어 있다.

예를 들어, 우리 회사에 ‘ElasticSearch’라고 하는 ‘기술’을 도입해야 한다고 주장하는 개발자가 있다고 해 보자. ‘ElasticSearch’같은 개발 응용 플랫폼들을 ‘기술’이라고 부르는게 내 입장에서는 거북한데, 일반적인 DataBase(DB)와 달리 데이터를 JSON 파일 형태로 저장해서 관리하는 플랫폼이지, 이게 무슨 ‘상대성 이론’을 항성간 여행에 적용해 인류의 생활 반경을 현격하게 넓히는 것 같은 혁명적인 사고 전환은 아니기 때문이다.

그 개발자는 ‘나도 ElasticSearch를 쓰고 싶다’는 생각으로, 그 ElasticSearch의 홈페이지에서 소개하는 비즈니스 적용 사례들을 보여주면서 나한테 우리도 이걸 써야 ‘기술회사’의 명성에 걸맞는 회사가 된다고 주장한다. 좀 단순화하면 그냥 JSON 파일로 저장하고, 파일 검색 방식으로 DB처리 방식을 바꾼건데, 일반적으로 쓰이는 MySQL DB를 교체할 수 있는지 알아보니, 그건 불가능하단다. 결국 기본 서비스 대체가 안 되니까, 특정 서비스 전용으로 쓰는 고민을 해야하는데, ElasticSearch를 쓰자고 주장하는 개발자는 회사가 돌아가는 사정도 모르고, 회사가 필요한 수익성 모델도 모르고, 회사에서 완성된 서비스를 팔기 위해 해야하는 인력 고민, 홍보 고민, 시장 수준에 대한 고민은 전혀 아는 바가 없다. 그냥 자기가 하고 싶은 욕심만 있는 것이다. 최소한 나는 개발만 한다, 나머지는 네가 다 해라는 식이다.

BigDataGraph

ElasticSearch를 쓰고 싶기만 한 한국 개발자, 기능 개선에 곁다리로 붙여주는 해외 개발자

그 개발자는 6개월이나 걸려서 ElasticSearch가 제공해주는 Kibana dashboard를 하나 붙이고, 내가 그려 붙여라고 하는 Sankey chart 하나 제대로 못 그리다가 회사를 떠났다. SIAIMBA AI/BigData 수업 중에 AI in Digital Marketing이라는 수업에서 가르치고, 학점을 받으려면 과제 상황에 맞게 직접 그려봐야 되는 빅데이터 전용 그래프 중 하나다. (위의 이미지에서 (2,3) 좌표에 있는 그래프다.) 이런 교육은 안 받았으니 못 할 수도 있겠지라고 양보하고, Kibana dashboard를 로그인 없이 일반 방문자가 다 볼 수 있도록 제한을 풀라고 하니 그것도 Kibana에서 기능을 지원 안 해준단다. 경력 15년이 넘은, 국내 초명문대 학위증을 당당하게 자랑하는 개발자다.

모든 시스템을 새로 만든 요즘, 파비리서치 웹페이지에서 기사 검색을 MySQL DB에서 돌리니까 시스템 과부하가 바로 눈에 들어오더라. 워드프레스로 만들었으니 당연한 상황일 것이다. 어떻게 개선할 수 있을까? 어차피 기사들은 다 Text에 불과하니까, 근데 평소에 서비스 속도 개선을 위해 캐시(Cache)를 만들 때 html 파일을 만드니까, 그리고 html 파일이 대부분 Text니까, 그럼 html을 JSON 파일로 변경한 다음, 그 JSON 파일들을 ElasticSearch에 연동해서 검색 기능을 지원해야줘야겠다고 생각했다.

다행히 워드프레스 플러그인 중에 내가 생각했던 내용을 비슷하게 구현해놓은 플러그인이 있더라.

물론 설치해놓고 나니 우리 회사 사정에 맞지 않는 부분이 많아서 이것저것 고치는 중인데, 검색 기능 자체를 아예 다른 서버에서 돌려서 DB에 주는 과부하를 없애버릴 수 있고, html 파일들을 캐시에만 쓰는게 아니라 이렇게 재활용할 수 있어서 1석2조라고 생각하고 있다.

우리 회사가 워드프레스를 쓴 지 6년이 지났는데, 내가 그 개발자였다면 직접 ElasticPress 같은 플러그인을 만드는 수준으로 회사에 ElasticSearch를 붙이는 고민을 했었을 것이다. 실제로 내가 그렇게 했고, 검색해서 플러그인을 찾은 것, 심지어 코드를 뜯어고쳐서 회사 사정에 맞추고 있는 것이 그 증거다. 모두가 알다시피 나는 개발자 출신도 아니고, 개발도 모르는데 이런 생각을 하고 작업을 진행하고 있으면, 개발자라면 나보다 훨씬 더 빠른 속도와 효율성으로 이 업무를 해야 급여를 받을 자격이 있지 않나? 그게 안 되면 개발자라고 하지 말아야지?

저 분은 ElasticSearch를 써 봤고, Kibana를 이용해서 Dashboard를 만들어봤다고 이력서에 자랑스럽게 써 놨다. 실제로 쓰기 위해서 Customizing은 단 한번도 한 적이 없다. 쓴 적이 없으니까. 개발자 본인이 어떻게 쓰는지조차도 몰랐으니까. 나는 1주일이면 넉넉하게 다 할 일을 저 분은 6개월 동안 ‘교육 비용’을 쓰고도 ‘설명서’보다 한 걸음도 더 못 나간 것이다.

이게 단순히 프로그램을 설치하고 끝나거나, 플러그인 하나로 적용되는 기능이 아니어서, ElasticSearch를 다른 서버에 설치하고, 서버간 연동시키고, 버전 호환성과 기능 호환성을 따지고, JSON 변환에 쓸 Raw data를 DB에서 읽지 말고 캐시로 쓰이는 html 파일들에서 읽도록 만들고, 이미지를 못 가져가서 문제가 생기니까 DB에서 이미지 부분만 갖고가서 이미지 서버와 연동하는 작업들, 검색 속도 개선을 위해서 ElasticPress의 기본 옵션들을 고치는 작업들도 계속 진행 중인데, 이런게 개발자가 직접 찾아보고 해야 할 일 아닐까?

해달라는 요청 있을 때까지 가만히 ‘설명서’만 따라가는게 개발자의 일인가? 그건 그들이 좋아하는 AI라고 쓰고 ‘자동화’라고 읽는 시스템으로 처리 가능한 시대가 곧 올 것이다. 곧.

얼마 전 소셜 로그인 플러그인 기능 개선을 위해서 인도의 한 개발팀이랑 10분짜리 짧은 콜을 했었는데, 사용자에 대해 구독 여부 같은 Key값으로 조건 검색 및 다른 사이트 연동 검색이 필요하다고 그러니까, DB에 과부하가 걸릴테니 기능 개선 욕심을 일부 포기하던가, 아니면 ‘ElasticPress’라는 플러그인을 좀 고쳐서 ‘ElasticSearch’가 그 부분을 대신하도록 해 줄 수 있다며, 약간의 추가금을 더 내면 어떻겠냐는 제안을 받았다. 내가 위에서 설명한 일을 이미 하고 있다고 그러니까, 그럼 내가 직접 해라면서 뭘 고치면 된다고 함수들을 모아놓은 파일 몇 개를 불러주더라.

국내 초명문대 출신 개발자와, 인도에서 대학도 안 나온 개발자 사이에 어떤 격차가 있는지 느껴지시는가?

그 인도팀에게 150달러를 주고 일을 맡길지, 한국 초명문대 출신 개발자에게 고액 연봉을 주고 일을 맡길지를 판단하는 것은 당신의 몫이다.

Similar Posts