[개안뽑] ㉕’개발 잘한다’와 ‘코딩 잘한다’는 개발자 사이의 간격

pabii research
코딩 속도와 개발 실력 간 상관 관계는 영화가 만들어낸 허상에 불과
실제 개발 실력은 코딩 속도, 코딩 언어와 무관, 차라리 코드 간결성이 좀 더 관련 있어
진짜 실력은 회사의 사정과 프로젝트 목적에 맞는 개발을 효과적으로 해 낼 수 있느냐로 판단해야

사업 초창기, 한국에서 Data Science와 개발을 동일시하는 황당한 사고방식을 마주 대하면서 적지 않게 충격을 먹고 있던 시절, 개발자라고 자신을 소개하는 사람들에게 메일을 꽤나 받았는데, 그 분들이 공통적으로 자신을 소개하는 방식이

  • 특정 언어를 몇 년간 써서 개발 했다
  • 어떤 회사에서 언어를 뭘 쓰면서 무슨 개발을 했다

같은 내용들이었는데, Data Science를 계산과학이라고 생각하는 내 입장에서는 정말 아무런 관련이 없는 자기 소개라는 것을 이제는 일반인들도 어느 정도는 이해하는 시대가 됐을 것이다. ‘데이터 과학자’가 되고 싶다면 수학, 통계학을 학부 시절에 얼마나 공부했는지, 그래서 해석개론 이상의 고급 수학에 대한 지식이 얼마나 있는지를 나한테 보내주면서 자기 소개를 했어야 할텐데, 생선 가게에서 야채를 찾은 격이 된 것이다.

그 분들이 계속 강조하는 자신의 강점들을 돌이켜보면, ‘코드 정합성’을 따질 줄 알고, 내가 수학을 강조하니 자기 기준에 수학이라고 생각되는 부분이었는지 ‘평소에도 수학적으로 사고한다’는 내용들을 언급하던데, 요즘 표현을 빌리면 나와는 1도 관계 없는 내용들이었다.

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

개발 잘한다 ≡ 코딩 잘한다?

더 이상 1달 짜리 압축 강의를 유지할 이유를 못 찾겠다고 생각하고 있던 어느 봄, 1달 강의가 끝나는 날 어느 똘망똘망한 눈망울의 학생 하나가 자기가 행정학과 출신의 문과지만 스타트업에서 개발 경력을 1년 남짓 쌓았으니 미국의 데이터 사이언스 석사 과정을 진학하는데 큰 도움이 되지 않겠냐는 질문을 받았었다.

DS석사 과정은 수학, 통계학 훈련을 얼마나 탄탄하게 받았는지, 그 지식들을 활용해 수학적 직관을 현실 데이터에 응용하면서 필요한 ‘계산과학적 코딩’을 얼마나 빠르게 할 수 있는 잠재력이 있는지를 따지는 곳이지, 개발용 코딩을 한 것과는 아무런 관련이 없다는 이야기를 해 주는데, 모 대기업에서 기지국 통신망 장비들의 신호 중첩을 최소한으로 만들 수 있는 기지국 분배 질문을 하시던 분이 어이 없다는 표정으로 그 똘망똘망한 학생을 쳐다보고 있으시더라.

유사한 종류의 오해를 개발자 커뮤니티에서 자주 봤는데, 그 중 하나가

  • 개발을 잘 한다 = 코딩을 잘 한다 (= 데이터 사이언스를 잘한다)

라는, 납득하기 어려운 사고 방식이다.

데이터 과학과 코딩, 개발이 아무런 관련이 없다는 부분은 이미 헤아릴 수 없이 많이 반복했으니 제쳐두고, 개발을 잘하는 것과 코딩을 잘 하는 것이 왜 같은 역량이 아닌지에만 한번 초점을 맞춰보자.

영화나 드라마에서 나오는 것처럼 키보드 위에서 손가락이 바쁘게 돌아가고 있고, 화면이 뭔가 번쩍번쩍 바뀌고 있으면 코딩을 잘 하는 것일까?

글 서두에 소개한대로, 개발자들이 데이터 과학을 공부하고 싶다며 자신들의 역량을 (최대한 건조하게) 자랑하던표현에는 ‘코드 정합성’이라는 표현이 있었다.

아마 개발 학원에 처음 가면 ‘Hello World!’가 뜨도록 하는 코드를 카피하는 것과 더불어, OOP(객체지향형 프로그래밍)이라는 표현을 배울텐데, 그렇게 OOP라는 개발 철학에 맞춰 개발하는 것이 개발을 ‘잘’하는 것이지, 키보드 위에서 손가락이 빠르게 움직인다고 개발을 잘 하는 것이 아니다. 그건 영화들이 만든 허상일 뿐이다.

실력 좋은 개발자는 논리적 구조에 맞춰 프로그램을 짜는 개발자

글을 잘 쓰는 사람은 어떤 사람일까?

펜을 정신없이 놀리면 글을 잘 쓰는 사람일까? 키보드 위에서 손가락이 쉴새없이 움직이면 글을 잘 쓰는 사람일까?

