코딩에 대한 두려움을 버려라
최근 추세를 보면, 빅데이터 분석을 업으로 삼지는 않더라도 이를 배워 본인의 업무에 적용시켜보거나 혹은 평소 해보고 싶었던 분석을 하고자 하는 사람이 점차 늘어나고 있다. 이렇게 빅데이터에 대해 공부를 해본 적이 없는 사람들이 처음 이 분야에 접할 때 흔히 하는 고민들의 리스트가 있다. 아무래도 대용량의 데이터를 내가 직접 분석해야 하는 일이다 보니까 코딩의 배경지식이 없는 경우, 수학과 통계학의 배경지식이 없는 것에 대한 고민이 대부분이다. 이번 시간에는 그중에서도 코딩의 배경지식이 없는 사람들이 흔히 하는 질문 중 하나를 살펴보겠다.
빅데이터 분석 잘하려면 코딩 잘해야 되나요?
빅데이터라는 이름에서도 드러나듯 많은 양의 데이터를 처리해야 하는 경우가 흔하다. 그렇다 보니 계산기를 두드리며 데이터 하나하나를 파악할 수도 없는 노릇이고 엑셀로 처리하기에도 분명한 한계가 존재한다. 이 사실은 데이터 분야에 일면식이 없는 사람들도 잘 알고 있는 부분이다. 그렇기 때문에 본인이 코딩을 하나도 할 줄 모르면 이 분야를 접하고 공부하는 것에 두려움부터 생기는 것이 아닐까 생각한다. 나 역시 처음 데이터 분석을 공부할 때 겪었던 고민이기도 하다. 이 질문에 대해 이제는 어느 정도 나만의 답변을 내려줄 수 있을 것 같다.
대부분은 잘해야 합니다. 물론 예외도 있지만요!
슬픈 이야기일 수도 있겠지만 사실 빅데이터 분석 나아가 인공지능을 구현하기 위해서는 대부분 코딩 실력은 필수적으로 요구된다. 하지만 너무 실망할 필요는 없다. 코딩이 필요 없는 예외적인 경우도 가끔가다 존재할 뿐 아니라 코딩을 배워나가는 것도 생각보다 막막한 일처럼 느낄 필요는 없기 때문이다. 먼저, 코딩이 필요 없는 예외적인 경우에 대해 말해보겠다. 빅데이터 분석을 하는 사람이지만 코딩 실력이 크게 요구되지 않는 상황은 크게 두 가지 경우가 있다.
너무 높은 위치에 있어서 밑에서 코딩을 다 해줄 경우
딱히 더 설명을 하지 않아도 무슨 의미인지 쉽게 이해할 수 있을 것이다. 회사던 학교던 보통 업무를 지시하는 사람이 있고 지시를 받아 수행해야 하는 사람이 있다. 업무를 지시하는 사람의 입장에서 생각해보면 일일이 코딩을 굳이 하고 있을 이유가 없다. 밑에 사람들이 다 해주니까! 그리고 나는 이 현상이 딱히 부정적인 일이라고 생각하지는 않는다. 빅데이터 분석과 인공지능 구현에는 코딩이 전부가 아니다. 코딩 외에도 신경 써야 할 일이 정말 머리 아플 정도로 많다. 업무를 지시하는 사람 입장에서는 코딩에 시간을 쏟기보다는 분석의 필요성, 활용성을 고민하거나 혹은 인공지능 구현 논리를 검토하는 것이 훨씬 효율적이다. 그래도 가끔가다 본인의 지위가 충분함에도 불구하고 코딩 공부를 하시는 분들을 더러 볼 수 있는데 개인적으로 나는 그런 분들을 존경한다. 다시 돌아와서, 새롭게 빅데이터를 공부하려고 하는 사람들은 이렇게 높은 위치에 해당하지는 않을 것이라 생각한다. 그래도 아직 예외의 경우는 하나 더 남아있다.
본인의 업무가 분석 자체가 아닌 분석 결과물 활용 등에 한정적일 경우
사실 빅데이터라는 넓은 개념 속에는 다양한 분야가 또다시 구분될 수 있다. 우리가 흔히 생각하는 데이터를 분석하는 사람들은 데이터 분석가(Data Analyst)라고 불린다. 하지만 그 외에도 빅데이터 생태계에는 다양한 업무를 하는 사람이 존재한다. 현재 조직에서 가지고 있는 데이터를 기반으로 이를 어떻게 활용하면 좋을지 전략을 수립하는 사람이 있을 수 있고, 분석된 결과를 가지고 인사이트를 도출하여 마케팅 등에 활용하려고 노력하는 사람이 있을 수 있다. 방금 예시를 든 사례의 경우 사실 코딩 실력이 그렇게 크게 요구되지는 않는다. 물론 현재 우리 조직이 가지고 있는 데이터를 정확히 확인해봐야 된다는 측면에서, 분석가들이 흔히 사용하는 프로그램(파이썬 혹은 R)이 아닌 SQL(데이터 검색, 관리, 추출을 위한 프로그래밍 언어)과 같은 언어를 조금은 할 줄 알아야 할 수도 있다. 조금 과격하게 코딩을 아예 몰라도 할 수 있어?라고 묻는다면 저 직군들에 한해선 어느 정도 그렇다고 대답할 수 있다.
지금까지 질문 자체에 정확한 답을 하기 위해 이런저런 이야기를 해왔다. 하지만 질문하는 사람 입장에서는 빅데이터 분석하면 딱 떠오르는 그 업무를 염두에 두고 저런 질문을 했을 확률이 높을 듯하다. 앞서도 한 번 언급하였지만, 본인이 밑에서 코딩해줄 사람이 따로 있는 것도 아니고 코딩이 필요한 직군이나 업무에는 관심이 없는 것이라면 사실 코딩은 피할 수 없다. 하지만 코딩을 피할 수 없다는 사실에 너무 좌절하지 않았으면 좋겠다.
사실 데이터 분석에 필요한 코딩은 그렇게 범위가 넓지 않습니다.
생각하는 코딩에 스트레스받을 필요 없는 가장 큰 이유이다. 나 역시 흔히 말하는 개발자들이 만든 코드를 보면 어려움을 겪는 경우가 많다. 하지만 데이터 분석에 필요한 코딩으로 그 범위를 좁혀보면 이야기가 달라진다. 정형 데이터를 기반으로 머신러닝을 구현한다고 생각해볼 때, 사실 필요한 로직 및 알고리즘은 다 거기서 거기이다. 그 말은 즉슨, 특정 분야에만 코딩이 익숙해진다면 앞으로 몇 개의 코드를 반복적으로 쓸 수 있다는 뜻이며 또한 조금의 필요한 코드조차도 구글에 검색하면 쉽게 구할 수 있는 경우가 부지기수라는 것이다. 다만 데이터 분석을 열심히 공부하다 보면, 데이터 전처리라는 단계에서 노가다가 필요하거나 본 분석보다 더 수준 높은 코딩 실력이 요구될 때가 있기는 하다. 하지만 이 역시 약간 더 높은 수준의 코딩 실력이 필요할 뿐 입문자가 천천히 공부해서 극복하지 못할 수준이 절대 아니다.
코딩 실력은 의외로 나도 모르게 성장하는 경우가 많습니다.
이 부분이 또 하나의 중요 포인트이다. 대부분 코딩을 처음 배울 때 A = 1, B = 2, A + B를 입력하고 3이라는 결과가 뜨게 만드는 것을 볼 때가 많다. 참 쉽지 않은가? 그래서 초기에는 정말 시간을 투자하는 만큼 코딩 실력이 잘 올라간다. 하지만 그 중간에 많은 사람들이 겪는 혼돈의 단계가 있다. 공부를 해도 실력이 느는 것 같지 않고 오히려 이전보다 못한 것만 같은 애매한 시기이다. 하지만 이 시기도 어느 정도의 절대적 시간이 투자된다면 반드시 넘게 된다. 내 주변을 보아와도 다들 그랬다. 다음 그래프를 보면 쉽게 이해가 가능할 것이다. 코딩에 대해 어느 정도 식견이 있는 사람들에게는 유명한 형태의 그래프이다.
이 그림을 통해서 가장 말하고 싶은 건 중반기에 해당하는 부분이다. 많은 사람들이 마음을 굳게 먹고 코딩을 공부하다가도 많이 포기하는 구간이 바로 저 구간이다. 하지만 저 구간에서 코딩 실력이 늘어나지 않는다고 느끼는 것은 사실 모든 사람들이 공통적으로 겪는 현상이다. 강사나 조교를 하던 시절 수강생들에게 늘 조금만 더 공부하다 보면 어느 정도의 실력이 수렴될 것이라고 많이 말하고 다녔는데 정말 그렇다. 물론 코딩에 대한 본인의 공부 시간이 일정한 수준은 쌓여야 한다는 전제조건이 필요하기는 하다.
마지막으로, 그럼에도 불구하고 나는 도저히 코딩은 못해먹겠고 데이터 분석일은 해보고 싶다 하는 사람도 있을 수 있다. 그런 사람들에게는 GUI 기반의 프로그램 사용해보기를 권장한다. GUI란 Graphic User Interface의 약자로 프로그래밍 언어가 하는 역할을 수행하기는 하지만 직접 코드를 작성하는 것이 아니라 아이콘과 같이 클릭 단위로 수행할 수 있게 만드는 것을 의미한다. 최근 빅데이터나 데이터 분석의 중요성이 점차 높아짐에 따라 관련한 GUI 프로그램들도 몇몇 개 등장한 것을 보아왔다. 사실 개인적으로 그러한 프로그램 이용을 추천하지는 않고 웬만하면 차라리 코딩 공부를 더 열심히 해볼 것을 권장한다(GUI 기반 프로그램들은 기능이 한정적이거나 무료가 아닌 경우가 많다).
코딩 잘하는 사람 세상에 많잖아요? 그건 나도 할 수 있다는 증거라 생각합니다.
이번 글의 가장 메인 주제였던 코딩을 꼭 잘해야 하나?라는 질문은 사실 본인이 코딩을 잘할 수 없다고 미리 판단해버렸기에 나오는 질문일 것이다. 그러지 않았으면 좋겠다. 왜 공부를 하고 난 뒤에 본인의 실력이나 가능성을 미리 평가절하시키는 건지 이유를 잘 모르겠다. 나 역시 학부 전공은 경영학이었고 상대적으로 뒤늦게 코딩 공부를 시작한 편이다. 하지만 지금은 적어도 팀 내에서 누군가 코딩을 전문적으로 맡기로 하고 그 역할에 내가 선정되었을 때 '아뇨 저는 못합니다.'라고 말하는 수준은 아니다. 코딩 잘하는 사람을 너무 부러워만 하지 말고 나 역시도 충분히 가능하다고 생각했으면 좋겠다.