아마 글을 잘 쓰는 문인으로 사회적 존경을 받는 사람들 중에 생산성이라는 측면에서는 최악인 분들도 정말 많을 것이다. 하루에 1페이지도 못 쓰는데 전세계인이 감동적으로 본 드라마인 ‘왕좌의 게임’을 쓴 작가도 있다. 생산성, 혹은 속도라는 측면이 강조되는 글 쓰기 자리를 굳이 꼽으라면 언론사의 기자 업무가 좀 관련될 것 같고, 블로그 마케팅을 하는 외주 회사들에서 마케터라는 업무도 관련성이 높아 보인다.

개발자도 상황에 따라 실력을 평가하는 관점이 천차만별일 것 같기는 한데, 일단 글의 표현력이나 창의성, 담긴 지식 등의 문장력에 해당하는 부분을 제쳐놓고 ‘문법’에 맞고, ‘논리적’으로 글을 써야 하듯이, 개발자들도 기본기에 해당하는 개발 ‘문법’과 ‘논리’에 맞는 개발을 하는 사람들이 개발을 잘 하는 사람이라고 판단해야 하지 않을까? 속도전을 하는 회사에서 이미 정해진 길을 그대로 따라가는 개발을 하고 있다면 당연히 신문사 기자 같은 역량을 갖춘 개발자가 대접 받겠지만, 코드를 잘 치는 것과 개발을 잘 하는 것은 1:1의 관계는 아니라고 자신있게 이야기 할 수 있다.

수학 잘 하는 것 ≠ 실력 있는 데이터 과학자

난 수학을 잘 하는 것과 데이터 과학자가 되는 것은 큰 관련이 없다고 주장하는 사람이다. 매번 수학, 통계학을 강조하니 얼핏 공감이 안 되겠지만, 내 기준에 필요한 수학은 학부 저학년에 배우는 선형대수학, 미분방정식에 불과하다. (단지 한국의 대학 수학 교육이 심각한 상태라 선대, 미방도 문제 풀이만 할 줄 알지, 글로벌 교육 방식으로 응용력이 제로인 부분 때문에 수학 교육을 강조할 뿐이다.)

난 한번도 해석개론 이상의 학부 고학년 수학을 수업 시간에 다룬 적이 없고, Data Science를 가르친다면 MBA/DBA 같은 학위는 물론이고, BSc, MSc 레벨에서도 다룰 생각이 없다. PhD에서도 가르쳐야 하는지 잘 모르겠다. 오히려 내 입장에서 훨씬 더 중요한 부분은 주어진 데이터에 배운 지식을 어떻게 활용할 수 있는지에 대한 직관적 이해가 되는지, 다른 사람의 논리 속에 담긴 문제를 데이터 과학의 지식으로 풀어내는 사고가 빠르고 정확한지에 대한 부분이다.

같은 맥락에서 개발자도 GoLang, ErLang, LISP 같은 고급(?) 언어를 잘 하는 것이 실력 있는 개발자가 아니다. 고급 수학을 못 따라가면 학교에서 연구자로 못 살아남고 기업체로 쫓겨가는 것처럼, 그런 고급 언어는 쓰는 기관들이 따로 있을 것이다. 같은 논리에서 실력파 개발자들은 Java, Javascript 같은 기본 언어에 대한 탄탄한 지식을 갖추고, 뒤에 있는 Low level 언어인 C같은 언어들이 어떻게 돌아가는지 이해하는 상태에서, 사업 목적과 회사 상황에 적절한 개발을 오류 없이, 빠른 속도로 해 내는 집단이다.

안타깝게도 난 한국에서 그런 개발자들과는 인연이 없었다.

거의 대부분의 개발자들은 Data Science가 개발과는 무관한 지식이라는 걸 한국 개발자 사회가 이해 못하는 것에 비견될만큼 업무 이해 속도가 느렸고, 회사의 주어진 상황에 맞게 대응을 하는 역량, 새롭게 주어지는 지식에 대한 학습 속도도 내 입장에선 불편함을 감추기 어려울만큼 답답했다.

어쩌면 남들이 해 놓은 것들을 따라치는 반복 작업이 대부분인 한국의 개발 문화에 내가 원하는 것이 ‘생선 가게 – 야채 가게’ 같은 상황이었을지 모른다.

근데, 그렇다면 굳이 개발자들을 뽑아서 6개월, 1년씩 개발해야하나? 워드프레스는 이미 수십년간 쌓인 생태계 속에 수 많은 플러그인들을 다 갖고 있는데? 그 플러그인을 갖다 써서 구글 페이지 스피드 모든 영역에서 100점을 만드는데 불과 2달 걸린 웹사이트와, 개발자들 10+명을 1년, 2년 고용해서 만든 웹페이지가 평균 70점을 못 넘기는 것을 비교해보면서 어떤 생각이 들어야 상식의 범위 안에 있는 걸까?

Similar Posts